From cbe24769905ef9860eb70c90de0aed3e0d6d0538 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Wed, 17 Oct 2018 12:19:16 +0900 Subject: [PATCH] Fixes, added commands, version to 1.2 Fixed /tbm-enable and /tbm-disable not working in singleplayer. Added /tbm-enable-all and /tbm-disable-all to enable/disable for all players. --- build.gradle | 2 +- .../common/CommandTBMDisable.java | 3 +- .../common/CommandTBMDisableAll.java | 66 +++++++++++++++++++ .../common/CommandTBMEnable.java | 3 +- .../common/CommandTBMEnableAll.java | 62 +++++++++++++++++ .../TurnBasedMinecraft/common/Config.java | 11 ++++ .../common/PlayerJoinEventHandler.java | 21 ++++++ .../common/TurnBasedMinecraftMod.java | 5 +- 8 files changed, 169 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisableAll.java create mode 100644 src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnableAll.java create mode 100644 src/main/java/com/seodisparate/TurnBasedMinecraft/common/PlayerJoinEventHandler.java diff --git a/build.gradle b/build.gradle index 37b7acc..05c110e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "1.1" +version = "1.2" group = "com.seodisparate.TurnBasedMinecraft" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "TurnBasedMinecraft" diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisable.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisable.java index 710498e..ac15f1e 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisable.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisable.java @@ -35,10 +35,11 @@ public class CommandTBMDisable extends CommandBase { EntityPlayerMP player = null; player = getCommandSenderAsPlayer(sender); - if(!config.getIfOnlyOPsCanDisableTurnBasedForSelf() || player.getServer().getPlayerList().getOppedPlayers().getEntry(player.getGameProfile()) != null) + if(!config.getIfOnlyOPsCanDisableTurnBasedForSelf() || player.getServer().isSinglePlayer() || player.getServer().getPlayerList().getOppedPlayers().getEntry(player.getGameProfile()) != null) { config.addBattleIgnoringPlayer(player.getEntityId()); TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Disabled turn-based-combat for current player"), player); + TurnBasedMinecraftMod.logger.info("Disabled turn-based-combat for " + player.getName()); } else { diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisableAll.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisableAll.java new file mode 100644 index 0000000..22b87e3 --- /dev/null +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisableAll.java @@ -0,0 +1,66 @@ +package com.seodisparate.TurnBasedMinecraft.common; + +import com.seodisparate.TurnBasedMinecraft.common.networking.PacketGeneralMessage; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.server.MinecraftServer; + +public class CommandTBMDisableAll extends CommandBase +{ + public static final String usage = "/tbm-disable-all (Disables turn-based-battle for everyone"; + private Config config; + + public CommandTBMDisableAll(Config config) + { + this.config = config; + } + + @Override + public String getName() + { + return "tbm-disable-all"; + } + + @Override + public String getUsage(ICommandSender sender) + { + return usage; + } + + @Override + public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException + { + config.setBattleDisabledForAll(true); + for(Entity player : server.getPlayerList().getPlayers()) + { + config.addBattleIgnoringPlayer(player.getEntityId()); + } + EntityPlayerMP senderPlayer = null; + try { + senderPlayer = getCommandSenderAsPlayer(sender); + } catch(Throwable t) + { + // Ignore case when sender EntityPlayer cannot be found + } + if(senderPlayer != null) + { + TurnBasedMinecraftMod.logger.info(senderPlayer.getName() + " disabled turn-based-combat for everyone"); + TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("You disabled turn-based-combat for everyone"), senderPlayer); + } + else + { + TurnBasedMinecraftMod.logger.info("An admin disabled turn-based-combat for everyone"); + } + } + + @Override + public int getRequiredPermissionLevel() + { + return 2; + } + +} diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnable.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnable.java index 3316a57..bf47413 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnable.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnable.java @@ -35,10 +35,11 @@ public class CommandTBMEnable extends CommandBase { EntityPlayerMP player = null; player = getCommandSenderAsPlayer(sender); - if(!config.getIfOnlyOPsCanDisableTurnBasedForSelf() || player.getServer().getPlayerList().getOppedPlayers().getEntry(player.getGameProfile()) != null) + if(!config.getIfOnlyOPsCanDisableTurnBasedForSelf() || player.getServer().isSinglePlayer() || player.getServer().getPlayerList().getOppedPlayers().getEntry(player.getGameProfile()) != null) { config.removeBattleIgnoringPlayer(player.getEntityId()); TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Enabled turn-based-combat for current player"), player); + TurnBasedMinecraftMod.logger.info("Enabled turn-based-combat for " + player.getName()); } else { diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnableAll.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnableAll.java new file mode 100644 index 0000000..aa2960c --- /dev/null +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnableAll.java @@ -0,0 +1,62 @@ +package com.seodisparate.TurnBasedMinecraft.common; + +import com.seodisparate.TurnBasedMinecraft.common.networking.PacketGeneralMessage; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.server.MinecraftServer; + +public class CommandTBMEnableAll extends CommandBase +{ + public static final String usage = "/tbm-enable-all (enables turn-based-combat for everyone)"; + private Config config; + + public CommandTBMEnableAll(Config config) + { + this.config = config; + } + + @Override + public String getName() + { + return "tbm-enable-all"; + } + + @Override + public String getUsage(ICommandSender sender) + { + return usage; + } + + @Override + public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException + { + config.setBattleDisabledForAll(false); + config.clearBattleIgnoringPlayers(); + EntityPlayerMP senderPlayer = null; + try { + senderPlayer = getCommandSenderAsPlayer(sender); + } catch(Throwable t) + { + // Ignore case when sender EntityPlayer cannot be found + } + if(senderPlayer != null) + { + TurnBasedMinecraftMod.logger.info(senderPlayer.getName() + " enabled turn-based-combat for everyone"); + TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("You enabled turn-based-combat for everyone"), senderPlayer); + } + else + { + TurnBasedMinecraftMod.logger.info("An admin enabled turn-based-combat for everyone"); + } + } + + @Override + public int getRequiredPermissionLevel() + { + return 2; + } +} diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Config.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Config.java index 313a169..1ca518f 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Config.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/Config.java @@ -47,6 +47,7 @@ public class Config private int configVersion = 0; private Set battleIgnoringPlayers = null; private boolean onlyOPsSelfDisableTB = true; + private boolean battleDisabledForAll = false; public Config(Logger logger) { @@ -606,4 +607,14 @@ public class Config { return onlyOPsSelfDisableTB; } + + protected void setBattleDisabledForAll(boolean isDisabled) + { + battleDisabledForAll = isDisabled; + } + + protected boolean getBattleDisabledForAll() + { + return battleDisabledForAll; + } } diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/PlayerJoinEventHandler.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/PlayerJoinEventHandler.java new file mode 100644 index 0000000..ba3f35c --- /dev/null +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/PlayerJoinEventHandler.java @@ -0,0 +1,21 @@ +package com.seodisparate.TurnBasedMinecraft.common; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +public class PlayerJoinEventHandler +{ + @SubscribeEvent + public void entityJoinHandler(EntityJoinWorldEvent event) + { + if(event.getEntity().world.isRemote) + { + return; + } + if(event.getEntity() instanceof EntityPlayer && TurnBasedMinecraftMod.proxy.getConfig().getBattleDisabledForAll()) + { + TurnBasedMinecraftMod.proxy.getConfig().addBattleIgnoringPlayer(event.getEntity().getEntityId()); + } + } +} diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java index ed994e7..5d247a8 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java @@ -26,7 +26,7 @@ public class TurnBasedMinecraftMod { public static final String MODID = "com.seodisparate.turnbasedminecraft"; public static final String NAME = "Turn Based Minecraft Mod"; - public static final String VERSION = "1.1"; + public static final String VERSION = "1.2"; public static final String CONFIG_FILENAME = "TBM_Config.xml"; public static final String CONFIG_DIRECTORY = "config/TurnBasedMinecraft/"; public static final String CONFIG_FILE_PATH = CONFIG_DIRECTORY + CONFIG_FILENAME; @@ -83,6 +83,7 @@ public class TurnBasedMinecraftMod // register event handler(s) MinecraftForge.EVENT_BUS.register(new AttackEventHandler()); + MinecraftForge.EVENT_BUS.register(new PlayerJoinEventHandler()); } @EventHandler @@ -106,6 +107,8 @@ public class TurnBasedMinecraftMod event.registerServerCommand(new CommandTBMDisable(proxy.getConfig())); event.registerServerCommand(new CommandTBMEnable(proxy.getConfig())); event.registerServerCommand(new CommandTBMSet(proxy.getConfig())); + event.registerServerCommand(new CommandTBMDisableAll(proxy.getConfig())); + event.registerServerCommand(new CommandTBMEnableAll(proxy.getConfig())); } @EventHandler