]> git.seodisparate.com - TurnBasedMinecraftMod/commitdiff
Impl /tbm-edit , some fixes
authorStephen Seo <seo.disparate@gmail.com>
Wed, 27 Nov 2019 07:55:48 +0000 (16:55 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Wed, 27 Nov 2019 07:55:48 +0000 (16:55 +0900)
src/main/java/com/burnedkirby/TurnBasedMinecraft/common/CommandTBMEdit.java [deleted file]
src/main/java/com/burnedkirby/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java

diff --git a/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/CommandTBMEdit.java b/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/CommandTBMEdit.java
deleted file mode 100644 (file)
index be66160..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-package com.burnedkirby.TurnBasedMinecraft.common;
-
-import com.burnedkirby.TurnBasedMinecraft.common.networking.PacketEditingMessage;
-import com.burnedkirby.TurnBasedMinecraft.common.networking.PacketGeneralMessage;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.CommandException;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.MinecraftServer;
-
-public class CommandTBMEdit extends CommandBase
-{
-    public static final String usage = "/tbm-edit [custom] (Invoke without parameters or with arg \"custom\" to start edit)";
-    private Config config;
-
-    public CommandTBMEdit(Config config)
-    {
-        this.config = config;
-    }
-
-    @Override
-    public String getName()
-    {
-        return "tbm-edit";
-    }
-
-    @Override
-    public String getUsage(ICommandSender sender)
-    {
-        return usage;
-    }
-
-    @Override
-    public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
-    {
-        EntityPlayer senderEntity = null;
-        EditingInfo  editingInfo = null;
-        try
-        {
-            senderEntity = (EntityPlayer) sender.getCommandSenderEntity();
-        } catch (ClassCastException e)
-        {
-            // if sender is not EntityPlayer, ignore
-            return;
-        }
-        editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(senderEntity.getEntityId());
-        if(args.length == 0)
-        {
-            if(editingInfo != null && !editingInfo.isPendingEntitySelection)
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-            }
-            else if(editingInfo != null)
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP) senderEntity);
-            }
-            else
-            {
-                TurnBasedMinecraftMod.proxy.setEditingPlayer(senderEntity);
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP) senderEntity);
-                TurnBasedMinecraftMod.logger.info("Begin editing TBM Entity for player \"" + senderEntity.getName() + "\"");
-            }
-        }
-        else if(args.length == 1)
-        {
-            if(editingInfo != null && !editingInfo.isPendingEntitySelection)
-            {
-                if(args[0].toLowerCase().equals("finish"))
-                {
-                    if(!config.editEntityEntry(editingInfo.entityInfo))
-                    {
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("An error occurred while attempting to save an entry to the config, check the logs"), (EntityPlayerMP) senderEntity);
-                        TurnBasedMinecraftMod.proxy.removeEditingInfo(senderEntity.getEntityId());
-                    }
-                    else
-                    {
-                        TurnBasedMinecraftMod.proxy.removeEditingInfo(senderEntity.getEntityId());
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Entity info saved in config and loaded."), (EntityPlayerMP) senderEntity);
-                    }
-                }
-                else if(args[0].toLowerCase().equals("cancel"))
-                {
-                    TurnBasedMinecraftMod.proxy.removeEditingInfo(senderEntity.getEntityId());
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cancelled editing entity."), (EntityPlayerMP)senderEntity);
-                }
-                else if(args[0].toLowerCase().equals("edit"))
-                {
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                }
-                else
-                {
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit <arg>\"."), (EntityPlayerMP)senderEntity);
-                }
-            }
-            else if(editingInfo != null)
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP)senderEntity);
-            }
-            else
-            {
-                if(args[0].toLowerCase().equals("custom"))
-                {
-                    TurnBasedMinecraftMod.proxy.setEditingPlayer(senderEntity);
-                    TurnBasedMinecraftMod.proxy.getEditingInfo(senderEntity.getEntityId()).isEditingCustomName = true;
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP)senderEntity);
-                    TurnBasedMinecraftMod.logger.info("Begin editing custom TBM Entity for player \"" + senderEntity.getName() + "\"");
-                }
-                else
-                {
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cannot edit entity without starting editing process (use \"/tbm-edit\")."), (EntityPlayerMP)senderEntity);
-                }
-            }
-        }
-        else if(args.length == 2)
-        {
-            if(editingInfo != null && !editingInfo.isPendingEntitySelection)
-            {
-                if(args[0].toLowerCase().equals("edit"))
-                {
-                    switch(args[1])
-                    {
-                    case "ignoreBattle":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_IGNORE_BATTLE), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "attackPower":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_POWER), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "attackProbability":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_PROBABILITY), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "attackVariance":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_VARIANCE), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "attackEffect":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_EFFECT), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "attackEffectProbability":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_EFFECT_PROBABILITY), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "defenseDamage":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DEFENSE_DAMAGE), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "defenseDamageProbability":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DEFENSE_DAMAGE_PROBABILITY), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "evasion":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_EVASION), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "speed":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_SPEED), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "category":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_CATEGORY), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "decisionAttack":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_ATTACK), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "decisionDefend":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_DEFEND), (EntityPlayerMP) senderEntity);
-                        break;
-                    case "decisionFlee":
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_FLEE), (EntityPlayerMP) senderEntity);
-                        break;
-                    default:
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit <arg>\""), (EntityPlayerMP) senderEntity);
-                        break;
-                    }
-                }
-                else
-                {
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid arguments for \"/tbm-edit <arg> <arg>\"."), (EntityPlayerMP)senderEntity);
-                }
-            }
-            else if(editingInfo != null)
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP)senderEntity);
-            }
-            else
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cannot edit entity without starting editing process (use \"/tbm-edit\")."), (EntityPlayerMP)senderEntity);
-            }
-        }
-        else if(args.length == 3)
-        {
-            if(editingInfo != null && !editingInfo.isPendingEntitySelection)
-            {
-                if(args[0].toLowerCase().equals("edit"))
-                {
-                    switch(args[1])
-                    {
-                    case "ignoreBattle":
-                        if(args[2].toLowerCase().equals("true"))
-                        {
-                            editingInfo.entityInfo.ignoreBattle = true;
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        else if(args[2].toLowerCase().equals("false"))
-                        {
-                            editingInfo.entityInfo.ignoreBattle = false;
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        else
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit ignoreBattle <boolean>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "attackPower":
-                        try
-                        {
-                            editingInfo.entityInfo.attackPower = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.attackPower < 0)
-                            {
-                                editingInfo.entityInfo.attackPower = 0;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackPower <integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "attackProbability":
-                        try
-                        {
-                            editingInfo.entityInfo.attackProbability = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.attackProbability < 0)
-                            {
-                                editingInfo.entityInfo.attackProbability = 0;
-                            }
-                            else if(editingInfo.entityInfo.attackProbability > 100)
-                            {
-                                editingInfo.entityInfo.attackProbability = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackProbability <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "attackVariance":
-                        try
-                        {
-                            editingInfo.entityInfo.attackVariance = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.attackVariance < 0)
-                            {
-                                editingInfo.entityInfo.attackVariance = 0;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackVariance <integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "attackEffect":
-                        editingInfo.entityInfo.attackEffect = EntityInfo.Effect.fromString(args[2]);
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        break;
-                    case "attackEffectProbability":
-                        try
-                        {
-                            editingInfo.entityInfo.attackEffectProbability = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.attackEffectProbability < 0)
-                            {
-                                editingInfo.entityInfo.attackEffectProbability = 0;
-                            }
-                            else if(editingInfo.entityInfo.attackEffectProbability > 100)
-                            {
-                                editingInfo.entityInfo.attackEffectProbability = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackEffectProbability <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "defenseDamage":
-                        try
-                        {
-                            editingInfo.entityInfo.defenseDamage = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.defenseDamage < 0)
-                            {
-                                editingInfo.entityInfo.defenseDamage = 0;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit defenseDamage <integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "defenseDamageProbability":
-                        try
-                        {
-                            editingInfo.entityInfo.defenseDamageProbability = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.defenseDamageProbability < 0)
-                            {
-                                editingInfo.entityInfo.defenseDamageProbability = 0;
-                            }
-                            else if(editingInfo.entityInfo.defenseDamageProbability > 100)
-                            {
-                                editingInfo.entityInfo.defenseDamageProbability = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit defenseDamageProbability <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "evasion":
-                        try
-                        {
-                            editingInfo.entityInfo.evasion = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.evasion < 0)
-                            {
-                                editingInfo.entityInfo.evasion = 0;
-                            }
-                            else if(editingInfo.entityInfo.evasion > 100)
-                            {
-                                editingInfo.entityInfo.evasion = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit evasion <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "speed":
-                        try
-                        {
-                            editingInfo.entityInfo.speed = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.speed < 0)
-                            {
-                                editingInfo.entityInfo.speed = 0;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit speed <integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "category":
-                        editingInfo.entityInfo.category = args[2];
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        break;
-                    case "decisionAttack":
-                        try
-                        {
-                            editingInfo.entityInfo.decisionAttack = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.decisionAttack < 0)
-                            {
-                                editingInfo.entityInfo.decisionAttack = 0;
-                            }
-                            else if(editingInfo.entityInfo.decisionAttack > 100)
-                            {
-                                editingInfo.entityInfo.decisionAttack = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit decisionAttack <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "decisionDefend":
-                        try
-                        {
-                            editingInfo.entityInfo.decisionDefend = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.decisionDefend < 0)
-                            {
-                                editingInfo.entityInfo.decisionDefend = 0;
-                            }
-                            else if(editingInfo.entityInfo.decisionDefend > 100)
-                            {
-                                editingInfo.entityInfo.decisionDefend = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit decisionDefend <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    case "decisionFlee":
-                        try
-                        {
-                            editingInfo.entityInfo.decisionFlee = Integer.parseInt(args[2]);
-                            if(editingInfo.entityInfo.decisionFlee < 0)
-                            {
-                                editingInfo.entityInfo.decisionFlee = 0;
-                            }
-                            else if(editingInfo.entityInfo.decisionFlee > 100)
-                            {
-                                editingInfo.entityInfo.decisionFlee = 100;
-                            }
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
-                        }
-                        catch (NumberFormatException e)
-                        {
-                            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit decisionFlee <percentage-integer>\""), (EntityPlayerMP)senderEntity);
-                        }
-                        break;
-                    default:
-                        TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid second argument for \"/tbm-edit edit <arg> <arg>\""), (EntityPlayerMP)senderEntity);
-                        break;
-                    }
-                }
-                else
-                {
-                    TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid arguments for \"/tbm-edit <arg> <arg> <arg>\"."), (EntityPlayerMP)senderEntity);
-                }
-            }
-            else if(editingInfo != null)
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP)senderEntity);
-            }
-            else
-            {
-                TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cannot edit entity without starting editing process (use \"/tbm-edit\")."), (EntityPlayerMP)senderEntity);
-            }
-        }
-        else
-        {
-            TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid arguments for \"/tbm-edit\"."), (EntityPlayerMP)senderEntity);
-        }
-    }
-}
index 1227f7e20f83eaf69fda51c133b931e606ef9e9d..a027c750abd6b4f0d6bbf04610db87fae4f77838 100644 (file)
@@ -2,6 +2,11 @@ package com.burnedkirby.TurnBasedMinecraft.common;
 
 import com.burnedkirby.TurnBasedMinecraft.client.ClientProxy;
 import com.burnedkirby.TurnBasedMinecraft.common.networking.*;
