diff --git a/src/main/java/com/massivecraft/factions/cmd/Aliases.java b/src/main/java/com/massivecraft/factions/cmd/Aliases.java index ad84f840..35e351ac 100644 --- a/src/main/java/com/massivecraft/factions/cmd/Aliases.java +++ b/src/main/java/com/massivecraft/factions/cmd/Aliases.java @@ -143,6 +143,7 @@ public class Aliases { public static ArrayList vault = new ArrayList<>(Collections.singletonList("vault")); public static ArrayList viewChest = new ArrayList<>(Arrays.asList("viewchest", "viewpv")); private static transient Aliases i = new Aliases(); + public static void load() { FactionsPlugin.getInstance().persist.loadOrSaveDefault(i, Aliases.class, "aliases"); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java b/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java index 668e62e9..cb8c3002 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdBanner.java @@ -46,6 +46,7 @@ public class CmdBanner extends FCommand { warBanner.setAmount(1); context.player.getInventory().addItem(warBanner); } + @Deprecated public boolean hasMoney(FPlayer fme, int amt) { Economy econ = FactionsPlugin.getInstance().getEcon(); @@ -55,6 +56,7 @@ public class CmdBanner extends FCommand { fme.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY); return false; } + @Deprecated public void takeMoney(FPlayer fme, int amt) { if (this.hasMoney(fme, amt)) { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java b/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java index 1eb17592..614201cd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdConfig.java @@ -225,7 +225,7 @@ public class CmdConfig extends FCommand { if (!success.isEmpty()) { if (context.sender instanceof Player) { context.sendMessage(success); - FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format((Player) context.sender)); + FactionsPlugin.getInstance().log(success + TL.COMMAND_CONFIG_LOG.format(context.sender)); } else // using FactionsPlugin.getInstance().log() instead of sendMessage if run from server console so that "[Factions v#.#.#]" is prepended in server log { FactionsPlugin.getInstance().log(success); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java b/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java index 0529674c..aa774b5f 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdCreate.java @@ -115,7 +115,9 @@ public class CmdCreate extends FCommand { Discord.mainGuild.getController().setNickname(m, Discord.getNicknameString(context.fPlayer)).queue(); } } - } catch (HierarchyException e) {System.out.print(e.getMessage());} + } catch (HierarchyException e) { + System.out.print(e.getMessage()); + } //End Discord context.msg(TL.COMMAND_CREATE_YOUSHOULD, FactionsPlugin.getInstance().cmdBase.cmdDescription.getUsageTemplate(context)); if (Conf.econEnabled) Econ.setBalance(faction.getAccountId(), Conf.econFactionStartingBalance); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDebug.java b/src/main/java/com/massivecraft/factions/cmd/CmdDebug.java index 269f6d7b..ae610d5e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDebug.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDebug.java @@ -13,6 +13,7 @@ public class CmdDebug extends FCommand { this.aliases.add("debug"); this.requirements = new CommandRequirements.Builder(Permission.DEBUG).build(); } + @Override public void perform(CommandContext context) { FactionsPlugin.getInstance().divider(); @@ -51,7 +52,9 @@ public class CmdDebug extends FCommand { System.out.print("Emotes enabled: " + Discord.useEmotes); System.out.print("Leader role null: " + (Discord.leader == null ? "True" : "False")); System.out.print("Attempt Log:"); - for (DiscordSetupAttempt d : Discord.setupLog) {System.out.print(d.getDifferentialFormatted() + " " + d.getSuccess() + " " + d.getReason());} + for (DiscordSetupAttempt d : Discord.setupLog) { + System.out.print(d.getDifferentialFormatted() + " " + d.getSuccess() + " " + d.getReason()); + } System.out.print("End Attempt Log"); System.out.print("----End Discord----"); System.out.print("--------End Debug Info--------"); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java b/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java index ded77fea..781499a0 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDeinvite.java @@ -31,47 +31,47 @@ public class CmdDeinvite extends FCommand { @Override public void perform(CommandContext context) { - if (context.args.size() == 0) { - FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD); - for (String id : context.faction.getInvites()) { - FPlayer fp = FPlayers.getInstance().getById(id); - String name = fp != null ? fp.getName() : id; - msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); - } - context.sendFancyMessage(msg); + if (context.args.size() == 0) { + FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD); + for (String id : context.faction.getInvites()) { + FPlayer fp = FPlayers.getInstance().getById(id); + String name = fp != null ? fp.getName() : id; + msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); + } + context.sendFancyMessage(msg); + return; + } + + FPlayer you = context.argAsBestFPlayerMatch(0); + if (!context.fPlayer.isAdminBypassing()) { + Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE); + if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) { + context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); return; } + } - FPlayer you = context.argAsBestFPlayerMatch(0); - if (!context.fPlayer.isAdminBypassing()) { - Access access = context.faction.getAccess(context.fPlayer, PermissableAction.INVITE); - if (access != Access.ALLOW && context.fPlayer.getRole() != Role.LEADER) { - context.msg(TL.GENERIC_FPERM_NOPERMISSION, "manage invites"); - return; - } + if (you == null) { + FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD); + for (String id : context.faction.getInvites()) { + if (context.faction.getInvites().isEmpty()) return; + FPlayer fp = FPlayers.getInstance().getById(id); + String name = fp != null ? fp.getName() : id; + msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); } + context.sendFancyMessage(msg); + return; + } - if (you == null) { - FancyMessage msg = new FancyMessage(TL.COMMAND_DEINVITE_CANDEINVITE.toString()).color(ChatColor.GOLD); - for (String id : context.faction.getInvites()) { - if (context.faction.getInvites().isEmpty()) return; - FPlayer fp = FPlayers.getInstance().getById(id); - String name = fp != null ? fp.getName() : id; - msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_DEINVITE_CLICKTODEINVITE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); - } - context.sendFancyMessage(msg); - return; - } + if (you.getFaction() == context.faction) { + context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag()); + context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUsageTemplate(context)); + return; + } - if (you.getFaction() == context.faction) { - context.msg(TL.COMMAND_DEINVITE_ALREADYMEMBER, you.getName(), context.faction.getTag()); - context.msg(TL.COMMAND_DEINVITE_MIGHTWANT, FactionsPlugin.getInstance().cmdBase.cmdKick.getUsageTemplate(context)); - return; - } - - context.faction.deinvite(you); - you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you)); - context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction)); + context.faction.deinvite(you); + you.msg(TL.COMMAND_DEINVITE_REVOKED, context.fPlayer.describeTo(you), context.faction.describeTo(you)); + context.faction.msg(TL.COMMAND_DEINVITE_REVOKES, context.fPlayer.describeTo(context.faction), you.describeTo(context.faction)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java b/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java index ed38ff88..91a490de 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDisband.java @@ -1,10 +1,12 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.*; +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.FPlayers; +import com.massivecraft.factions.Faction; +import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.event.FactionDisbandEvent.PlayerDisbandReason; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.util.UtilFly; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; @@ -89,7 +91,8 @@ public class CmdDisband extends FCommand { follower.msg(TL.COMMAND_DISBAND_BROADCAST_NOTYOURS, amountString, faction.getTag(follower)); } } - if(FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) context.fPlayer.setFFlying(false, false); + if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) + context.fPlayer.setFFlying(false, false); } else { context.player.sendMessage(String.valueOf(TL.COMMAND_DISBAND_PLAYER)); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDiscord.java b/src/main/java/com/massivecraft/factions/cmd/CmdDiscord.java index 7e17dd0a..33fd4a58 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDiscord.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDiscord.java @@ -14,6 +14,7 @@ public class CmdDiscord extends FCommand { .playerOnly() .build(); } + @Override public void perform(CommandContext context) { if (context.fPlayer.discordSetup()) { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDrain.java b/src/main/java/com/massivecraft/factions/cmd/CmdDrain.java index a3621f51..4cc76455 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDrain.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDrain.java @@ -7,15 +7,14 @@ import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.entity.Player; import java.text.DecimalFormat; /** * @author Saser */ -public class CmdDrain extends FCommand{ - public CmdDrain(){ +public class CmdDrain extends FCommand { + public CmdDrain() { this.aliases.addAll(Aliases.drain); this.requirements = new CommandRequirements.Builder(Permission.DRAIN) .playerOnly() @@ -34,12 +33,12 @@ public class CmdDrain extends FCommand{ double totalBalance = 0; - for(FPlayer fPlayer : context.faction.getFPlayers()) { - if(context.faction.getFPlayers().size() == 1){ + for (FPlayer fPlayer : context.faction.getFPlayers()) { + if (context.faction.getFPlayers().size() == 1) { context.fPlayer.msg(TL.COMMAND_DRAIN_NO_PLAYERS); return; } - if (FPlayers.getInstance().getByPlayer(context.player).equals(fPlayer)){ + if (FPlayers.getInstance().getByPlayer(context.player).equals(fPlayer)) { continue; // skip the command executor } double balance = FactionsPlugin.getInstance().getEcon().getBalance(fPlayer.getPlayer()); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFly.java b/src/main/java/com/massivecraft/factions/cmd/CmdFly.java index eec4de47..8d8e275b 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFly.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFly.java @@ -102,9 +102,11 @@ public class CmdFly extends FCommand { return false; if (toFac.getAccess(fme, PermissableAction.FLY) == Access.ALLOW) return true; if (fme.getFaction().isWilderness()) return false; - if (toFac.isSystemFaction()) return me.hasPermission(Permission.valueOf("FLY_" + ChatColor.stripColor(toFac.getTag()).toUpperCase()).node); + if (toFac.isSystemFaction()) + return me.hasPermission(Permission.valueOf("FLY_" + ChatColor.stripColor(toFac.getTag()).toUpperCase()).node); Relation relationTo = toFac.getRelationTo(fme.getFaction()); - if (!relationTo.isEnemy() && !relationTo.isMember()) return me.hasPermission(Permission.valueOf("FLY_" + relationTo.name()).node); + if (!relationTo.isEnemy() && !relationTo.isMember()) + return me.hasPermission(Permission.valueOf("FLY_" + relationTo.name()).node); return false; } @@ -126,14 +128,14 @@ public class CmdFly extends FCommand { flyMap.remove(fme.getName()); } - public boolean isInFlightChecker(Player player) { - return flyMap.containsKey(player.getName()); - } - private static void checkEnemiesSync(FPlayer fp) { Bukkit.getScheduler().runTask(FactionsPlugin.instance, fp::checkIfNearbyEnemies); } + public boolean isInFlightChecker(Player player) { + return flyMap.containsKey(player.getName()); + } + @Override public void perform(CommandContext context) { if (!context.fPlayer.isAdminBypassing()) { @@ -173,17 +175,17 @@ public class CmdFly extends FCommand { return; } - context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> { - fme.setFlying(true); - flyMap.put(fme.getPlayer().getName(), true); - if (particleTask == null) { - startParticles(); - } + context.doWarmUp(WarmUpUtil.Warmup.FLIGHT, TL.WARMUPS_NOTIFY_FLIGHT, "Fly", () -> { + fme.setFlying(true); + flyMap.put(fme.getPlayer().getName(), true); + if (particleTask == null) { + startParticles(); + } - if (flyTask == null) { - startFlyCheck(); - } - }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0)); + if (flyTask == null) { + startFlyCheck(); + } + }, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-fly", 0)); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java b/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java index d2aab6d5..e7572ffe 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdGetVault.java @@ -47,7 +47,9 @@ public class CmdGetVault extends FCommand { return; } - if (!context.fPlayer.takeMoney(amount)) {return;} + if (!context.fPlayer.takeMoney(amount)) { + return; + } //success :) context.player.getInventory().addItem(vault); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java b/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java index bddf7b2c..7c453df6 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java @@ -18,6 +18,7 @@ public class CmdHelp extends FCommand { */ public ArrayList> helpPages; + //TODO: Add Help GUI public CmdHelp() { super(); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java b/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java index 272e7f95..ecc9b5e2 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdJoin.java @@ -139,7 +139,9 @@ public class CmdJoin extends FCommand { Discord.mainGuild.getController().setNickname(m, Discord.getNicknameString(context.fPlayer)).queue(); } } - } catch (HierarchyException e) {System.out.print(e.getMessage());} + } catch (HierarchyException e) { + System.out.print(e.getMessage()); + } if (Conf.logFactionJoin) { if (samePlayer) { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java b/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java index d85523e3..68f9d820 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLeave.java @@ -1,9 +1,7 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.Conf; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.ChatColor; public class CmdLeave extends FCommand { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLock.java b/src/main/java/com/massivecraft/factions/cmd/CmdLock.java index c0f7863e..05b54002 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLock.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLock.java @@ -16,7 +16,6 @@ public class CmdLock extends FCommand { description: use the /f lock [on/off] command to temporarily lock the data files from being overwritten default: op */ - public CmdLock() { super(); this.aliases.addAll(Aliases.lock); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdMod.java b/src/main/java/com/massivecraft/factions/cmd/CmdMod.java index 236ee0b3..82c2335a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdMod.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdMod.java @@ -31,53 +31,53 @@ public class CmdMod extends FCommand { @Override public void perform(CommandContext context) { - FPlayer you = context.argAsBestFPlayerMatch(0); - if (you == null) { - FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD); - for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) { - String s = player.getName(); - msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s); - } - - context.sendFancyMessage(msg); - return; + FPlayer you = context.argAsBestFPlayerMatch(0); + if (you == null) { + FancyMessage msg = new FancyMessage(TL.COMMAND_MOD_CANDIDATES.toString()).color(ChatColor.GOLD); + for (FPlayer player : context.faction.getFPlayersWhereRole(Role.NORMAL)) { + String s = player.getName(); + msg.then(s + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_MOD_CLICKTOPROMOTE.toString() + s).command("/" + Conf.baseCommandAliases.get(0) + " mod " + s); } - boolean permAny = Permission.MOD_ANY.has(context.sender, false); - Faction targetFaction = you.getFaction(); - if (targetFaction != context.faction && !permAny) { - context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true)); - return; - } + context.sendFancyMessage(msg); + return; + } - if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) { - context.msg(TL.COMMAND_MOD_NOTADMIN); - return; - } + boolean permAny = Permission.MOD_ANY.has(context.sender, false); + Faction targetFaction = you.getFaction(); + if (targetFaction != context.faction && !permAny) { + context.msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(context.fPlayer, true)); + return; + } - if (you == context.fPlayer && !permAny) { - context.msg(TL.COMMAND_MOD_SELF); - return; - } + if (context.fPlayer != null && context.fPlayer.getRole() != Role.LEADER && !permAny) { + context.msg(TL.COMMAND_MOD_NOTADMIN); + return; + } - if (you.getRole() == Role.LEADER) { - context.msg(TL.COMMAND_MOD_TARGETISADMIN); - return; - } + if (you == context.fPlayer && !permAny) { + context.msg(TL.COMMAND_MOD_SELF); + return; + } - if (you.getRole() == Role.MODERATOR) { - // Revoke - you.setRole(Role.NORMAL); - targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true)); - context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true)); - } else { - // Give - you.setRole(Role.MODERATOR); - targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true)); - context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true)); - FactionsPlugin.instance.getFlogManager().log(targetFaction, FLogType.RANK_EDIT, context.fPlayer.getName(), you.getName(), ChatColor.LIGHT_PURPLE + "Mod"); + if (you.getRole() == Role.LEADER) { + context.msg(TL.COMMAND_MOD_TARGETISADMIN); + return; + } - } + if (you.getRole() == Role.MODERATOR) { + // Revoke + you.setRole(Role.NORMAL); + targetFaction.msg(TL.COMMAND_MOD_REVOKED, you.describeTo(targetFaction, true)); + context.msg(TL.COMMAND_MOD_REVOKES, you.describeTo(context.fPlayer, true)); + } else { + // Give + you.setRole(Role.MODERATOR); + targetFaction.msg(TL.COMMAND_MOD_PROMOTED, you.describeTo(targetFaction, true)); + context.msg(TL.COMMAND_MOD_PROMOTES, you.describeTo(context.fPlayer, true)); + FactionsPlugin.instance.getFlogManager().log(targetFaction, FLogType.RANK_EDIT, context.fPlayer.getName(), you.getName(), ChatColor.LIGHT_PURPLE + "Mod"); + + } } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java b/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java index 3b7e6313..effc1f0a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPaypalSee.java @@ -29,7 +29,6 @@ public class CmdPaypalSee extends FCommand { } - if (context.args.size() == 0) { if (context.fPlayer.getFaction().getPaypal() == null) { context.msg(TL.COMMAND_PAYPAL_NOTSET); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdPlayerTitleToggle.java b/src/main/java/com/massivecraft/factions/cmd/CmdPlayerTitleToggle.java index c6b65e8b..b8340a4d 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdPlayerTitleToggle.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdPlayerTitleToggle.java @@ -11,11 +11,15 @@ public class CmdPlayerTitleToggle extends FCommand { this.requirements = new CommandRequirements.Builder(Permission.TOGGLE_TITLES) .build(); } + @Override public void perform(CommandContext context) { context.fPlayer.setTitlesEnabled(!context.fPlayer.hasTitlesEnabled()); context.msg(TL.COMMAND_TITLETOGGLE_TOGGLED, context.fPlayer.hasTitlesEnabled() ? FactionsPlugin.getInstance().color("&dEnabled") : FactionsPlugin.getInstance().color("&dDisabled")); } + @Override - public TL getUsageTranslation() {return TL.COMMAND_TITLETOGGLE_DESCRIPTION;} + public TL getUsageTranslation() { + return TL.COMMAND_TITLETOGGLE_DESCRIPTION; + } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSeeDiscord.java b/src/main/java/com/massivecraft/factions/cmd/CmdSeeDiscord.java index 201f8d5f..2fead4bc 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSeeDiscord.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSeeDiscord.java @@ -5,7 +5,7 @@ import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; -public class CmdSeeDiscord extends FCommand{ +public class CmdSeeDiscord extends FCommand { /** * @author Driftay @@ -29,7 +29,6 @@ public class CmdSeeDiscord extends FCommand{ } - if (context.args.size() == 0) { if (context.fPlayer.getFaction().getDiscord() == null) { context.msg(TL.COMMAND_DISCORD_NOTSET); diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSetDiscord.java b/src/main/java/com/massivecraft/factions/cmd/CmdSetDiscord.java index 2060cefe..4903aadd 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSetDiscord.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSetDiscord.java @@ -12,7 +12,7 @@ public class CmdSetDiscord extends FCommand { * @author Driftay */ - public CmdSetDiscord(){ + public CmdSetDiscord() { super(); this.aliases.addAll(Aliases.discord_set); @@ -64,7 +64,7 @@ public class CmdSetDiscord extends FCommand { } } - private boolean isDiscordInvite(String invite){ + private boolean isDiscordInvite(String invite) { return invite.contains("discord.gg") || invite.contains("discord.me"); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java b/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java index 930b428e..6dd0a368 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdShowInvites.java @@ -3,7 +3,6 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; import mkremins.fanciful.FancyMessage; @@ -28,12 +27,12 @@ public class CmdShowInvites extends FCommand { @Override public void perform(CommandContext context) { - FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD); - for (String id : context.faction.getInvites()) { - FPlayer fp = FPlayers.getInstance().getById(id); - String name = fp != null ? fp.getName() : id; - msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); - } + FancyMessage msg = new FancyMessage(TL.COMMAND_SHOWINVITES_PENDING.toString()).color(ChatColor.GOLD); + for (String id : context.faction.getInvites()) { + FPlayer fp = FPlayers.getInstance().getById(id); + String name = fp != null ? fp.getName() : id; + msg.then(name + " ").color(ChatColor.WHITE).tooltip(TL.COMMAND_SHOWINVITES_CLICKTOREVOKE.format(name)).command("/" + Conf.baseCommandAliases.get(0) + " deinvite " + name); + } } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSpawnerLock.java b/src/main/java/com/massivecraft/factions/cmd/CmdSpawnerLock.java index 11919247..c7a82055 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSpawnerLock.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSpawnerLock.java @@ -11,7 +11,7 @@ public class CmdSpawnerLock extends FCommand { * @author Illyria Team */ - public CmdSpawnerLock(){ + public CmdSpawnerLock() { super(); this.aliases.addAll(Aliases.spawnerlock); @@ -20,7 +20,7 @@ public class CmdSpawnerLock extends FCommand { } @Override - public void perform(CommandContext context){ + public void perform(CommandContext context) { Conf.spawnerLock = !Conf.spawnerLock; context.msg(TL.COMMAND_SPAWNER_LOCK_TOGGLED, Conf.spawnerLock ? FactionsPlugin.getInstance().color("&aEnabled") : FactionsPlugin.getInstance().color("&4Disabled")); } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdTag.java b/src/main/java/com/massivecraft/factions/cmd/CmdTag.java index 70f89425..356972d4 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdTag.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdTag.java @@ -34,56 +34,56 @@ public class CmdTag extends FCommand { @Override public void perform(CommandContext context) { - String tag = context.argAsString(0); + String tag = context.argAsString(0); - // TODO does not first test cover selfcase? - if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) { - context.msg(TL.COMMAND_TAG_TAKEN); - return; + // TODO does not first test cover selfcase? + if (Factions.getInstance().isTagTaken(tag) && !MiscUtil.getComparisonString(tag).equals(context.faction.getComparisonTag())) { + context.msg(TL.COMMAND_TAG_TAKEN); + return; + } + + ArrayList errors = MiscUtil.validateTag(tag); + if (errors.size() > 0) { + context.sendMessage(errors); + return; + } + + // if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay + if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) { + return; + } + + // trigger the faction rename event (cancellable) + FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag); + Bukkit.getServer().getPluginManager().callEvent(renameEvent); + if (renameEvent.isCancelled()) { + return; + } + + // then make 'em pay (if applicable) + if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) { + return; + } + + String oldtag = context.faction.getTag(); + context.faction.setTag(tag); + Discord.changeFactionTag(context.faction, oldtag); + FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.FTAG_EDIT, context.fPlayer.getName(), tag); + + + // Inform + for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { + if (fplayer.getFactionId().equals(context.faction.getId())) { + fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction)); + continue; } - - ArrayList errors = MiscUtil.validateTag(tag); - if (errors.size() > 0) { - context.sendMessage(errors); - return; + // Broadcast the tag change (if applicable) + if (Conf.broadcastTagChanges) { + Faction faction = fplayer.getFaction(); + fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction)); } - - // if economy is enabled, they're not on the bypass list, and this command has a cost set, make sure they can pay - if (!context.canAffordCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE.toString())) { - return; - } - - // trigger the faction rename event (cancellable) - FactionRenameEvent renameEvent = new FactionRenameEvent(context.fPlayer, tag); - Bukkit.getServer().getPluginManager().callEvent(renameEvent); - if (renameEvent.isCancelled()) { - return; - } - - // then make 'em pay (if applicable) - if (!context.payForCommand(Conf.econCostTag, TL.COMMAND_TAG_TOCHANGE, TL.COMMAND_TAG_FORCHANGE)) { - return; - } - - String oldtag = context.faction.getTag(); - context.faction.setTag(tag); - Discord.changeFactionTag(context.faction, oldtag); - FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.FTAG_EDIT, context.fPlayer.getName(), tag); - - - // Inform - for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) { - if (fplayer.getFactionId().equals(context.faction.getId())) { - fplayer.msg(TL.COMMAND_TAG_FACTION, context.fPlayer.describeTo(context.faction, true), context.faction.getTag(context.faction)); - continue; - } - // Broadcast the tag change (if applicable) - if (Conf.broadcastTagChanges) { - Faction faction = fplayer.getFaction(); - fplayer.msg(TL.COMMAND_TAG_CHANGED, context.fPlayer.getColorTo(faction) + oldtag, context.faction.getTag(faction)); - } - } - FTeamWrapper.updatePrefixes(context.faction); + } + FTeamWrapper.updatePrefixes(context.faction); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java b/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java index ed31762c..2fcd7a03 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdTpBanner.java @@ -2,7 +2,6 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.listeners.FactionsBlockListener; -import com.massivecraft.factions.listeners.FactionsPlayerListener; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.util.WarmUpUtil; import com.massivecraft.factions.zcore.util.TL; diff --git a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java index fd614516..0e8c9ab5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java @@ -308,16 +308,16 @@ public class FCmdRoot extends FCommand implements CommandExecutor { */ public void addVariableCommands() { //Discord - if (Conf.useDiscordSystem && !discordEnabled) { - this.addSubCommand(this.cmdInviteBot); - this.addSubCommand(this.cmdSetGuild); - this.addSubCommand(this.cmdSetDiscord); - this.addSubCommand(this.cmdSeeDiscord); - this.addSubCommand(this.cmdDiscord); - discordEnabled = true; - } - //Reserve - if(Conf.useReserveSystem){ + if (Conf.useDiscordSystem && !discordEnabled) { + this.addSubCommand(this.cmdInviteBot); + this.addSubCommand(this.cmdSetGuild); + this.addSubCommand(this.cmdSetDiscord); + this.addSubCommand(this.cmdSeeDiscord); + this.addSubCommand(this.cmdDiscord); + discordEnabled = true; + } + //Reserve + if (Conf.useReserveSystem) { this.addSubCommand(this.cmdReserve); } @@ -350,7 +350,7 @@ public class FCmdRoot extends FCommand implements CommandExecutor { internalFTOPEnabled = true; } - if(Conf.useAuditSystem){ + if (Conf.useAuditSystem) { this.addSubCommand(cmdAudit); fAuditEnabled = true; } @@ -394,7 +394,9 @@ public class FCmdRoot extends FCommand implements CommandExecutor { } } - public void rebuild() {if (CommodoreProvider.isSupported()) brigadierManager.build();} + public void rebuild() { + if (CommodoreProvider.isSupported()) brigadierManager.build(); + } @Override public void perform(CommandContext context) { diff --git a/src/main/java/com/massivecraft/factions/cmd/alts/CmdKickAlt.java b/src/main/java/com/massivecraft/factions/cmd/alts/CmdKickAlt.java index 5d613dd6..852129b4 100644 --- a/src/main/java/com/massivecraft/factions/cmd/alts/CmdKickAlt.java +++ b/src/main/java/com/massivecraft/factions/cmd/alts/CmdKickAlt.java @@ -25,7 +25,7 @@ public class CmdKickAlt extends FCommand { * @author Driftay */ - public CmdKickAlt(){ + public CmdKickAlt() { super(); this.aliases.addAll(Aliases.alts_kick); this.requiredArgs.add("player name"); @@ -86,7 +86,7 @@ public class CmdKickAlt extends FCommand { // This statement allows us to check if they've specifically denied it, // or default to // the old setting of allowing moderators to kick - if (access != Access.ALLOW && !context.assertMinRole(Role.MODERATOR)) { + if (access != Access.ALLOW && !context.assertMinRole(Role.MODERATOR)) { context.msg(TL.GENERIC_NOPERMISSION, "kick"); return; } diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/CmdAudit.java b/src/main/java/com/massivecraft/factions/cmd/audit/CmdAudit.java index 0a14861b..a2d19487 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/CmdAudit.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/CmdAudit.java @@ -26,10 +26,11 @@ public class CmdAudit extends FCommand { .noErrorOnManyArgs() .build(); } + @Override public void perform(CommandContext context) { Faction faction = context.args.size() == 1 && context.sender.isOp() ? context.argAsFaction(0) : context.faction; - new FAuditMenu((Player)context.sender, faction).open((Player)context.sender); + new FAuditMenu((Player) context.sender, faction).open((Player) context.sender); } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/FAuditMenu.java b/src/main/java/com/massivecraft/factions/cmd/audit/FAuditMenu.java index cbfcf1e2..51e89a66 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/FAuditMenu.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/FAuditMenu.java @@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd.audit; /* @author Saser */ + import com.google.common.collect.Lists; import com.massivecraft.factions.Faction; import com.massivecraft.factions.FactionsPlugin; @@ -92,9 +93,9 @@ public class FAuditMenu extends GUIMenu { LinkedList log = logs.getMostRecentLogs().get(logType); if (log != null) { int slot = logType == FLogType.F_TNT ? 0 : 3; - int pagesToShow = (int)Math.max(1.0D, Math.ceil((double)log.size() / (double)perPage)); + int pagesToShow = (int) Math.max(1.0D, Math.ceil((double) log.size() / (double) perPage)); - for(int page = 1; page <= pagesToShow; ++page) { + for (int page = 1; page <= pagesToShow; ++page) { int startIndex = log.size() - (page * perPage - perPage); if (startIndex >= log.size()) { startIndex = log.size() - 1; @@ -102,7 +103,7 @@ public class FAuditMenu extends GUIMenu { List lore = Lists.newArrayList("", CC.GreenB + "Logs"); - for(int i = startIndex; i > startIndex - perPage; --i) { + for (int i = startIndex; i > startIndex - perPage; --i) { if (i < log.size()) { if (i < 0) { break; diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/FChestListener.java b/src/main/java/com/massivecraft/factions/cmd/audit/FChestListener.java index b8f8ea74..ee0989f9 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/FChestListener.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/FChestListener.java @@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd.audit; /** * @author Saser */ + import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; @@ -45,17 +46,20 @@ public class FChestListener implements Listener { Player player = (Player) event.getWhoClicked(); FPlayer fPlayer = FPlayers.getInstance().getByPlayer(player); Faction faction; - if(!event.getView().getTitle().equalsIgnoreCase(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fchest.Inventory-Title")))) return; + if (!event.getView().getTitle().equalsIgnoreCase(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fchest.Inventory-Title")))) + return; if (event.getClick() == ClickType.UNKNOWN) { event.setCancelled(true); player.sendMessage(CC.RedB + "(!) " + CC.Red + "You cannot use that click type inside the /f chest!"); return; } ItemStack currentItem = event.getCurrentItem(); - if (event.getClick() == ClickType.NUMBER_KEY) currentItem = event.getClickedInventory().getItem(event.getSlot()); + if (event.getClick() == ClickType.NUMBER_KEY) + currentItem = event.getClickedInventory().getItem(event.getSlot()); Material currentItemType = currentItem != null ? currentItem.getType() : Material.AIR; ItemStack cursorItem = event.getCursor(); - if (event.getClick() == ClickType.NUMBER_KEY) cursorItem = player.getInventory().getItem(event.getHotbarButton()); + if (event.getClick() == ClickType.NUMBER_KEY) + cursorItem = player.getInventory().getItem(event.getHotbarButton()); Material cursorItemType = cursorItem != null ? cursorItem.getType() : Material.AIR; if (fPlayer == null || !(faction = fPlayer.getFaction()).isNormal()) { player.closeInventory(); @@ -65,16 +69,16 @@ public class FChestListener implements Listener { if (event.getClickedInventory() == null) return; if (event.getView().getTitle().equalsIgnoreCase(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fchest.Inventory-Title"))) && !event.getClick().isShiftClick()) { if (currentItemType != Material.AIR) { - Inventory ours = faction.getChestInventory(); - if(event.getClickedInventory() == ours) { - if (ours == null || !ours.contains(currentItem)) { - event.setCancelled(true); - player.sendMessage(CC.RedB + "(!) That item not longer exists!"); - Bukkit.getLogger().info("[FactionChest] " + player.getName() + " tried to remove " + currentItem + " from /f chest when it didnt contain! Items: " + (ours == null ? "none" : Arrays.toString(ours.getContents()))); - player.closeInventory(); - return; - } + Inventory ours = faction.getChestInventory(); + if (event.getClickedInventory() == ours) { + if (ours == null || !ours.contains(currentItem)) { + event.setCancelled(true); + player.sendMessage(CC.RedB + "(!) That item not longer exists!"); + Bukkit.getLogger().info("[FactionChest] " + player.getName() + " tried to remove " + currentItem + " from /f chest when it didnt contain! Items: " + (ours == null ? "none" : Arrays.toString(ours.getContents()))); + player.closeInventory(); + return; } + } logRemoveItem(currentItem, fPlayer, player); } else if (cursorItemType != Material.AIR && !event.isShiftClick()) { logAddItem(cursorItem, fPlayer, player); diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/FLogManager.java b/src/main/java/com/massivecraft/factions/cmd/audit/FLogManager.java index a6b99a7d..7b5eb28a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/FLogManager.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/FLogManager.java @@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd.audit; /** * @author Saser */ + import com.google.common.reflect.TypeToken; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; @@ -127,7 +128,7 @@ public class FLogManager { } try { - JSONUtils.saveJSONToFile(logFile, factionLogMap,logToken); + JSONUtils.saveJSONToFile(logFile, factionLogMap, logToken); } catch (Exception e1) { Bukkit.getLogger().info("ERROR SAVING JSON LOGS: " + e1.getMessage()); e1.printStackTrace(); diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/FLogType.java b/src/main/java/com/massivecraft/factions/cmd/audit/FLogType.java index 6d3aa666..1d48e824 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/FLogType.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/FLogType.java @@ -27,8 +27,10 @@ public enum FLogType { private String msg; private int requiredArgs; - public String getDisplayName() { - return this.displayName; + FLogType(String displayName, String msg, int requiredArgs) { + this.displayName = displayName; + this.msg = msg; + this.requiredArgs = requiredArgs; } /** @@ -46,15 +48,22 @@ public enum FLogType { return null; } - @Override - public String toString() { return name(); } - - public int getSlot() { return FactionsPlugin.getInstance().getConfig().getInt("faudit-gui.slots." + name().toLowerCase()); } - - public Material getMaterial(){ - return XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("faudit-gui.materials." + name().toLowerCase())).parseMaterial(); + public String getDisplayName() { + return this.displayName; } + @Override + public String toString() { + return name(); + } + + public int getSlot() { + return FactionsPlugin.getInstance().getConfig().getInt("faudit-gui.slots." + name().toLowerCase()); + } + + public Material getMaterial() { + return XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("faudit-gui.materials." + name().toLowerCase())).parseMaterial(); + } public String getMsg() { return this.msg; @@ -63,10 +72,4 @@ public enum FLogType { public int getRequiredArgs() { return this.requiredArgs; } - - FLogType(String displayName, String msg, int requiredArgs) { - this.displayName = displayName; - this.msg = msg; - this.requiredArgs = requiredArgs; - } } diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/FactionLogs.java b/src/main/java/com/massivecraft/factions/cmd/audit/FactionLogs.java index 78a12f11..efebf420 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/FactionLogs.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/FactionLogs.java @@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd.audit; /** * @author Saser */ + import com.google.common.collect.Lists; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -16,8 +17,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; public class FactionLogs { - private Map> mostRecentLogs = new ConcurrentHashMap<>(); public static transient SimpleDateFormat format = new SimpleDateFormat("MM/dd hh:mmaa"); + private Map> mostRecentLogs = new ConcurrentHashMap<>(); public FactionLogs() { } diff --git a/src/main/java/com/massivecraft/factions/cmd/audit/LogTimer.java b/src/main/java/com/massivecraft/factions/cmd/audit/LogTimer.java index 23afd63e..d32831f6 100644 --- a/src/main/java/com/massivecraft/factions/cmd/audit/LogTimer.java +++ b/src/main/java/com/massivecraft/factions/cmd/audit/LogTimer.java @@ -3,6 +3,7 @@ package com.massivecraft.factions.cmd.audit; /** * @author Saser */ + import com.massivecraft.factions.Faction; import com.massivecraft.factions.FactionsPlugin; import org.apache.commons.lang.StringUtils; @@ -65,11 +66,32 @@ public class LogTimer extends ConcurrentHashMap= expiration; } - public Timer(long startTime, long count, Object extraData) { - this.startTime = startTime; - this.count = count; - this.extraData = extraData; - } - public long getStartTime() { return this.startTime; } - public long getCount() { - return this.count; - } - - public Object getExtraData() { - return this.extraData; - } - public void setStartTime(long startTime) { this.startTime = startTime; } + public long getCount() { + return this.count; + } + public void setCount(long count) { this.count = count; } + public Object getExtraData() { + return this.extraData; + } + public void setExtraData(Object extraData) { this.extraData = extraData; } } - - public enum TimerSubType { - SPAWNER_BREAK, - SPAWNER_PLACE; - TimerSubType() { - } - } - - public enum TimerType { - SPAWNER_EDIT; - TimerType() { - } - } } diff --git a/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java b/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java index be4a0de8..6f52f589 100644 --- a/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java +++ b/src/main/java/com/massivecraft/factions/cmd/check/CmdWeeWoo.java @@ -59,7 +59,7 @@ public class CmdWeeWoo extends FCommand { } context.faction.setWeeWoo(false); context.msg(TL.COMMAND_WEEWOO_STOPPED, context.fPlayer.getNameAndTag()); - if(!Conf.useDiscordSystem) return; + if (!Conf.useDiscordSystem) return; String discordChannelId = context.faction.getWeeWooChannelId(); if (discordChannelId != null && !discordChannelId.isEmpty()) { TextChannel textChannel = Discord.jda.getTextChannelById(discordChannelId); diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java index 83521ab3..3e77a501 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimAt.java @@ -1,7 +1,6 @@ package com.massivecraft.factions.cmd.claim; import com.massivecraft.factions.Board; -import com.massivecraft.factions.Conf; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.cmd.Aliases; diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java index e689b50e..07f791b5 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdClaimLine.java @@ -89,7 +89,7 @@ public class CmdClaimLine extends FCommand { location = location.add(blockFace.getModX() * 16, 0, blockFace.getModZ() * 16); FactionsPlugin.instance.logFactionEvent(forFaction, FLogType.CHUNK_CLAIMS, context.fPlayer.getName(), CC.GreenB + "CLAIMED", String.valueOf(i), new FLocation(context.player.getLocation()).formatXAndZ(",")); } -} + } @Override public TL getUsageTranslation() { diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java index 2513556f..d05f5efc 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdCorner.java @@ -10,8 +10,6 @@ import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.util.CornerTask; import com.massivecraft.factions.zcore.fperms.PermissableAction; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java b/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java index b430306d..80d4a479 100644 --- a/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java +++ b/src/main/java/com/massivecraft/factions/cmd/claim/CmdUnclaimall.java @@ -21,7 +21,6 @@ public class CmdUnclaimall extends FCommand { */ //TODO: Add UnclaimAll Confirmation GUI - public CmdUnclaimall() { this.aliases.addAll(Aliases.unclaim_all_unsafe); diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java index d86f52a7..5fcebeeb 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoney.java @@ -40,7 +40,7 @@ public class CmdMoney extends FCommand { @Override public void perform(CommandContext context) { if (!Conf.econEnabled || !Conf.bankEnabled) { - context.msg(TL.ECON_OFF, "economy option is enabled, please set \'econEnabled\' to true in conf.json"); + context.msg(TL.ECON_OFF, "economy option is enabled, please set 'econEnabled' to true in conf.json"); return; } context.commandChain.add(this); diff --git a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java index b5f43548..bff6ce1f 100644 --- a/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java +++ b/src/main/java/com/massivecraft/factions/cmd/econ/CmdMoneyBalance.java @@ -8,7 +8,6 @@ import com.massivecraft.factions.cmd.FCommand; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; -import org.bukkit.command.CommandSender; public class CmdMoneyBalance extends FCommand { diff --git a/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java b/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java index a7fc3a68..170a057e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java +++ b/src/main/java/com/massivecraft/factions/cmd/grace/CmdGrace.java @@ -16,7 +16,6 @@ public class CmdGrace extends FCommand { */ //TODO: Make Timed Format For Grace Period - public CmdGrace() { super(); this.aliases.addAll(Aliases.grace); diff --git a/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java b/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java index 44599096..f39a7044 100644 --- a/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java +++ b/src/main/java/com/massivecraft/factions/cmd/relational/FRelationCommand.java @@ -84,7 +84,7 @@ public abstract class FRelationCommand extends FCommand { // trigger the faction relation event FactionRelationEvent relationEvent = new FactionRelationEvent(context.faction, them, oldRelation, currentRelation); Bukkit.getServer().getPluginManager().callEvent(relationEvent); - FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.RELATION_CHANGE,context.fPlayer.getName(), this.targetRelation.getColor() + this.targetRelation.name(), oldRelation.getColor() + them.getTag()); + FactionsPlugin.instance.logFactionEvent(context.faction, FLogType.RELATION_CHANGE, context.fPlayer.getName(), this.targetRelation.getColor() + this.targetRelation.name(), oldRelation.getColor() + them.getTag()); FactionsPlugin.instance.logFactionEvent(them, FLogType.RELATION_CHANGE, oldRelation.getColor() + context.fPlayer.getName(), this.targetRelation.getColor() + this.targetRelation.name(), "your faction"); them.msg(TL.COMMAND_RELATIONS_MUTUAL, currentRelationColor + targetRelation.getTranslation(), currentRelationColor + context.faction.getTag()); diff --git a/src/main/java/com/massivecraft/factions/cmd/reserve/ListParameterizedType.java b/src/main/java/com/massivecraft/factions/cmd/reserve/ListParameterizedType.java index da884ef4..82eb2eef 100644 --- a/src/main/java/com/massivecraft/factions/cmd/reserve/ListParameterizedType.java +++ b/src/main/java/com/massivecraft/factions/cmd/reserve/ListParameterizedType.java @@ -10,14 +10,22 @@ import java.util.ArrayList; public class ListParameterizedType implements ParameterizedType { private Type type; - public ListParameterizedType(Type type) { this.type = type; } + public ListParameterizedType(Type type) { + this.type = type; + } @Override - public Type[] getActualTypeArguments() { return new Type[] { this.type }; } + public Type[] getActualTypeArguments() { + return new Type[]{this.type}; + } @Override - public Type getRawType() { return ArrayList.class; } + public Type getRawType() { + return ArrayList.class; + } @Override - public Type getOwnerType() { return null; } + public Type getOwnerType() { + return null; + } } diff --git a/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveObject.java b/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveObject.java index 8cbaf401..8b123358 100644 --- a/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveObject.java +++ b/src/main/java/com/massivecraft/factions/cmd/reserve/ReserveObject.java @@ -6,13 +6,16 @@ package com.massivecraft.factions.cmd.reserve; public class ReserveObject { private String name; private String factionName; - public ReserveObject(String name, String factionName){ + + public ReserveObject(String name, String factionName) { this.name = name; this.factionName = factionName; } + public String getName() { return this.name; } + public String getFactionName() { return this.factionName; } diff --git a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java index 962b6a0a..8ee1ef0e 100644 --- a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java +++ b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTnt.java @@ -34,6 +34,24 @@ public class CmdTnt extends FCommand { .build(); } + public static void removeItems(Inventory inventory, ItemStack item, int toRemove) { + if (toRemove <= 0 || inventory == null || item == null) + return; + for (int i = 0; i < inventory.getSize(); i++) { + ItemStack loopItem = inventory.getItem(i); + if (loopItem == null || !item.isSimilar(loopItem)) + continue; + if (toRemove <= 0) + return; + if (toRemove < loopItem.getAmount()) { + loopItem.setAmount(loopItem.getAmount() - toRemove); + return; + } + inventory.clear(i); + toRemove -= loopItem.getAmount(); + } + } + @Override public void perform(CommandContext context) { if (!FactionsPlugin.instance.getConfig().getBoolean("ftnt.Enabled")) { @@ -110,8 +128,10 @@ public class CmdTnt extends FCommand { return; } - for (int i = 0; i <= fullStacks - 1; i++) context.player.getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), 64)); - if (remainderAmt != 0) context.player.getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), remainderAmt)); + for (int i = 0; i <= fullStacks - 1; i++) + context.player.getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), 64)); + if (remainderAmt != 0) + context.player.getInventory().addItem(new ItemStack(XMaterial.TNT.parseMaterial(), remainderAmt)); context.faction.takeTnt(amount); context.player.updateInventory(); @@ -123,7 +143,9 @@ public class CmdTnt extends FCommand { Inventory inv = context.player.getInventory(); int invTnt = 0; for (int i = 0; i <= inv.getSize(); i++) { - if (inv.getItem(i) == null) { continue; } + if (inv.getItem(i) == null) { + continue; + } if (inv.getItem(i).getType() == Material.TNT) { invTnt += inv.getItem(i).getAmount(); } @@ -152,7 +174,6 @@ public class CmdTnt extends FCommand { context.sendMessage(TL.COMMAND_TNT_AMOUNT.toString().replace("{amount}", context.faction.getTnt() + "").replace("{maxAmount}", context.faction.getTntBankLimit() + "")); } - public boolean inventoryContains(Inventory inventory, ItemStack item) { int count = 0; ItemStack[] items = inventory.getContents(); @@ -177,24 +198,6 @@ public class CmdTnt extends FCommand { return check >= howmany; } - public static void removeItems(Inventory inventory, ItemStack item, int toRemove) { - if (toRemove <= 0 || inventory == null || item == null) - return; - for (int i = 0; i < inventory.getSize(); i++) { - ItemStack loopItem = inventory.getItem(i); - if (loopItem == null || !item.isSimilar(loopItem)) - continue; - if (toRemove <= 0) - return; - if (toRemove < loopItem.getAmount()) { - loopItem.setAmount(loopItem.getAmount() - toRemove); - return; - } - inventory.clear(i); - toRemove -= loopItem.getAmount(); - } - } - public void removeFromInventory(Inventory inventory, ItemStack item) { int amt = item.getAmount(); ItemStack[] items = inventory.getContents(); diff --git a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java index 421176b3..9562bffc 100644 --- a/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java +++ b/src/main/java/com/massivecraft/factions/cmd/tnt/CmdTntFill.java @@ -1,6 +1,7 @@ package com.massivecraft.factions.cmd.tnt; import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.Factions; import com.massivecraft.factions.FactionsPlugin; import com.massivecraft.factions.cmd.Aliases; import com.massivecraft.factions.cmd.CommandContext; @@ -23,13 +24,9 @@ import java.util.*; public class CmdTntFill extends FCommand { - /** - * @author Illyria Team - */ - public CmdTntFill() { super(); - this.aliases.addAll(Aliases.tnt_tntfill); + this.aliases.add("tntfill"); this.requiredArgs.add("radius"); this.requiredArgs.add("amount"); @@ -43,8 +40,8 @@ public class CmdTntFill extends FCommand { @Override public void perform(CommandContext context) { - if (!FactionsPlugin.instance.getConfig().getBoolean("Tntfill.enabled")) { - context.msg(TL.COMMAND_TNT_DISABLED_MSG); + if (!FactionsPlugin.getInstance().getConfig().getBoolean("Tntfill.enabled")) { + context.msg(TL.GENERIC_DISABLED); return; } @@ -58,23 +55,23 @@ public class CmdTntFill extends FCommand { } context.msg(TL.COMMAND_TNTFILL_HEADER); - int radius = context.argAsInt(0, 0); // We don't know the max yet, so let's not assume. - int amount = context.argAsInt(1, 0); // We don't know the max yet, so let's not assume. + // We don't know the max yet, so let's not assume. + int radius = context.argAsInt(0, 0); + int amount = context.argAsInt(1, 0); - if (amount <= 0 || radius <= 0) { + if (amount < 0) { context.msg(TL.COMMAND_TNT_POSITIVE); return; } - - if (radius > FactionsPlugin.instance.getConfig().getInt("Tntfill.max-radius")) { - context.msg(TL.COMMAND_TNTFILL_RADIUSMAX.toString().replace("{max}", FactionsPlugin.instance.getConfig().getInt("Tntfill.max-radius") + "")); + if (radius > FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-radius")) { + context.msg(TL.COMMAND_TNTFILL_RADIUSMAX.toString().replace("{max}", FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-radius") + "")); + return; + } + if (amount > FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-amount")) { + context.msg(TL.COMMAND_TNTFILL_AMOUNTMAX.toString().replace("{max}", FactionsPlugin.getInstance().getConfig().getInt("Tntfill.max-amount") + "")); return; } - if (amount > FactionsPlugin.instance.getConfig().getInt("Tntfill.max-amount")) { - context.msg(TL.COMMAND_TNTFILL_AMOUNTMAX.toString().replace("{max}", FactionsPlugin.instance.getConfig().getInt("Tntfill.max-amount") + "")); - return; - } // How many dispensers are we to fill in? Location start = context.player.getLocation(); @@ -89,103 +86,82 @@ public class CmdTntFill extends FCommand { if (block == null) continue; BlockState blockState = block.getState(); if (!(blockState instanceof Dispenser)) continue; + Dispenser dis = (Dispenser) blockState; + // skip if we can't add anything + if (isInvFull(dis.getInventory())) continue; opDispensers.add((Dispenser) blockState); } if (opDispensers.isEmpty()) { context.fPlayer.msg(TL.COMMAND_TNTFILL_NODISPENSERS.toString().replace("{radius}", radius + "")); return; } - - // What's the required amount of resources int requiredTnt = (opDispensers.size() * amount); - - // Do I have enough tnt in my inventory? - int playerTnt = inventoryItemCount(context.player.getInventory(), Material.TNT); + int playerTnt = getTNTInside(context.player); + // if player does not have enough tnt, just take whatever he has and add it to the bank + // then use the bank as source. If bank < required abort. if (playerTnt < requiredTnt) { - // How much TNT will I take from bank? - int getFactionTnt = requiredTnt - playerTnt; - // Do I have enough tnt in bank? - if ((context.faction.getTnt() < getFactionTnt)) { + if ((context.faction.getTnt() < (requiredTnt - playerTnt))) { context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); return; } - - // Take TNT from the bank. - removeFromBank(context, getFactionTnt); + // move whatever tnt you have to the bank, ignoring limit because its gonna be taken out later anyways + context.faction.addTnt(playerTnt); + removeItems(context.fPlayer.getPlayer().getInventory(), new ItemStack(Material.TNT), playerTnt); + // Take TNT from the bank + fillDispensers(context, opDispensers, amount); + } else { + // Take TNT from the player + fillDispensers(context.fPlayer, opDispensers, amount); } - fillDispensers(context.fPlayer, opDispensers, amount); - // Remove used TNT from player inventory. context.sendMessage(TL.COMMAND_TNTFILL_SUCCESS.toString().replace("{amount}", requiredTnt + "").replace("{dispensers}", opDispensers.size() + "")); } + // Actually fill every dispenser with the precise amount. private void fillDispensers(FPlayer fPlayer, List dispensers, int count) { for (Dispenser dispenser : dispensers) { - if (takeTnt(fPlayer, count)) { - dispenser.getInventory().addItem(new ItemStack(Material.TNT, count)); - } else {return;} + int canBeAdded = getAddable(dispenser.getInventory(), Material.TNT); + if (canBeAdded <= 0) continue; + int toAdd = Math.min(canBeAdded, count); + if (toAdd > getTNTInside(fPlayer.getPlayer())) { + fPlayer.msg(TL.COMMAND_TNTFILL_NOTENOUGH.toString()); + return; + } + removeItems(fPlayer.getPlayer().getInventory(), new ItemStack(Material.TNT), toAdd); + dispenser.getInventory().addItem(new ItemStack(Material.TNT, toAdd)); } } - private void removeFromBank(CommandContext context, int amount) { - try { - Integer.parseInt(context.args.get(1)); - } catch (NumberFormatException e) { - context.fPlayer.msg(TL.COMMAND_TNT_INVALID_NUM.toString()); - return; + private void fillDispensers(CommandContext context, List dispensers, int count) { + for (Dispenser dispenser : dispensers) { + int canBeAdded = getAddable(dispenser.getInventory(), Material.TNT); + if (canBeAdded <= 0) continue; + int toAdd = Math.min(canBeAdded, count); + if (context.faction.getTnt() < toAdd) { + context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); + return; + } + context.faction.takeTnt(toAdd); + dispenser.getInventory().addItem(new ItemStack(Material.TNT, toAdd)); } - if (amount < 0) { - context.fPlayer.msg(TL.COMMAND_TNT_POSITIVE.toString()); - return; - } - if (context.faction.getTnt() < amount) { - context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); - return; - } - int fullStacks = amount / 64; - int remainderAmt = amount % 64; - if ((remainderAmt == 0 && getEmptySlots(context.player) <= fullStacks)) { - context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); - return; - } - if (getEmptySlots(context.player) + 1 <= fullStacks) { - context.fPlayer.msg(TL.COMMAND_TNT_WIDTHDRAW_NOTENOUGH_TNT.toString()); - return; - } - ItemStack tnt64 = new ItemStack(Material.TNT, 64); - for (int i = 0; i <= fullStacks - 1; i++) { - context.player.getInventory().addItem(tnt64); - } - if (remainderAmt != 0) { - ItemStack tnt = new ItemStack(Material.TNT, remainderAmt); - context.player.getInventory().addItem(tnt); - } - context.faction.takeTnt(amount); - context.player.updateInventory(); } - private boolean takeTnt(FPlayer fme, int amount) { - Inventory inv = fme.getPlayer().getInventory(); - int invTnt = 0; - for (int i = 0; i <= inv.getSize(); i++) { - if (inv.getItem(i) == null) { + public static void removeItems(Inventory inventory, ItemStack item, int toRemove) { + if (toRemove <= 0 || inventory == null || item == null) + return; + for (int i = 0; i < inventory.getSize(); i++) { + ItemStack loopItem = inventory.getItem(i); + if (loopItem == null || !item.isSimilar(loopItem)) continue; + if (toRemove <= 0) + return; + if (toRemove < loopItem.getAmount()) { + loopItem.setAmount(loopItem.getAmount() - toRemove); + return; } - if (inv.getItem(i).getType() == Material.TNT) { - invTnt += inv.getItem(i).getAmount(); - } + inventory.clear(i); + toRemove -= loopItem.getAmount(); } - if (amount > invTnt) { - fme.msg(TL.COMMAND_TNTFILL_NOTENOUGH.toString()); - return false; - } - ItemStack tnt = new ItemStack(Material.TNT, amount); - if (fme.getFaction().getTnt() + amount > FactionsPlugin.getInstance().getConfig().getInt("ftnt.Bank-Limit")) { - fme.msg(TL.COMMAND_TNT_EXCEEDLIMIT.toString()); - return false; - } - removeFromInventory(fme.getPlayer().getInventory(), tnt); - return true; } // Counts the item type available in the inventory. @@ -197,35 +173,37 @@ public class CmdTntFill extends FCommand { return count; } - private void removeFromInventory(Inventory inventory, ItemStack item) { - int amt = item.getAmount(); - ItemStack[] items = inventory.getContents(); - for (int i = 0; i < items.length; i++) { - if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) { - if (items[i].getAmount() > amt) { - items[i].setAmount(items[i].getAmount() - amt); - break; - } else if (items[i].getAmount() == amt) { - items[i] = null; - break; - } else { - amt -= items[i].getAmount(); - items[i] = null; + public int getAddable(Inventory inv, Material material) { + int output = 0; + int notempty = 0; + for (int i = 0; i < inv.getSize(); ++i) { + ItemStack is = inv.getItem(i); + if (is != null) { + ++notempty; + if (is.getType() == material) { + int amount = is.getAmount(); + output += 64 - amount; } } } - inventory.setContents(items); + return output + (inv.getSize() - notempty) * 64; } - private int getEmptySlots(Player p) { - PlayerInventory inventory = p.getInventory(); - ItemStack[] cont = inventory.getContents(); - int i = 0; - for (ItemStack item : cont) - if (item != null && item.getType() != Material.AIR) { - i++; + public boolean isInvFull(Inventory inv) { + return inv.firstEmpty() == -1; + } + + public int getTNTInside(Player p) { + int result = 0; + PlayerInventory pi = p.getInventory(); + ItemStack[] contents; + for (int length = (contents = pi.getContents()).length, i = 0; i < length; ++i) { + ItemStack is = contents[i]; + if (is != null && is.getType() == Material.TNT) { + result += is.getAmount(); } - return 36 - i; + } + return result; } @Override diff --git a/src/main/java/com/massivecraft/factions/cmd/wild/CmdWild.java b/src/main/java/com/massivecraft/factions/cmd/wild/CmdWild.java index 42b48519..b3d7bf1f 100644 --- a/src/main/java/com/massivecraft/factions/cmd/wild/CmdWild.java +++ b/src/main/java/com/massivecraft/factions/cmd/wild/CmdWild.java @@ -27,22 +27,26 @@ public class CmdWild extends FCommand { public static HashMap waitingTeleport; public static HashMap teleportRange; public static HashSet teleporting; + public CmdWild() { super(); this.aliases.addAll(Aliases.wild); this.requirements = new CommandRequirements.Builder(Permission.WILD) .playerOnly() .build(); - waitingTeleport = new HashMap<>(); + waitingTeleport = new HashMap<>(); teleporting = new HashSet<>(); teleportRange = new HashMap<>(); startWild(); } + @Override public void perform(CommandContext context) { if (!waitingTeleport.containsKey(context.player)) { context.player.openInventory(new WildGUI(context.player, context.fPlayer).getInventory()); - } else {context.fPlayer.msg(TL.COMMAND_WILD_WAIT);} + } else { + context.fPlayer.msg(TL.COMMAND_WILD_WAIT); + } } public void startWild() { @@ -64,6 +68,7 @@ public class CmdWild extends FCommand { } }, 0L, 20L); } + public void attemptTeleport(Player p) { boolean success = false; int tries = 0; @@ -84,26 +89,34 @@ public class CmdWild extends FCommand { } tries++; } - if (!success) {p.sendMessage(TL.COMMAND_WILD_FAILED.toString());} + if (!success) { + p.sendMessage(TL.COMMAND_WILD_FAILED.toString()); + } } + public void teleportPlayer(Player p, FLocation loc) { Location finalLoc; if (FactionsPlugin.getInstance().getConfig().getBoolean("Wild.Arrival.SpawnAbove")) { finalLoc = new Location(p.getWorld(), loc.getX(), p.getWorld().getHighestBlockYAt(Math.round(loc.getX()), Math.round(loc.getZ())) + FactionsPlugin.getInstance().getConfig().getInt("Wild.Arrival.SpawnAboveBlocks", 1), loc.getZ()); - } else {finalLoc = new Location(p.getWorld(), loc.getX(), p.getWorld().getHighestBlockYAt(Math.round(loc.getX()), Math.round(loc.getZ())), loc.getZ());} + } else { + finalLoc = new Location(p.getWorld(), loc.getX(), p.getWorld().getHighestBlockYAt(Math.round(loc.getX()), Math.round(loc.getZ())), loc.getZ()); + } p.teleport(finalLoc, PlayerTeleportEvent.TeleportCause.PLUGIN); setTeleporting(p); applyEffects(p); } + public void applyEffects(Player p) { for (String s : FactionsPlugin.getInstance().getConfig().getStringList("Wild.Arrival.Effects")) { p.addPotionEffect(new PotionEffect(PotionEffectType.getByName(s), 40, 1)); } } + public void setTeleporting(Player p) { teleporting.add(p); Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.instance, () -> teleporting.remove(p), FactionsPlugin.getInstance().getConfig().getInt("Wild.Arrival.FallDamageWindow") * 20); } + @Override public TL getUsageTranslation() { return TL.COMMAND_WILD_DESCRIPTION; diff --git a/src/main/java/com/massivecraft/factions/cmd/wild/WildGUI.java b/src/main/java/com/massivecraft/factions/cmd/wild/WildGUI.java index 890c4838..ff691853 100644 --- a/src/main/java/com/massivecraft/factions/cmd/wild/WildGUI.java +++ b/src/main/java/com/massivecraft/factions/cmd/wild/WildGUI.java @@ -23,11 +23,13 @@ public class WildGUI implements FactionGUI { FPlayer fplayer; HashMap map; Inventory inv; + public WildGUI(Player player, FPlayer fplayer) { this.player = player; this.fplayer = fplayer; map = new HashMap<>(); } + @Override public void onClick(int slot, ClickType action) { if (map.containsKey(slot)) { @@ -46,7 +48,7 @@ public class WildGUI implements FactionGUI { inv = Bukkit.createInventory(this, FactionsPlugin.getInstance().getConfig().getInt("Wild.GUI.Size"), FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("Wild.GUI.Name"))); ItemStack fillItem = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("Wild.GUI.FillMaterial")).parseItem(); ItemMeta meta = fillItem.getItemMeta(); - if(meta == null) return; + if (meta == null) return; meta.setDisplayName(""); fillItem.setItemMeta(meta); for (int fill = 0; fill < FactionsPlugin.getInstance().getConfig().getInt("Wild.GUI.Size"); ++fill) { @@ -55,7 +57,7 @@ public class WildGUI implements FactionGUI { for (String key : Objects.requireNonNull(FactionsPlugin.getInstance().getConfig().getConfigurationSection("Wild.Zones")).getKeys(false)) { ItemStack zoneItem = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("Wild.Zones." + key + ".Material")).parseItem(); ItemMeta zoneMeta = zoneItem.getItemMeta(); - if(zoneMeta == null) return; + if (zoneMeta == null) return; List lore = new ArrayList<>(); for (String s : FactionsPlugin.getInstance().getConfig().getStringList("Wild.Zones." + key + ".Lore")) { lore.add(FactionsPlugin.getInstance().color(s)); @@ -72,7 +74,9 @@ public class WildGUI implements FactionGUI { @NotNull @Override public Inventory getInventory() { - if (inv == null) {build();} + if (inv == null) { + build(); + } return inv; } } diff --git a/src/main/java/com/massivecraft/factions/util/Pair.java b/src/main/java/com/massivecraft/factions/util/Pair.java new file mode 100644 index 00000000..b1ac3088 --- /dev/null +++ b/src/main/java/com/massivecraft/factions/util/Pair.java @@ -0,0 +1,27 @@ +package com.massivecraft.factions.util; + +/** + * Factions - Developed by FactionsUUID Team. + */ +public class Pair { + + public static Pair of(Left left, Right right) { + return new Pair<>(left, right); + } + + private final Left left; + private final Right right; + + private Pair(Left left, Right right) { + this.left = left; + this.right = right; + } + + public Left getLeft() { + return this.left; + } + + public Right getRight() { + return this.right; + } +}