From 9ffa46b66feb0a246f0ef2c0e491836e75b99851 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Sat, 3 Jun 2017 13:53:28 +0200 Subject: [PATCH] Revise help pages slightly, prevent future NPE in onDisable() --- .../blockplacemods/BlockPlaceMods.java | 5 +- .../blockplacemods/mods/ModInventory.java | 13 +++-- .../mods/ModToggledAbstract.java | 48 ++++++++----------- .../mods/ModToggledCauldron.java | 2 +- 4 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/com/redstoner/modules/blockplacemods/BlockPlaceMods.java b/src/com/redstoner/modules/blockplacemods/BlockPlaceMods.java index b38e8b4..60c95a4 100644 --- a/src/com/redstoner/modules/blockplacemods/BlockPlaceMods.java +++ b/src/com/redstoner/modules/blockplacemods/BlockPlaceMods.java @@ -19,7 +19,7 @@ import org.bukkit.event.Listener; import java.util.*; @AutoRegisterListener -@Version(major = 3, minor = 2, revision = 8, compatible = 3) +@Version(major = 3, minor = 2, revision = 9, compatible = 3) public final class BlockPlaceMods implements Module, Listener { public static String PREFIX = ChatColor.GRAY + "[" + ChatColor.DARK_GREEN + "BPM" + ChatColor.GRAY + "]" @@ -62,7 +62,8 @@ public final class BlockPlaceMods implements Module, Listener Map commandMap = CommandMap.getCommandMap(); for (String alias : getCommandAliases()) { - if (commandMap.get(alias).getClass() == BlockPlaceModsCommand.class) + org.bukkit.command.Command command = commandMap.get(alias); + if (command != null && command.getClass() == BlockPlaceModsCommand.class) { commandMap.remove(alias); } diff --git a/src/com/redstoner/modules/blockplacemods/mods/ModInventory.java b/src/com/redstoner/modules/blockplacemods/mods/ModInventory.java index 5c5a539..f3fc783 100644 --- a/src/com/redstoner/modules/blockplacemods/mods/ModInventory.java +++ b/src/com/redstoner/modules/blockplacemods/mods/ModInventory.java @@ -1,7 +1,8 @@ package com.redstoner.modules.blockplacemods.mods; -import java.util.Arrays; - +import com.redstoner.modules.datamanager.DataManager; +import com.redstoner.utils.CommandException; +import com.redstoner.utils.ItemProperties; import org.bukkit.Material; import org.bukkit.block.BlockState; import org.bukkit.entity.Player; @@ -15,9 +16,7 @@ import org.bukkit.inventory.ItemStack; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import com.redstoner.modules.datamanager.DataManager; -import com.redstoner.utils.CommandException; -import com.redstoner.utils.ItemProperties; +import java.util.Arrays; public class ModInventory extends ModAbstract { @@ -98,8 +97,8 @@ public class ModInventory extends ModAbstract } } StringBuilder message = new StringBuilder(); - message.append("&a### &3Container&a Help ###\n"); - message.append("&8").append(getDescription()).append('\n'); + message.append(" &a### &3Container Mod&a Help ###\n"); + message.append("&7").append(getDescription()).append('\n'); message.append("&6/mod ").append(getName().toLowerCase()) .append("&o &bsets the item in slot to your hand\n"); message.append("&6/mod ").append(getName().toLowerCase()).append("&o clear &bclears the data\n"); diff --git a/src/com/redstoner/modules/blockplacemods/mods/ModToggledAbstract.java b/src/com/redstoner/modules/blockplacemods/mods/ModToggledAbstract.java index ba3d37e..b9b2a7c 100644 --- a/src/com/redstoner/modules/blockplacemods/mods/ModToggledAbstract.java +++ b/src/com/redstoner/modules/blockplacemods/mods/ModToggledAbstract.java @@ -1,9 +1,8 @@ package com.redstoner.modules.blockplacemods.mods; -import org.bukkit.entity.Player; - import com.redstoner.modules.datamanager.DataManager; import com.redstoner.utils.CommandException; +import org.bukkit.entity.Player; public abstract class ModToggledAbstract extends ModAbstract { @@ -48,36 +47,29 @@ public abstract class ModToggledAbstract extends ModAbstract if (args[0].equalsIgnoreCase("help")) { StringBuilder message = new StringBuilder(); - message.append("&a### &3").append(getName()).append("&a Help ###"); - message.append("\n&8If enabled, ").append(getDescription()); - message.append("\n&6/mod ").append(getName().toLowerCase()).append("&o toggle &btoggles state"); - message.append("\n&6/mod ").append(getName().toLowerCase()).append("&o on/off &bsets state"); - message.append("\n&6/mod ").append(getName().toLowerCase()).append("&o help &bshows this help page"); + message.append(" &a### &3Toggled Mod&a Help ###"); + message.append("\n&7").append(getDescription()); + message.append("\n&6/mod ").append(getName()).append("&o (toggle) &btoggles state"); + message.append("\n&6/mod ").append(getName()).append("&o on/off &bsets state"); + message.append("\n&6/mod ").append(getName()).append("&o help &bshows this help page"); return message.toString(); } final boolean enable; - if (args[0] == null) + switch (args[0].toLowerCase()) { - throw new CommandException("Missing argument"); - } - else - { - switch (args[0].toLowerCase()) - { - case "on": - case "enable": - case "true": - enable = true; - break; - case "off": - case "disable": - case "false": - enable = false; - break; - default: - throw new CommandException("Input '" + args[0] + "' was not understood. " - + "Use one of: \non, enable, true, off, disable, false."); - } + case "on": + case "enable": + case "true": + enable = true; + break; + case "off": + case "disable": + case "false": + enable = false; + break; + default: + throw new CommandException("Input '" + args[0] + "' was not understood. " + + "Use one of: \non, enable, true, off, disable, false."); } if (!setEnabled(sender, enable)) { diff --git a/src/com/redstoner/modules/blockplacemods/mods/ModToggledCauldron.java b/src/com/redstoner/modules/blockplacemods/mods/ModToggledCauldron.java index 2a678b2..61e34c6 100644 --- a/src/com/redstoner/modules/blockplacemods/mods/ModToggledCauldron.java +++ b/src/com/redstoner/modules/blockplacemods/mods/ModToggledCauldron.java @@ -18,7 +18,7 @@ public class ModToggledCauldron extends ModToggledAbstract @Override public String getDescription() { - return "If active, placed cauldrons are filled, and they cycle on right click"; + return "If active, placed cauldrons are filled, and they cycle on shiftless right click with redstone or fist"; } @SuppressWarnings("deprecation")