+import com.mojang.brigadier.LiteralMessage;
+import com.mojang.brigadier.Message;
+import com.mojang.brigadier.arguments.StringArgumentType;
+import com.mojang.brigadier.exceptions.CommandSyntaxException;
+import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
 import net.minecraft.command.Commands;
 import net.minecraft.command.arguments.EntityArgument;
 import net.minecraft.entity.player.ServerPlayerEntity;
@@ -164,7 +169,7 @@ public class TurnBasedMinecraftMod
                 .requires(c -> !proxy.getConfig().getIfOnlyOPsCanDisableTurnBasedForSelf() || c.hasPermissionLevel(2))
                 .executes(c -> {
                     proxy.getConfig().removeBattleIgnoringPlayer(c.getSource().asPlayer().getEntityId());
-                    c.getSource().sendFeedback(new StringTextComponent("Enabled turn-based-combat for current player"), true));
+                    c.getSource().sendFeedback(new StringTextComponent("Enabled turn-based-combat for current player"), true);
                     return 1;
                 }));
         // tbm-enable-all
@@ -204,7 +209,322 @@ public class TurnBasedMinecraftMod
                     return 1;
                 })));
         // tbm-edit
-        event.registerServerCommand(new CommandTBMEdit(proxy.getConfig()));
+        event.getServer().getCommandManager().getDispatcher().register(
+            Commands.literal("tbm-edit")
+                .requires(c -> c.hasPermissionLevel(2))
+                .executes(c -> {
+                    ServerPlayerEntity player = c.getSource().asPlayer();
+                    EditingInfo editingInfo = proxy.getEditingInfo(player.getEntityId());
+                    if(editingInfo != null && !editingInfo.isPendingEntitySelection) {
+                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                    } else if(editingInfo != null) {
+                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
+                    } else {
+                        proxy.setEditingPlayer(c.getSource().asPlayer());
+                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
+                        logger.info("Begin editing TBM Entity for player \"" + player.getDisplayName().getUnformattedComponentText() + "\"");
+                    }
+                    return 1;
+                })
+                .then(Commands.argument("action", StringArgumentType.word())
+                    .executes(c -> {
+                        String action = StringArgumentType.getString(c, "action").toLowerCase();
+                        ServerPlayerEntity player = c.getSource().asPlayer();
+                        EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getEntityId());
+                        if(editingInfo != null && !editingInfo.isPendingEntitySelection) {
+                            if (action.equals("finish")) {
+                                if (!proxy.getConfig().editEntityEntry(editingInfo.entityInfo)) {
+                                    getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketGeneralMessage("An error occurred while attempting to save an entry to the config"));
+                                    proxy.removeEditingInfo(player.getEntityId());
+                                } else {
+                                    proxy.removeEditingInfo(player.getEntityId());
+                                    getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketGeneralMessage("Entity info saved in config and loaded."));
+                                }
+                            } else if (action.equals("cancel")) {
+                                proxy.removeEditingInfo(player.getEntityId());
+                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketGeneralMessage("Cancelled editing entry."));
+                            } else if (action.equals("edit")) {
+                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                            } else {
+                                Message exceptionMessage = new LiteralMessage("Invalid action for tbm-edit");
+                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                            }
+                        } else if(editingInfo != null) {
+                            getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
+                        } else {
+                            if(action.equals("custom")) {
+                                proxy.setEditingPlayer(player);
+                                proxy.getEditingInfo(player.getEntityId()).isEditingCustomName = true;
+                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
+                                logger.info("Begin editing custom TBM Entity for player \"" + player.getDisplayName().getUnformattedComponentText() + "\'");
+                            } else {
+                                Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
+                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                            }
+                        }
+                        return 1;
+                    })
+                    .then(Commands.argument("category", StringArgumentType.word())
+                        .executes(c -> {
+                            String action = StringArgumentType.getString(c, "action").toLowerCase();
+                            String category = StringArgumentType.getString(c, "category");
+                            ServerPlayerEntity player = c.getSource().asPlayer();
+                            EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getEntityId());
+                            if(editingInfo != null && !editingInfo.isPendingEntitySelection) {
+                                if (action.equals("edit")) {
+                                    switch (category) {
+                                    case "ignoreBattle":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_IGNORE_BATTLE));
+                                        break;
+                                    case "attackPower":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_POWER));
+                                        break;
+                                    case "attackProbability":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_PROBABILITY));
+                                        break;
+                                    case "attackVariance":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_VARIANCE));
+                                        break;
+                                    case "attackEffect":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_EFFECT));
+                                        break;
+                                    case "attackEffectProbability":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_EFFECT_PROBABILITY));
+                                        break;
+                                    case "defenseDamage":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DEFENSE_DAMAGE));
+                                        break;
+                                    case "defenseDamageProbability":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DEFENSE_DAMAGE_PROBABILITY));
+                                        break;
+                                    case "evasion":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_EVASION));
+                                        break;
+                                    case "speed":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_SPEED));
+                                        break;
+                                    case "category":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_CATEGORY));
+                                        break;
+                                    case "decisionAttack":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_ATTACK));
+                                        break;
+                                    case "decisionDefend":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_DEFEND));
+                                        break;
+                                    case "decisionFlee":
+                                        getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_FLEE));
+                                        break;
+                                    default:
+                                        Message exceptionMessage = new LiteralMessage("Invalid argument for \"/tbm-edit edit <category>\"");
+                                        throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                    }
+                                } else {
+                                    Message exceptionMessage = new LiteralMessage("Invalid argument");
+                                    throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                }
+                            } else if(editingInfo != null){
+                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
+                            } else {
+                                Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
+                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                            }
+                            return 1;
+                        })
+                        .then(Commands.argument("value", StringArgumentType.greedyString()))
+                            .executes(c -> {
+                                String action = StringArgumentType.getString(c, "action").toLowerCase();
+                                String category = StringArgumentType.getString(c, "category");
+                                String value = StringArgumentType.getString(c, "value").toLowerCase();
+                                ServerPlayerEntity player = c.getSource().asPlayer();
+                                EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getEntityId());
+                                if(editingInfo != null && !editingInfo.isPendingEntitySelection) {
+                                    if (action.equals("edit")) {
+                                        switch (category) {
+                                        case "ignoreBattle":
+                                            if (value.equals("true")) {
+                                                editingInfo.entityInfo.ignoreBattle = true;
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } else if (value.equals("false")) {
+                                                editingInfo.entityInfo.ignoreBattle = false;
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } else {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit ignoreBattle <boolean>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "attackPower":
+                                            try {
+                                                editingInfo.entityInfo.attackPower = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.attackPower < 0) {
+                                                    editingInfo.entityInfo.attackPower = 0;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit attackPower <integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "attackProbability":
+                                            try {
+                                                editingInfo.entityInfo.attackProbability = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.attackProbability < 0) {
+                                                    editingInfo.entityInfo.attackProbability = 0;
+                                                } else if (editingInfo.entityInfo.attackProbability > 100) {
+                                                    editingInfo.entityInfo.attackProbability = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit attackProbability <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "attackVariance":
+                                            try {
+                                                editingInfo.entityInfo.attackVariance = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.attackVariance < 0) {
+                                                    editingInfo.entityInfo.attackVariance = 0;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit attackVariance <integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "attackEffect":
+                                            editingInfo.entityInfo.attackEffect = EntityInfo.Effect.fromString(value);
+                                            getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            break;
+                                        case "attackEffectProbability":
+                                            try {
+                                                editingInfo.entityInfo.attackEffectProbability = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.attackEffectProbability < 0) {
+                                                    editingInfo.entityInfo.attackEffectProbability = 0;
+                                                } else if (editingInfo.entityInfo.attackEffectProbability > 100) {
+                                                    editingInfo.entityInfo.attackEffectProbability = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit attackEffectProbability <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "defenseDamage":
+                                            try {
+                                                editingInfo.entityInfo.defenseDamage = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.defenseDamage < 0) {
+                                                    editingInfo.entityInfo.defenseDamage = 0;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit defenseDamage <integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "defenseDamageProbability":
+                                            try {
+                                                editingInfo.entityInfo.defenseDamageProbability = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.defenseDamageProbability < 0) {
+                                                    editingInfo.entityInfo.defenseDamageProbability = 0;
+                                                } else if (editingInfo.entityInfo.defenseDamageProbability > 100) {
+                                                    editingInfo.entityInfo.defenseDamageProbability = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit defenseDamageProbability <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "evasion":
+                                            try {
+                                                editingInfo.entityInfo.evasion = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.evasion < 0) {
+                                                    editingInfo.entityInfo.evasion = 0;
+                                                } else if (editingInfo.entityInfo.evasion > 100) {
+                                                    editingInfo.entityInfo.evasion = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit evasion <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "speed":
+                                            try {
+                                                editingInfo.entityInfo.speed = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.speed < 0) {
+                                                    editingInfo.entityInfo.speed = 0;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit speed <integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "category":
+                                            editingInfo.entityInfo.category = value;
+                                            getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            break;
+                                        case "decisionAttack":
+                                            try {
+                                                editingInfo.entityInfo.decisionAttack = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.decisionAttack < 0) {
+                                                    editingInfo.entityInfo.decisionAttack = 0;
+                                                } else if (editingInfo.entityInfo.decisionAttack > 100) {
+                                                    editingInfo.entityInfo.decisionAttack = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit decisionAttack <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "decisionDefend":
+                                            try {
+                                                editingInfo.entityInfo.decisionDefend = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.decisionDefend < 0) {
+                                                    editingInfo.entityInfo.decisionDefend = 0;
+                                                } else if (editingInfo.entityInfo.decisionDefend > 100) {
+                                                    editingInfo.entityInfo.decisionDefend = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit decisionDefend <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        case "decisionFlee":
+                                            try {
+                                                editingInfo.entityInfo.decisionFlee = Integer.parseInt(value);
+                                                if (editingInfo.entityInfo.decisionFlee < 0) {
+                                                    editingInfo.entityInfo.decisionFlee = 0;
+                                                } else if (editingInfo.entityInfo.decisionFlee > 100) {
+                                                    editingInfo.entityInfo.decisionFlee = 100;
+                                                }
+                                                getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
+                                            } catch (NumberFormatException e) {
+                                                Message exceptionMessage = new LiteralMessage("Invalid value for \"/tbm-edit edit decisionFlee <percentage-integer>\"");
+                                                throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                            }
+                                            break;
+                                        default:
+                                            Message exceptionMessage = new LiteralMessage("Invalid category for \"/tbm-edit edit <category> <value>\"");
+                                            throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                        }
+                                    } else {
+                                        Message exceptionMessage = new LiteralMessage("Invalid args for \"/tbm-edit <args...>\"");
+                                        throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                    }
+                                } else if(editingInfo != null) {
+                                    getHandler().send(PacketDistributor.PLAYER.with(() -> player), new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
+                                } else {
+                                    Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
+                                    throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
+                                }
+                                return 1;
+                            })
+                    ))
+        );
     }
     
     @SubscribeEvent