]> git.seodisparate.com - TurnBasedMinecraftMod/commitdiff
Fixes, added commands, version to 1.2
authorStephen Seo <seo.disparate@gmail.com>
Wed, 17 Oct 2018 03:19:16 +0000 (12:19 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Wed, 17 Oct 2018 03:19:16 +0000 (12:19 +0900)
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
src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisable.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMDisableAll.java [new file with mode: 0644]
src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnable.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommandTBMEnableAll.java [new file with mode: 0644]
src/main/java/com/seodisparate/TurnBasedMinecraft/common/Config.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/PlayerJoinEventHandler.java [new file with mode: 0644]
src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java

index 37b7acc1cffc7eeb8d548ac8b6c54ef350d1f0de..05c110e6f5c29e2a3ac06b72eded869290112239 100644 (file)
@@ -10,7 +10,7 @@ buildscript {
 apply plugin: 'net.minecraftforge.gradle.forge'\r
 //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.\r
 \r
-version = "1.1"\r
+version = "1.2"\r
 group = "com.seodisparate.TurnBasedMinecraft" // http://maven.apache.org/guides/mini/guide-naming-conventions.html\r
 archivesBaseName = "TurnBasedMinecraft"\r
 \r
index 710498e03efe49d9e5c4a24208e5fdb308f8c754..ac15f1eb7e47e21fecf90865fb32be7b0b7cd9b1 100644 (file)
@@ -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 (file)
index 0000000..22b87e3
--- /dev/null
@@ -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;
+    }
+
+}
index 3316a5727b9f487b80ec0bb3644035988ae536b8..bf474136d3ddcace9ab5e75e4b17693bf6faa8ac 100644 (file)
@@ -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 (file)
index 0000000..aa2960c
--- /dev/null
@@ -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;
+    }
+}
index 313a169ce866157aefc05f2246b7d3b24657479f..1ca518fbf0b550b0d171b8a597b2147575cad278 100644 (file)
@@ -47,6 +47,7 @@ public class Config
     private int configVersion = 0;
     private Set<Integer> 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 (file)
index 0000000..ba3f35c
--- /dev/null
@@ -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());
+        }
+    }
+}
index ed994e76e74bb602e514595f64d56a3012fc8eb7..5d247a86c7e10dc7ede84f1f1f69da42fbc56bda 100644 (file)
@@ -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