You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-20 15:36:17 +00:00
+28
-23
@@ -30,7 +30,7 @@ public class RequestGuildBuyEvent extends MessageHandler {
|
|||||||
final String name = Emulator.getGameEnvironment().getWordFilter().filter(this.packet.readString(), this.client.getHabbo());
|
final String name = Emulator.getGameEnvironment().getWordFilter().filter(this.packet.readString(), this.client.getHabbo());
|
||||||
final String description = Emulator.getGameEnvironment().getWordFilter().filter(this.packet.readString(), this.client.getHabbo());
|
final String description = Emulator.getGameEnvironment().getWordFilter().filter(this.packet.readString(), this.client.getHabbo());
|
||||||
|
|
||||||
if(name.length() > 29){
|
if (name.length() == 0 || name.length() > 29) {
|
||||||
this.client.sendResponse(new GuildEditFailComposer(GuildEditFailComposer.INVALID_GUILD_NAME));
|
this.client.sendResponse(new GuildEditFailComposer(GuildEditFailComposer.INVALID_GUILD_NAME));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -38,34 +38,32 @@ public class RequestGuildBuyEvent extends MessageHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (Emulator.getConfig().getBoolean("catalog.guild.hc_required", true) && !this.client.getHabbo().getHabboStats().hasActiveClub()) {
|
if (Emulator.getConfig().getBoolean("catalog.guild.hc_required", true) && !this.client.getHabbo().getHabboStats().hasActiveClub()) {
|
||||||
this.client.sendResponse(new GuildEditFailComposer(GuildEditFailComposer.HC_REQUIRED));
|
this.client.sendResponse(new GuildEditFailComposer(GuildEditFailComposer.HC_REQUIRED));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.client.getHabbo().hasPermission(Permission.ACC_INFINITE_CREDITS)) {
|
|
||||||
int guildPrice = Emulator.getConfig().getInt("catalog.guild.price");
|
|
||||||
if (this.client.getHabbo().getHabboInfo().getCredits() >= guildPrice) {
|
|
||||||
this.client.getHabbo().giveCredits(-guildPrice);
|
|
||||||
} else {
|
|
||||||
this.client.sendResponse(new AlertPurchaseFailedComposer(AlertPurchaseFailedComposer.SERVER_ERROR));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int roomId = this.packet.readInt();
|
int roomId = this.packet.readInt();
|
||||||
|
|
||||||
Room r = Emulator.getGameEnvironment().getRoomManager().getRoom(roomId);
|
Room r = Emulator.getGameEnvironment().getRoomManager().getRoom(roomId);
|
||||||
|
|
||||||
if (r != null) {
|
if (r == null) {
|
||||||
if (r.hasGuild()) {
|
this.client.sendResponse(new AlertPurchaseFailedComposer(AlertPurchaseFailedComposer.SERVER_ERROR));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r.hasGuild() || r.getGuildId() != 0) {
|
||||||
this.client.sendResponse(new GuildEditFailComposer(GuildEditFailComposer.ROOM_ALREADY_IN_USE));
|
this.client.sendResponse(new GuildEditFailComposer(GuildEditFailComposer.ROOM_ALREADY_IN_USE));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r.getOwnerId() == this.client.getHabbo().getHabboInfo().getId()) {
|
if (r.getOwnerId() != this.client.getHabbo().getHabboInfo().getId()) {
|
||||||
if (r.getGuildId() == 0) {
|
String message = Emulator.getTexts().getValue("scripter.warning.guild.buy.owner").replace("%username%", this.client.getHabbo().getHabboInfo().getUsername()).replace("%roomname%", r.getName().replace("%owner%", r.getOwnerName()));
|
||||||
|
ScripterManager.scripterDetected(this.client, message);
|
||||||
|
LOGGER.info(message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int colorOne = this.packet.readInt();
|
int colorOne = this.packet.readInt();
|
||||||
int colorTwo = this.packet.readInt();
|
int colorTwo = this.packet.readInt();
|
||||||
|
|
||||||
@@ -91,6 +89,20 @@ public class RequestGuildBuyEvent extends MessageHandler {
|
|||||||
base += 3;
|
base += 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only charge the player once every step has been validated. Previously the
|
||||||
|
// credits were deducted before the room was checked, so a purchase that
|
||||||
|
// failed afterwards (missing room, room already used by a guild, not the
|
||||||
|
// owner) still took the credits without ever creating the group.
|
||||||
|
if (!this.client.getHabbo().hasPermission(Permission.ACC_INFINITE_CREDITS)) {
|
||||||
|
int guildPrice = Emulator.getConfig().getInt("catalog.guild.price");
|
||||||
|
if (this.client.getHabbo().getHabboInfo().getCredits() >= guildPrice) {
|
||||||
|
this.client.getHabbo().giveCredits(-guildPrice);
|
||||||
|
} else {
|
||||||
|
this.client.sendResponse(new AlertPurchaseFailedComposer(AlertPurchaseFailedComposer.SERVER_ERROR));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Guild guild = Emulator.getGameEnvironment().getGuildManager().createGuild(this.client.getHabbo(), roomId, r.getName(), name, description, badge.toString(), colorOne, colorTwo);
|
Guild guild = Emulator.getGameEnvironment().getGuildManager().createGuild(this.client.getHabbo(), roomId, r.getName(), name, description, badge.toString(), colorOne, colorTwo);
|
||||||
|
|
||||||
r.setGuild(guild.getId());
|
r.setGuild(guild.getId());
|
||||||
@@ -121,11 +133,4 @@ public class RequestGuildBuyEvent extends MessageHandler {
|
|||||||
|
|
||||||
Emulator.getPluginManager().fireEvent(new GuildPurchasedEvent(guild, this.client.getHabbo()));
|
Emulator.getPluginManager().fireEvent(new GuildPurchasedEvent(guild, this.client.getHabbo()));
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
String message = Emulator.getTexts().getValue("scripter.warning.guild.buy.owner").replace("%username%", this.client.getHabbo().getHabboInfo().getUsername()).replace("%roomname%", r.getName().replace("%owner%", r.getOwnerName()));
|
|
||||||
ScripterManager.scripterDetected(this.client, message);
|
|
||||||
LOGGER.info(message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user