From 66ad927b2f532f6d351ff3ffb2ad0034a65ea744 Mon Sep 17 00:00:00 2001 From: Driftay Date: Wed, 25 Mar 2020 15:50:19 -0400 Subject: [PATCH] Multiple Messages From Disband Fixed --- .../com/massivecraft/factions/FactionsPlugin.java | 2 ++ .../java/com/massivecraft/factions/cmd/CmdCreate.java | 11 ++++++++++- .../com/massivecraft/factions/cmd/CmdDisband.java | 7 ++++--- .../factions/cmd/reserve/ReserveAdapter.java | 3 +-- .../factions/zcore/persist/MemoryFPlayer.java | 3 +-- .../java/com/massivecraft/factions/zcore/util/TL.java | 1 + 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/massivecraft/factions/FactionsPlugin.java b/src/main/java/com/massivecraft/factions/FactionsPlugin.java index 43afd61c..54b7bcc4 100755 --- a/src/main/java/com/massivecraft/factions/FactionsPlugin.java +++ b/src/main/java/com/massivecraft/factions/FactionsPlugin.java @@ -12,6 +12,7 @@ import com.massivecraft.factions.cmd.check.CheckTask; import com.massivecraft.factions.cmd.check.WeeWooTask; import com.massivecraft.factions.cmd.chest.AntiChestListener; import com.massivecraft.factions.cmd.reserve.ListParameterizedType; +import com.massivecraft.factions.cmd.reserve.ReserveAdapter; import com.massivecraft.factions.cmd.reserve.ReserveObject; import com.massivecraft.factions.discord.Discord; import com.massivecraft.factions.discord.DiscordListener; @@ -418,6 +419,7 @@ public class FactionsPlugin extends MPlugin { .registerTypeAdapter(LazyLocation.class, new MyLocationTypeAdapter()) .registerTypeAdapter(mapFLocToStringSetType, new MapFLocToStringSetTypeAdapter()) .registerTypeAdapter(Inventory.class, new InventoryTypeAdapter()) + .registerTypeAdapter(ReserveObject.class, new ReserveAdapter()) .registerTypeAdapter(Location.class, new LocationTypeAdapter()) .registerTypeAdapterFactory(EnumTypeAdapter.ENUM_FACTORY); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java b/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java index aa774b5f..13ab1833 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java @@ -1,6 +1,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.*; +import com.massivecraft.factions.cmd.reserve.ReserveObject; import com.massivecraft.factions.discord.Discord; import com.massivecraft.factions.event.FPlayerJoinEvent; import com.massivecraft.factions.event.FactionCreateEvent; @@ -52,6 +53,12 @@ public class CmdCreate extends FCommand { return; } + ReserveObject factionReserve = FactionsPlugin.getInstance().getFactionReserves().stream().filter(factionReserve1 -> factionReserve1.getFactionName().equalsIgnoreCase(tag)).findFirst().orElse(null); + if (factionReserve != null && !factionReserve.getName().equalsIgnoreCase(context.player.getName())) { + context.msg(TL.COMMAND_CREATE_ALREADY_RESERVED); + return; + } + ArrayList tagValidationErrors = MiscUtil.validateTag(tag); if (tagValidationErrors.size() > 0) { context.sendMessage(tagValidationErrors); @@ -85,7 +92,9 @@ public class CmdCreate extends FCommand { // finish setting up the Faction faction.setTag(tag); - + if (factionReserve != null) { + FactionsPlugin.getInstance().getFactionReserves().remove(factionReserve); + } // trigger the faction join event for the creator FPlayerJoinEvent joinEvent = new FPlayerJoinEvent(FPlayers.getInstance().getByPlayer(context.player), faction, FPlayerJoinEvent.PlayerJoinReason.CREATE); Bukkit.getServer().getPluginManager().callEvent(joinEvent); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java b/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java index 0eef1df4..065d4945 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java @@ -21,8 +21,6 @@ public class CmdDisband extends FCommand { * @author FactionsUUID Team */ - //TODO: Add Disband Confirmation GUI - private static HashMap disbandMap = new HashMap<>(); @@ -105,8 +103,11 @@ public class CmdDisband extends FCommand { follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower)); } } - if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) + if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")){ + faction.disband(context.player, PlayerDisbandReason.COMMAND); context.fPlayer.setFFlying(false, false); + return; + } } else { context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER)); } diff --git a/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveAdapter.java b/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveAdapter.java index 21189c88..6929524b 100644 --- a/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveAdapter.java +++ b/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveAdapter.java @@ -11,8 +11,7 @@ public class ReserveAdapter implements JsonSerializer, JsonDeseri public ReserveObject deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { JsonObject object = jsonElement.getAsJsonObject(); - ReserveObject faction = new ReserveObject(object.get("username").getAsString(), object.get("name").getAsString()); - return faction; + return new ReserveObject(object.get("username").getAsString(), object.get("name").getAsString()); } public JsonElement serialize(ReserveObject data, final Type type, final JsonSerializationContext jsonSerializationContext) { diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java index 3c171971..53843ec9 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java @@ -966,8 +966,7 @@ public abstract class MemoryFPlayer implements FPlayer { if (!damage) { msg(TL.COMMAND_FLY_CHANGE, fly ? "enabled" : "disabled"); - if (!fly) - sendMessage(TL.COMMAND_FLY_COOLDOWN.toString().replace("{amount}", FactionsPlugin.getInstance().getConfig().getInt("fly-falldamage-cooldown", 3) + "")); + if (!fly) sendMessage(TL.COMMAND_FLY_COOLDOWN.toString().replace("{amount}", FactionsPlugin.getInstance().getConfig().getInt("fly-falldamage-cooldown", 3) + "")); } else { msg(TL.COMMAND_FLY_DAMAGE); } diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TL.java b/src/main/java/com/massivecraft/factions/zcore/util/TL.java index 9ba6dc38..32ee403e 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TL.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TL.java @@ -296,6 +296,7 @@ public enum TL { COMMAND_CHECKPOINT_CLAIMED("&c&l[!]&7 Your current &cfaction checkpoint&7 is claimed, set a &cnew &7one!"), COMMAND_CHECKPOINT_DESCRIPTION("Set or go to your faction checkpoint!"), + COMMAND_CREATE_ALREADY_RESERVED("&c&l[!] &7This faction tag has already been reserved!"), COMMAND_CREATE_MUSTLEAVE("&c&l[!]&7 You must &cleave &7your &ccurrent faction &7first."), COMMAND_CREATE_INUSE("&c&l[!]&7 That tag is &calready &7in use."), COMMAND_CREATE_TOCREATE("to create a new faction"),