diff --git a/NCPCompatProtocolLib/src/main/java/fr/neatmonster/nocheatplus/net/protocollib/ProtocolLibComponent.java b/NCPCompatProtocolLib/src/main/java/fr/neatmonster/nocheatplus/net/protocollib/ProtocolLibComponent.java index b5416537..ac12102a 100644 --- a/NCPCompatProtocolLib/src/main/java/fr/neatmonster/nocheatplus/net/protocollib/ProtocolLibComponent.java +++ b/NCPCompatProtocolLib/src/main/java/fr/neatmonster/nocheatplus/net/protocollib/ProtocolLibComponent.java @@ -26,66 +26,66 @@ import fr.neatmonster.nocheatplus.utilities.StringUtil; * */ public class ProtocolLibComponent implements DisableListener, INotifyReload{ - - private final List registeredPacketAdapters = new LinkedList(); - - public ProtocolLibComponent(Plugin plugin) { - StaticLog.logInfo("Adding packet level hooks for ProtocolLib (MC " + ProtocolLibrary.getProtocolManager().getMinecraftVersion().getVersion() + ")..."); - register(plugin); - } - private void register(Plugin plugin) { - // Register Classes having a constructor with Plugin as argument. - if (ConfigManager.isTrueForAnyConfig(ConfPaths.NET_FLYINGFREQUENCY_ACTIVE)) { - register(FlyingFrequency.class, plugin); - } - if (ConfigManager.isTrueForAnyConfig(ConfPaths.NET_SOUNDDISTANCE_ACTIVE)) { - register(SoundDistance.class, plugin); - } - if (!registeredPacketAdapters.isEmpty()) { - List names = new ArrayList(registeredPacketAdapters.size()); - for (PacketAdapter adapter : registeredPacketAdapters) { - names.add(adapter.getClass().getSimpleName()); - } - StaticLog.logInfo("[NoCheatPlus] Available (and activated) packet level hooks: " + StringUtil.join(names, " | ")); - } - } - - private void register(Class clazz, Plugin plugin) { - try { - // Construct a new instance using reflection. - PacketAdapter adapter = clazz.getDeclaredConstructor(Plugin.class).newInstance(plugin); - ProtocolLibrary.getProtocolManager().addPacketListener(adapter); - registeredPacketAdapters.add(adapter); - } catch (Throwable t) { - StaticLog.logWarning("[NoCheatPlus] Could not register packet level hook: " + clazz.getSimpleName()); - StaticLog.logWarning(t); - } - } + private final List registeredPacketAdapters = new LinkedList(); - @Override - public void onDisable() { - unregister(); - } + public ProtocolLibComponent(Plugin plugin) { + StaticLog.logInfo("Adding packet level hooks for ProtocolLib (MC " + ProtocolLibrary.getProtocolManager().getMinecraftVersion().getVersion() + ")..."); + register(plugin); + } - @Override - public void onReload() { - unregister(); - register(Bukkit.getPluginManager().getPlugin("NoCheatPlus")); // Store instead ? - } - - private void unregister() { - final ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager(); - final NoCheatPlusAPI api = NCPAPIProvider.getNoCheatPlusAPI(); - for (PacketAdapter adapter : registeredPacketAdapters) { - try { - protocolManager.removePacketListener(adapter); - api.removeComponent(adapter); // Bit heavy, but consistent. - } catch (Throwable t) { - StaticLog.logWarning("[NoCheatPlus] Failed to unregister packet level hook: " + adapter.getClass().getName()); - } - } - registeredPacketAdapters.clear(); - } + private void register(Plugin plugin) { + // Register Classes having a constructor with Plugin as argument. + if (ConfigManager.isTrueForAnyConfig(ConfPaths.NET_FLYINGFREQUENCY_ACTIVE)) { + register(FlyingFrequency.class, plugin); + } + if (ConfigManager.isTrueForAnyConfig(ConfPaths.NET_SOUNDDISTANCE_ACTIVE)) { + register(SoundDistance.class, plugin); + } + if (!registeredPacketAdapters.isEmpty()) { + List names = new ArrayList(registeredPacketAdapters.size()); + for (PacketAdapter adapter : registeredPacketAdapters) { + names.add(adapter.getClass().getSimpleName()); + } + StaticLog.logInfo("[NoCheatPlus] Available (and activated) packet level hooks: " + StringUtil.join(names, " | ")); + } + } + + private void register(Class clazz, Plugin plugin) { + try { + // Construct a new instance using reflection. + PacketAdapter adapter = clazz.getDeclaredConstructor(Plugin.class).newInstance(plugin); + ProtocolLibrary.getProtocolManager().addPacketListener(adapter); + registeredPacketAdapters.add(adapter); + } catch (Throwable t) { + StaticLog.logWarning("[NoCheatPlus] Could not register packet level hook: " + clazz.getSimpleName()); + StaticLog.logWarning(t); + } + } + + @Override + public void onDisable() { + unregister(); + } + + @Override + public void onReload() { + unregister(); + register(Bukkit.getPluginManager().getPlugin("NoCheatPlus")); // Store instead ? + } + + private void unregister() { + final ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager(); + final NoCheatPlusAPI api = NCPAPIProvider.getNoCheatPlusAPI(); + for (PacketAdapter adapter : registeredPacketAdapters) { + try { + protocolManager.removePacketListener(adapter); + api.removeComponent(adapter); // Bit heavy, but consistent. + } catch (Throwable t) { + StaticLog.logWarning("[NoCheatPlus] Failed to unregister packet level hook: " + adapter.getClass().getName()); + } + } + registeredPacketAdapters.clear(); + } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/VersionCommand.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/VersionCommand.java index badf93ca..46abe606 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/VersionCommand.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/VersionCommand.java @@ -20,32 +20,33 @@ import fr.neatmonster.nocheatplus.utilities.StringUtil; public class VersionCommand extends BaseCommand{ - public VersionCommand(JavaPlugin plugin) { - super(plugin, "version", Permissions.COMMAND_VERSION, new String[]{"versions", "ver"}); - } + public VersionCommand(JavaPlugin plugin) { + super(plugin, "version", Permissions.COMMAND_VERSION, new String[]{"versions", "ver"}); + } - @Override - public boolean onCommand(CommandSender sender, Command command, - String label, String[] args) { - final MCAccess mc = NCPAPIProvider.getNoCheatPlusAPI().getMCAccess(); - sender.sendMessage(new String[]{ - "---- Version information ----", - "#### Server ####", - Bukkit.getServer().getVersion(), - "#### NoCheatPlus ####", - "Plugin: " + access.getDescription().getVersion(), - "MCAccess: " + mc.getMCVersion() + " / " + mc.getServerVersionTag(), - }); - final Collection hooks = NCPHookManager.getAllHooks(); - if (!hooks.isEmpty()){ - final List fullNames = new LinkedList(); - for (final NCPHook hook : hooks){ - fullNames.add(hook.getHookName() + " " + hook.getHookVersion()); - } - Collections.sort(fullNames, String.CASE_INSENSITIVE_ORDER); - sender.sendMessage("Hooks: " + StringUtil.join(fullNames, " | ")); - } - return true; - } + @Override + public boolean onCommand(CommandSender sender, Command command, + String label, String[] args) { + final MCAccess mc = NCPAPIProvider.getNoCheatPlusAPI().getMCAccess(); + sender.sendMessage(new String[]{ + "---- Version information ----", + "#### Server ####", + Bukkit.getServer().getVersion(), + "#### NoCheatPlus ####", + "Plugin: " + access.getDescription().getVersion(), + "MCAccess: " + mc.getMCVersion() + " / " + mc.getServerVersionTag(), + }); + + final Collection hooks = NCPHookManager.getAllHooks(); + if (!hooks.isEmpty()){ + final List fullNames = new LinkedList(); + for (final NCPHook hook : hooks){ + fullNames.add(hook.getHookName() + " " + hook.getHookVersion()); + } + Collections.sort(fullNames, String.CASE_INSENSITIVE_ORDER); + sender.sendMessage("Hooks: " + StringUtil.join(fullNames, " | ")); + } + return true; + } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/AlmostBoolean.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/AlmostBoolean.java index 54a58efe..e286f377 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/AlmostBoolean.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/AlmostBoolean.java @@ -6,33 +6,33 @@ package fr.neatmonster.nocheatplus.compat; * */ public enum AlmostBoolean{ - YES, - NO, - MAYBE; - - /** - * "Match" a boolean. - * @param value - * @return - */ - public static final AlmostBoolean match(final boolean value) { - return value ? YES : NO; - } - - /** - * Pessimistic interpretation: true iff YES. - * @return - */ - public boolean decide(){ - return this == YES; - } - - /** - * Optimistic interpretation: true iff not NO. - * @return - */ - public boolean decideOptimistically() { - return this != NO; - } - + YES, + NO, + MAYBE; + + /** + * "Match" a boolean. + * @param value + * @return + */ + public static final AlmostBoolean match(final boolean value) { + return value ? YES : NO; + } + + /** + * Pessimistic interpretation: true iff YES. + * @return + */ + public boolean decide(){ + return this == YES; + } + + /** + * Optimistic interpretation: true iff not NO. + * @return + */ + public boolean decideOptimistically() { + return this != NO; + } + } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/BlockPropertiesSetup.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/BlockPropertiesSetup.java index 9849ba05..aed7d90b 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/BlockPropertiesSetup.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/BlockPropertiesSetup.java @@ -11,9 +11,9 @@ import fr.neatmonster.nocheatplus.config.WorldConfigProvider; * */ public interface BlockPropertiesSetup { - /** - * Additional initialization. - * @param worldConfigProvider Configuration provider if needed. - */ - public void setupBlockProperties(WorldConfigProvider worldConfigProvider); + /** + * Additional initialization. + * @param worldConfigProvider Configuration provider if needed. + */ + public void setupBlockProperties(WorldConfigProvider worldConfigProvider); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_5.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_5.java index 423d95ab..580728e6 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_5.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_5.java @@ -15,79 +15,79 @@ import fr.neatmonster.nocheatplus.utilities.BlockProperties; * */ public class BlocksMC1_5 implements BlockPropertiesSetup { - - public BlocksMC1_5(){ - // Test if materials exist. - BlockInit.assertMaterialNameMatch(152, "redstone", "block"); - } - @Override - public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { - - ///////////////////// - // New blocks - //////////////////// - - // 146 Trapped Chest - BlockInit.setAs(146, Material.CHEST); - - // 147 Weighted Pressure Plate (Light) -// BlockFlags.addFlags(147, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); - BlockInit.setAs(147, Material.STONE_PLATE); + public BlocksMC1_5(){ + // Test if materials exist. + BlockInit.assertMaterialNameMatch(152, "redstone", "block"); + } - // 148 Weighted Pressure Plate (Heavy) -// BlockFlags.addFlags(148, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); - BlockInit.setAs(148, Material.STONE_PLATE); - - // 149 Redstone Comparator (inactive) -// BlockFlags.addFlags(149, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); - BlockInit.setAs(149, Material.DIODE_BLOCK_OFF); - - // 150 Redstone Comparator (active) -// BlockFlags.addFlags(150, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); - BlockInit.setAs(150, Material.DIODE_BLOCK_ON); - - // 151 Daylight Sensor -// BlockFlags.addFlags(151, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); - BlockInit.setAs(151, Material.HUGE_MUSHROOM_1); - - // 152 Block of Redstone - BlockInit.setAs(152, Material.ENCHANTMENT_TABLE); - - // 153 Nether Quartz Ore - BlockInit.setAs(153, Material.COAL_ORE); - - // 154 Hopper - BlockInit.setAs(154, Material.COAL_ORE); - // TODO: Needs workaround. [workaround-flag + different purpose flag sets ?] - BlockFlags.addFlags(154, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND_HEIGHT); - - // 155 Block of Quartz - BlockInit.setAs(155, Material.SANDSTONE); - - // 156 Quartz Stairs - BlockInit.setAs(156, Material.SANDSTONE_STAIRS); - - // 157 Activator Rail - BlockInit.setAs(157, Material.DETECTOR_RAIL); - - // 158 Dropper -// BlockFlags.setFlagsAs(158, Material.DISPENSER); - BlockInit.setAs(158, Material.DISPENSER); - - - ///////////////////// - // Changed blocks - //////////////////// - - // 78 Snow - BlockFlags.addFlags(78, BlockProperties.F_HEIGHT_8_INC); - BlockFlags.removeFlags(78, BlockProperties.F_HEIGHT_8SIM_INC); - - // 95 Locked chest - BlockProperties.setBlockProps(95, BlockProperties.instantType); - - StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.5 blocks."); - } + @Override + public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { + + ///////////////////// + // New blocks + //////////////////// + + // 146 Trapped Chest + BlockInit.setAs(146, Material.CHEST); + + // 147 Weighted Pressure Plate (Light) + // BlockFlags.addFlags(147, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); + BlockInit.setAs(147, Material.STONE_PLATE); + + // 148 Weighted Pressure Plate (Heavy) + // BlockFlags.addFlags(148, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); + BlockInit.setAs(148, Material.STONE_PLATE); + + // 149 Redstone Comparator (inactive) + // BlockFlags.addFlags(149, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); + BlockInit.setAs(149, Material.DIODE_BLOCK_OFF); + + // 150 Redstone Comparator (active) + // BlockFlags.addFlags(150, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); + BlockInit.setAs(150, Material.DIODE_BLOCK_ON); + + // 151 Daylight Sensor + // BlockFlags.addFlags(151, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); + BlockInit.setAs(151, Material.HUGE_MUSHROOM_1); + + // 152 Block of Redstone + BlockInit.setAs(152, Material.ENCHANTMENT_TABLE); + + // 153 Nether Quartz Ore + BlockInit.setAs(153, Material.COAL_ORE); + + // 154 Hopper + BlockInit.setAs(154, Material.COAL_ORE); + // TODO: Needs workaround. [workaround-flag + different purpose flag sets ?] + BlockFlags.addFlags(154, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND_HEIGHT); + + // 155 Block of Quartz + BlockInit.setAs(155, Material.SANDSTONE); + + // 156 Quartz Stairs + BlockInit.setAs(156, Material.SANDSTONE_STAIRS); + + // 157 Activator Rail + BlockInit.setAs(157, Material.DETECTOR_RAIL); + + // 158 Dropper + // BlockFlags.setFlagsAs(158, Material.DISPENSER); + BlockInit.setAs(158, Material.DISPENSER); + + + ///////////////////// + // Changed blocks + //////////////////// + + // 78 Snow + BlockFlags.addFlags(78, BlockProperties.F_HEIGHT_8_INC); + BlockFlags.removeFlags(78, BlockProperties.F_HEIGHT_8SIM_INC); + + // 95 Locked chest + BlockProperties.setBlockProps(95, BlockProperties.instantType); + + StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.5 blocks."); + } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_6_1.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_6_1.java index 203a5c54..c5ee35be 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_6_1.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_6_1.java @@ -12,33 +12,33 @@ import fr.neatmonster.nocheatplus.utilities.BlockProperties.BlockProps; @SuppressWarnings("deprecation") public class BlocksMC1_6_1 implements BlockPropertiesSetup{ - - public BlocksMC1_6_1(){ - BlockInit.assertMaterialNameMatch(173, "coal", "block"); - } - @Override - public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { - - // Block of Coal: like block of redstone. - BlockInit.setAs(173, 152); - - // Hardened Clay - BlockProperties.setBlockProps(172, new BlockProps(BlockProperties.woodPickaxe, 1.25f, BlockProperties.secToMs(6.25, 0.95, 0.5, 0.35, 0.25, 0.2))); - BlockFlags.setFlagsAs(172, Material.STONE); // TODO: Assumption (!). - - // Stained Clay: Set as hardened clay. - BlockInit.setAs(159, 172); - - // Hay Bale - BlockInit.setPropsAs(170, Material.STONE_BUTTON); - BlockFlags.setFlagsAs(170, Material.STONE); // TODO: Assumption (!). - - // Carpet - BlockProperties.setBlockProps(171, new BlockProps(BlockProperties.noTool, 0.1f, BlockProperties.secToMs(0.15))); - BlockProperties.setBlockFlags(171, BlockProperties.F_GROUND|BlockProperties.F_IGN_PASSABLE|BlockProperties.F_GROUND_HEIGHT); - - StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.6.1 blocks."); - } - + public BlocksMC1_6_1(){ + BlockInit.assertMaterialNameMatch(173, "coal", "block"); + } + + @Override + public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { + + // Block of Coal: like block of redstone. + BlockInit.setAs(173, 152); + + // Hardened Clay + BlockProperties.setBlockProps(172, new BlockProps(BlockProperties.woodPickaxe, 1.25f, BlockProperties.secToMs(6.25, 0.95, 0.5, 0.35, 0.25, 0.2))); + BlockFlags.setFlagsAs(172, Material.STONE); // TODO: Assumption (!). + + // Stained Clay: Set as hardened clay. + BlockInit.setAs(159, 172); + + // Hay Bale + BlockInit.setPropsAs(170, Material.STONE_BUTTON); + BlockFlags.setFlagsAs(170, Material.STONE); // TODO: Assumption (!). + + // Carpet + BlockProperties.setBlockProps(171, new BlockProps(BlockProperties.noTool, 0.1f, BlockProperties.secToMs(0.15))); + BlockProperties.setBlockFlags(171, BlockProperties.F_GROUND|BlockProperties.F_IGN_PASSABLE|BlockProperties.F_GROUND_HEIGHT); + + StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.6.1 blocks."); + } + } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_7_2.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_7_2.java index 70c167be..40566aaa 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_7_2.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_7_2.java @@ -9,32 +9,32 @@ import fr.neatmonster.nocheatplus.logging.StaticLog; public class BlocksMC1_7_2 implements BlockPropertiesSetup{ - - public BlocksMC1_7_2() { - BlockInit.assertMaterialNameMatch(95, "stained", "glass"); - BlockInit.assertMaterialNameMatch(174, "packed", "ice"); - } - @Override - public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { - // Stained glass - BlockInit.setAs(95, Material.GLASS); - // Stained glass pane - BlockInit.setAs(160, 102); - // Leaves 2 - BlockInit.setAs(161, Material.LEAVES); - // Log 2 - BlockInit.setAs(162, Material.LOG); - // Acacia wood stairs - BlockInit.setAs(163, Material.WOOD_STAIRS); - // Oak wood stairs - BlockInit.setAs(164, Material.WOOD_STAIRS); - // Packed ice - BlockInit.setAs(174, Material.ICE); - // Large flowers - BlockInit.setAs(175, Material.YELLOW_FLOWER); - - StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.7.2 blocks."); - } + public BlocksMC1_7_2() { + BlockInit.assertMaterialNameMatch(95, "stained", "glass"); + BlockInit.assertMaterialNameMatch(174, "packed", "ice"); + } + + @Override + public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { + // Stained glass + BlockInit.setAs(95, Material.GLASS); + // Stained glass pane + BlockInit.setAs(160, 102); + // Leaves 2 + BlockInit.setAs(161, Material.LEAVES); + // Log 2 + BlockInit.setAs(162, Material.LOG); + // Acacia wood stairs + BlockInit.setAs(163, Material.WOOD_STAIRS); + // Oak wood stairs + BlockInit.setAs(164, Material.WOOD_STAIRS); + // Packed ice + BlockInit.setAs(174, Material.ICE); + // Large flowers + BlockInit.setAs(175, Material.YELLOW_FLOWER); + + StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.7.2 blocks."); + } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_8.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_8.java index 20edf710..f421d9f1 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_8.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_8.java @@ -13,115 +13,115 @@ import fr.neatmonster.nocheatplus.utilities.BlockProperties.BlockProps; @SuppressWarnings("deprecation") public class BlocksMC1_8 implements BlockPropertiesSetup { - public BlocksMC1_8() { - BlockInit.assertMaterialNameMatch(166, "barrier"); - BlockInit.assertMaterialNameMatch(165, "slime"); - BlockInit.assertMaterialNameMatch(187, "fence", "gate"); - BlockInit.assertMaterialNameMatch(176, "banner"); - BlockInit.assertMaterialNameMatch(169, "sea", "lantern"); - } + public BlocksMC1_8() { + BlockInit.assertMaterialNameMatch(166, "barrier"); + BlockInit.assertMaterialNameMatch(165, "slime"); + BlockInit.assertMaterialNameMatch(187, "fence", "gate"); + BlockInit.assertMaterialNameMatch(176, "banner"); + BlockInit.assertMaterialNameMatch(169, "sea", "lantern"); + } - @Override - public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { + @Override + public void setupBlockProperties(WorldConfigProvider worldConfigProvider) { - // Melon/pumpkin block breaking times. - BlockProps props = new BlockProps(BlockProperties.woodAxe, 1f, BlockProperties.secToMs(1.45, 0.70, 0.325, 0.2, 0.13, 0.075), 3f); - for (Material mat : new Material[] { - Material.MELON_BLOCK, - Material.PUMPKIN, - Material.JACK_O_LANTERN, - // Same core breaking times, but behave different on efficiency + other tool (?): - Material.WALL_SIGN, - Material.SIGN_POST, - }) { - BlockProperties.setBlockProps(BlockProperties.getId(mat), props); - } + // Melon/pumpkin block breaking times. + BlockProps props = new BlockProps(BlockProperties.woodAxe, 1f, BlockProperties.secToMs(1.45, 0.70, 0.325, 0.2, 0.13, 0.075), 3f); + for (Material mat : new Material[] { + Material.MELON_BLOCK, + Material.PUMPKIN, + Material.JACK_O_LANTERN, + // Same core breaking times, but behave different on efficiency + other tool (?): + Material.WALL_SIGN, + Material.SIGN_POST, + }) { + BlockProperties.setBlockProps(BlockProperties.getId(mat), props); + } - // 165(SLIME_BLOCK - BlockInit.setAs(165, Material.TNT); // Full block, instant break. - // Add the bouncing flag. - BlockProperties.setBlockFlags(165, BlockProperties.getBlockFlags(165) | BlockProperties.F_BOUNCE25); + // 165(SLIME_BLOCK + BlockInit.setAs(165, Material.TNT); // Full block, instant break. + // Add the bouncing flag. + BlockProperties.setBlockFlags(165, BlockProperties.getBlockFlags(165) | BlockProperties.F_BOUNCE25); - // 166(BARRIER - BlockInit.setAs(166, Material.BEDROCK); // Full block, unbreakable. + // 166(BARRIER + BlockInit.setAs(166, Material.BEDROCK); // Full block, unbreakable. - // 167(IRON_TRAP_DOOR - BlockFlags.setFlagsAs(167, Material.TRAP_DOOR); - BlockInit.setPropsAs(167, Material.IRON_DOOR_BLOCK); + // 167(IRON_TRAP_DOOR + BlockFlags.setFlagsAs(167, Material.TRAP_DOOR); + BlockInit.setPropsAs(167, Material.IRON_DOOR_BLOCK); - // 168(PRISMARINE - BlockInit.setAs(168, Material.STONE); + // 168(PRISMARINE + BlockInit.setAs(168, Material.STONE); - // 169(SEA_LANTERN - BlockInit.setAs(169, Material.REDSTONE_LAMP_OFF); + // 169(SEA_LANTERN + BlockInit.setAs(169, Material.REDSTONE_LAMP_OFF); - // 176(STANDING_BANNER - BlockInit.setInstantAir(176); + // 176(STANDING_BANNER + BlockInit.setInstantAir(176); - // 177(WALL_BANNER - BlockInit.setInstantAir(177); + // 177(WALL_BANNER + BlockInit.setInstantAir(177); - // 178(DAYLIGHT_DETECTOR_INVERTED - BlockInit.setAs(178, Material.DAYLIGHT_DETECTOR); + // 178(DAYLIGHT_DETECTOR_INVERTED + BlockInit.setAs(178, Material.DAYLIGHT_DETECTOR); - // 179(RED_SANDSTONE - BlockInit.setAs(179, Material.SANDSTONE); + // 179(RED_SANDSTONE + BlockInit.setAs(179, Material.SANDSTONE); - // 180(RED_SANDSTONE_STAIRS - BlockInit.setAs(180, Material.SANDSTONE_STAIRS); + // 180(RED_SANDSTONE_STAIRS + BlockInit.setAs(180, Material.SANDSTONE_STAIRS); - // 181(DOUBLE_STEP_2 - BlockInit.setAs(181, Material.DOUBLE_STEP); // TODO: red sandstone / prismarine ? + // 181(DOUBLE_STEP_2 + BlockInit.setAs(181, Material.DOUBLE_STEP); // TODO: red sandstone / prismarine ? - // 182(STEP_2 - BlockInit.setAs(182, Material.STEP); // TODO: red sandstone / prismarine ? + // 182(STEP_2 + BlockInit.setAs(182, Material.STEP); // TODO: red sandstone / prismarine ? - // 183(SPRUCE_FENCE_GATE - BlockInit.setAs(183, Material.FENCE_GATE); + // 183(SPRUCE_FENCE_GATE + BlockInit.setAs(183, Material.FENCE_GATE); - // 184(BIRCH_FENCE_GATE - BlockInit.setAs(184, Material.FENCE_GATE); + // 184(BIRCH_FENCE_GATE + BlockInit.setAs(184, Material.FENCE_GATE); - // 185(JUNGLE_FENCE_GATE - BlockInit.setAs(185, Material.FENCE_GATE); + // 185(JUNGLE_FENCE_GATE + BlockInit.setAs(185, Material.FENCE_GATE); - // 186(DARK_OAK_FENCE_GATE - BlockInit.setAs(186, Material.FENCE_GATE); + // 186(DARK_OAK_FENCE_GATE + BlockInit.setAs(186, Material.FENCE_GATE); - // 187(ACACIA_FENCE_GATE - BlockInit.setAs(187, Material.FENCE_GATE); + // 187(ACACIA_FENCE_GATE + BlockInit.setAs(187, Material.FENCE_GATE); - // 188(SPRUCE_FENCE - BlockInit.setAs(188, Material.FENCE); + // 188(SPRUCE_FENCE + BlockInit.setAs(188, Material.FENCE); - // 189(BIRCH_FENCE - BlockInit.setAs(189, Material.FENCE); + // 189(BIRCH_FENCE + BlockInit.setAs(189, Material.FENCE); - // 190(JUNGLE_FENCE - BlockInit.setAs(190, Material.FENCE); + // 190(JUNGLE_FENCE + BlockInit.setAs(190, Material.FENCE); - // 191(DARK_OAK_FENCE - BlockInit.setAs(191, Material.FENCE); + // 191(DARK_OAK_FENCE + BlockInit.setAs(191, Material.FENCE); - // 192(ACACIA_FENCE - BlockInit.setAs(192, Material.FENCE); + // 192(ACACIA_FENCE + BlockInit.setAs(192, Material.FENCE); - // 193(SPRUCE_DOOR - BlockInit.setAs(193, Material.WOODEN_DOOR); + // 193(SPRUCE_DOOR + BlockInit.setAs(193, Material.WOODEN_DOOR); - // 194(BIRCH_DOOR - BlockInit.setAs(194, Material.WOODEN_DOOR); + // 194(BIRCH_DOOR + BlockInit.setAs(194, Material.WOODEN_DOOR); - // 195(JUNGLE_DOOR - BlockInit.setAs(195, Material.WOODEN_DOOR); + // 195(JUNGLE_DOOR + BlockInit.setAs(195, Material.WOODEN_DOOR); - // 196(ACACIA_DOOR - BlockInit.setAs(196, Material.WOODEN_DOOR); + // 196(ACACIA_DOOR + BlockInit.setAs(196, Material.WOODEN_DOOR); - // 197(DARK_OAK_DOOR - BlockInit.setAs(197, Material.WOODEN_DOOR); + // 197(DARK_OAK_DOOR + BlockInit.setAs(197, Material.WOODEN_DOOR); - StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.8 blocks."); - } + StaticLog.logInfo("[NoCheatPlus] Added block-info for Minecraft 1.8 blocks."); + } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/VanillaBlocksFactory.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/VanillaBlocksFactory.java index 2e222e7b..53cc92c6 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/VanillaBlocksFactory.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/VanillaBlocksFactory.java @@ -9,29 +9,29 @@ import fr.neatmonster.nocheatplus.logging.StaticLog; public class VanillaBlocksFactory implements BlockPropertiesSetup{ - @Override - public void setupBlockProperties(final WorldConfigProvider worldConfigProvider) { - // Standard setups (abort with first failure, low to high MC version). - final List setups = new LinkedList(); - try{ - setups.add(new BlocksMC1_5()); - setups.add(new BlocksMC1_6_1()); - setups.add(new BlocksMC1_7_2()); - setups.add(new BlocksMC1_8()); - } - catch(Throwable t){} - for (final BlockPropertiesSetup setup : setups){ - try{ - // Assume the blocks setup to message success. - setup.setupBlockProperties(worldConfigProvider); - } - catch(Throwable t){ - StaticLog.logSevere("[NoCheatPlus] " + setup.getClass().getSimpleName() + ".setupBlockProperties could not execute properly: " + t.getClass().getSimpleName() + " - " + t.getMessage()); - StaticLog.logSevere(t); - // Abort further processing. - break; - } - } - } - + @Override + public void setupBlockProperties(final WorldConfigProvider worldConfigProvider) { + // Standard setups (abort with first failure, low to high MC version). + final List setups = new LinkedList(); + try{ + setups.add(new BlocksMC1_5()); + setups.add(new BlocksMC1_6_1()); + setups.add(new BlocksMC1_7_2()); + setups.add(new BlocksMC1_8()); + } + catch(Throwable t){} + for (final BlockPropertiesSetup setup : setups){ + try{ + // Assume the blocks setup to message success. + setup.setupBlockProperties(worldConfigProvider); + } + catch(Throwable t){ + StaticLog.logSevere("[NoCheatPlus] " + setup.getClass().getSimpleName() + ".setupBlockProperties could not execute properly: " + t.getClass().getSimpleName() + " - " + t.getMessage()); + StaticLog.logSevere(t); + // Abort further processing. + break; + } + } + } + } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/components/NoCheatPlusAPI.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/components/NoCheatPlusAPI.java index 2f0bce83..02e5b7bf 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/components/NoCheatPlusAPI.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/components/NoCheatPlusAPI.java @@ -19,77 +19,77 @@ import fr.neatmonster.nocheatplus.logging.LogManager; * */ public interface NoCheatPlusAPI extends ComponentRegistry, ComponentRegistryProvider, GenericInstanceRegistry, MCAccessHolder { - - /** - * By default addComponent(Object) will register ComponentFactories as well. - * @param obj - * @param allowComponentRegistry If to allow registering ComponentFactories. - * @return - */ - public boolean addComponent(Object obj, boolean allowComponentRegistry); - - /** - * Send all players with the nocheatplus.admin.notify permission a message.
- * This will act according to configuration (stored permissions and/or permission subscriptions). - * - * @param message - * @return Number of players messaged. - */ - public int sendAdminNotifyMessage(final String message); - - /** - * Thread-safe method to send a message to a player in a scheduled task. The scheduling preserves order of messages. - * @param playerName - * @param message - */ - public void sendMessageOnTick(final String playerName, final String message); - - /** + /** + * By default addComponent(Object) will register ComponentFactories as well. + * @param obj + * @param allowComponentRegistry If to allow registering ComponentFactories. + * @return + */ + public boolean addComponent(Object obj, boolean allowComponentRegistry); + + /** + * Send all players with the nocheatplus.admin.notify permission a message.
+ * This will act according to configuration (stored permissions and/or permission subscriptions). + * + * @param message + * @return Number of players messaged. + */ + public int sendAdminNotifyMessage(final String message); + + /** + * Thread-safe method to send a message to a player in a scheduled task. The scheduling preserves order of messages. + * @param playerName + * @param message + */ + public void sendMessageOnTick(final String playerName, final String message); + + + /** * Allow login (remove from deny login map). * @param playerName * @return If player was denied to login. */ public boolean allowLogin(String playerName); - + /** * Remove all players from the allow login set. * @return Number of players that had actually been denied to login. */ public int allowLoginAll(); - - /** - * Deny the player to login. This will also remove expired entries. - * @param playerName - * @param duration Duration from now on, in milliseconds. - */ - public void denyLogin(String playerName, long duration); - - /** - * Check if player is denied to login right now. - * @param playerName - * @return - */ - public boolean isLoginDenied(String playerName); - - /** - * Get the names of all players who are denied to log in at present. - * @return - */ - public String[] getLoginDeniedPlayers(); - /** - * Check if a player is denied to login at a certain point of time. - * @param playerName - * @param currentTimeMillis - * @return - */ - public boolean isLoginDenied(String playerName, long time); - - /** - * Get the central access point for logging (LogManager), - * @return - */ - public LogManager getLogManager(); - + /** + * Deny the player to login. This will also remove expired entries. + * @param playerName + * @param duration Duration from now on, in milliseconds. + */ + public void denyLogin(String playerName, long duration); + + /** + * Check if player is denied to login right now. + * @param playerName + * @return + */ + public boolean isLoginDenied(String playerName); + + /** + * Get the names of all players who are denied to log in at present. + * @return + */ + public String[] getLoginDeniedPlayers(); + + /** + * Check if a player is denied to login at a certain point of time. + * @param playerName + * @param currentTimeMillis + * @return + */ + public boolean isLoginDenied(String playerName, long time); + + /** + * Get the central access point for logging (LogManager), + * @return + */ + public LogManager getLogManager(); + }