From b052a04ddbdf0cde89659abdf09df8f6409eb95a Mon Sep 17 00:00:00 2001 From: Badbird-5907 <50347938+Badbird-5907@users.noreply.github.com> Date: Fri, 17 Jun 2022 00:22:47 -0400 Subject: [PATCH] Moved to gradle & started work on separating API and plugin --- .../net/nuggetmc/tplus/api/Terminator.java | 91 +++++++++++ .../agent/legacyagent/ai/ActivationType.java | 2 +- .../api}/agent/legacyagent/ai/BotData.java | 10 +- .../agent/legacyagent/ai/BotDataType.java | 2 +- .../api}/agent/legacyagent/ai/BotNode.java | 2 +- .../agent/legacyagent/ai/NeuralNetwork.java | 2 +- .../agent/legacyagent/ai/NodeConnections.java | 2 +- .../net/nuggetmc/tplus/utils/ChatUtils.java | 0 .../net/nuggetmc/tplus/utils/MathUtils.java | 20 +-- .../net/nuggetmc/tplus/TerminatorPlus.java | 0 .../main/java/net/nuggetmc/tplus/bot/Bot.java | 146 +++++++++++------- .../net/nuggetmc/tplus/bot/BotManager.java | 41 +++-- .../nuggetmc/tplus/bot/CustomGameProfile.java | 0 .../net/nuggetmc/tplus/bot/agent/Agent.java | 0 .../tplus/bot/agent/botagent/BotAgent.java | 0 .../bot/agent/botagent/BotSituation.java | 0 .../agent/botagent/VerticalDisplacement.java | 0 .../bot/agent/legacyagent/EnumTargetGoal.java | 0 .../bot/agent/legacyagent/LegacyAgent.java | 10 +- .../agent/legacyagent/LegacyBlockCheck.java | 0 .../bot/agent/legacyagent/LegacyItems.java | 0 .../bot/agent/legacyagent/LegacyLevel.java | 0 .../bot/agent/legacyagent/LegacyMats.java | 0 .../bot/agent/legacyagent/LegacyUtils.java | 2 - .../agent/legacyagent/LegacyWorldManager.java | 0 .../legacyagent/ai/IntelligenceAgent.java | 18 ++- .../bot/event/BotDamageByPlayerEvent.java | 0 .../tplus/bot/event/BotDeathEvent.java | 8 +- .../tplus/bot/event/BotFallDamageEvent.java | 0 .../bot/event/BotKilledByPlayerEvent.java | 0 .../tplus/command/CommandHandler.java | 0 .../tplus/command/CommandInstance.java | 0 .../nuggetmc/tplus/command/CommandMethod.java | 0 .../tplus/command/annotation/Arg.java | 0 .../tplus/command/annotation/Autofill.java | 0 .../tplus/command/annotation/Command.java | 0 .../tplus/command/annotation/OptArg.java | 0 .../tplus/command/annotation/Require.java | 0 .../tplus/command/annotation/TextArg.java | 0 .../tplus/command/commands/AICommand.java | 2 +- .../tplus/command/commands/BotCommand.java | 0 .../tplus/command/commands/MainCommand.java | 0 .../command/exception/ArgCountException.java | 0 .../command/exception/ArgParseException.java | 0 .../command/exception/NonPlayerException.java | 0 .../nuggetmc/tplus/command/nms/TPCommand.java | 0 .../net/nuggetmc/tplus/utils/BotUtils.java | 0 .../net/nuggetmc/tplus/utils/Debugger.java | 2 +- .../net/nuggetmc/tplus/utils/ItemUtils.java | 0 .../net/nuggetmc/tplus/utils/MojangAPI.java | 0 .../net/nuggetmc/tplus/utils/PlayerUtils.java | 0 .../net/nuggetmc/tplus/utils/Singularity.java | 0 build.gradle.kts | 18 +++ pom.xml | 118 -------------- settings.gradle.kts | 10 ++ 55 files changed, 273 insertions(+), 233 deletions(-) create mode 100644 TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/Terminator.java rename {src/main/java/net/nuggetmc/tplus/bot => TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api}/agent/legacyagent/ai/ActivationType.java (62%) rename {src/main/java/net/nuggetmc/tplus/bot => TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api}/agent/legacyagent/ai/BotData.java (83%) rename {src/main/java/net/nuggetmc/tplus/bot => TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api}/agent/legacyagent/ai/BotDataType.java (85%) rename {src/main/java/net/nuggetmc/tplus/bot => TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api}/agent/legacyagent/ai/BotNode.java (77%) rename {src/main/java/net/nuggetmc/tplus/bot => TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api}/agent/legacyagent/ai/NeuralNetwork.java (98%) rename {src/main/java/net/nuggetmc/tplus/bot => TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api}/agent/legacyagent/ai/NodeConnections.java (97%) rename {src => TerminatorPlus-API/src}/main/java/net/nuggetmc/tplus/utils/ChatUtils.java (100%) rename {src => TerminatorPlus-API/src}/main/java/net/nuggetmc/tplus/utils/MathUtils.java (93%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/TerminatorPlus.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/Bot.java (91%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/BotManager.java (85%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/CustomGameProfile.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/Agent.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotAgent.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotSituation.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/botagent/VerticalDisplacement.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/EnumTargetGoal.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java (99%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyBlockCheck.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyItems.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyLevel.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyMats.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java (97%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyWorldManager.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java (94%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/event/BotDamageByPlayerEvent.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java (55%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/event/BotFallDamageEvent.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/bot/event/BotKilledByPlayerEvent.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/CommandHandler.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/CommandInstance.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/CommandMethod.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/annotation/Arg.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/annotation/Autofill.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/annotation/Command.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/annotation/OptArg.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/annotation/Require.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/annotation/TextArg.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/commands/AICommand.java (98%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/commands/BotCommand.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/commands/MainCommand.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/exception/ArgCountException.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/exception/ArgParseException.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/exception/NonPlayerException.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/command/nms/TPCommand.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/utils/BotUtils.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/utils/Debugger.java (99%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/utils/ItemUtils.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/utils/MojangAPI.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/utils/PlayerUtils.java (100%) rename {src => TerminatorPlus-Plugin/src}/main/java/net/nuggetmc/tplus/utils/Singularity.java (100%) create mode 100644 build.gradle.kts delete mode 100644 pom.xml create mode 100644 settings.gradle.kts diff --git a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/Terminator.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/Terminator.java new file mode 100644 index 0000000..c377524 --- /dev/null +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/Terminator.java @@ -0,0 +1,91 @@ +package net.nuggetmc.tplus.api; + +import com.mojang.authlib.GameProfile; +import net.kyori.adventure.text.Component; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Entity; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; + +public interface Terminator { + + String getBotName(); + + GameProfile getGameProfile(); + + NeuralNetwork getNeuralNetwork(); + + void setNeuralNetwork(NeuralNetwork neuralNetwork); + + boolean hasNeuralNetwork(); + + Location getLocation(); + + float getHealth(); + + float getMaxHealth(); + + void ignite(); + + boolean isOnFire(); + + boolean isFalling(); + + boolean isBlocking(); + + void block(int length, int cooldown); + + boolean isInWater(); + + void jump(Vector velocity); + + void jump(); + + void walk(Vector velocity); + + void look(BlockFace face); + + void attack(Entity target); + + void attemptBlockPlace(Location loc, Material type, boolean down); + + void punch(); + + void swim(); + + void sneak(); + + void stand(); + + void addFriction(double factor); + + void removeVisually(); + + int getKills(); + + void incrementKills(); + + void setItem(ItemStack item); + + void setItem(ItemStack item, EquipmentSlot slot); + + void setItemOffhand(ItemStack item); + + void setDefaultItem(ItemStack item); + + Vector getOffset(); + + Vector getVelocity(); + + void setVelocity(Vector velocity); + + void addVelocity(Vector velocity); + + int getAliveTicks(); + + boolean tickDelay(int ticks); +} diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/ActivationType.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/ActivationType.java similarity index 62% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/ActivationType.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/ActivationType.java index 76bae1c..d16832d 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/ActivationType.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/ActivationType.java @@ -1,4 +1,4 @@ -package net.nuggetmc.tplus.bot.agent.legacyagent.ai; +package net.nuggetmc.tplus.api.agent.legacyagent.ai; public enum ActivationType { TANH, diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotData.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java similarity index 83% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotData.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java index 9be0ba9..c4f1bc2 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotData.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java @@ -1,6 +1,6 @@ -package net.nuggetmc.tplus.bot.agent.legacyagent.ai; +package net.nuggetmc.tplus.api.agent.legacyagent.ai; -import net.nuggetmc.tplus.bot.Bot; +import net.nuggetmc.tplus.api.Terminator; import net.nuggetmc.tplus.utils.MathUtils; import org.apache.commons.lang.StringUtils; import org.bukkit.Location; @@ -14,7 +14,7 @@ public class BotData { private final Map values; - private BotData(Bot bot, LivingEntity target) { + private BotData(Terminator bot, LivingEntity target) { this.values = new HashMap<>(); Location a = bot.getLocation(); @@ -25,10 +25,10 @@ public class BotData { values.put(BotDataType.CRITICAL_HEALTH, health >= 5 ? 0 : 5D - health); values.put(BotDataType.DISTANCE_XZ, Math.sqrt(MathUtils.square(a.getX() - b.getX()) + MathUtils.square(a.getZ() - b.getZ()))); values.put(BotDataType.DISTANCE_Y, b.getY() - a.getY()); - values.put(BotDataType.ENEMY_BLOCKING, target instanceof Player && ((Player)target).isBlocking() ? 1D : 0); + values.put(BotDataType.ENEMY_BLOCKING, target instanceof Player && ((Player) target).isBlocking() ? 1D : 0); } - public static BotData generate(Bot bot, LivingEntity target) { + public static BotData generate(Terminator bot, LivingEntity target) { return new BotData(bot, target); } diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotDataType.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotDataType.java similarity index 85% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotDataType.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotDataType.java index 5145a45..c6ab0fd 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotDataType.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotDataType.java @@ -1,4 +1,4 @@ -package net.nuggetmc.tplus.bot.agent.legacyagent.ai; +package net.nuggetmc.tplus.api.agent.legacyagent.ai; public enum BotDataType { CRITICAL_HEALTH("h"), diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotNode.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotNode.java similarity index 77% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotNode.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotNode.java index 6569d46..a168b53 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/BotNode.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotNode.java @@ -1,4 +1,4 @@ -package net.nuggetmc.tplus.bot.agent.legacyagent.ai; +package net.nuggetmc.tplus.api.agent.legacyagent.ai; public enum BotNode { BLOCK, // block (can't attack while blocking) diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/NeuralNetwork.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java similarity index 98% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/NeuralNetwork.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java index 4e95195..087e7cd 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/NeuralNetwork.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java @@ -1,4 +1,4 @@ -package net.nuggetmc.tplus.bot.agent.legacyagent.ai; +package net.nuggetmc.tplus.api.agent.legacyagent.ai; import net.md_5.bungee.api.ChatColor; import net.nuggetmc.tplus.utils.MathUtils; diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/NodeConnections.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NodeConnections.java similarity index 97% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/NodeConnections.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NodeConnections.java index f9f2221..d809d16 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/NodeConnections.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NodeConnections.java @@ -1,4 +1,4 @@ -package net.nuggetmc.tplus.bot.agent.legacyagent.ai; +package net.nuggetmc.tplus.api.agent.legacyagent.ai; import java.util.Arrays; import java.util.HashMap; diff --git a/src/main/java/net/nuggetmc/tplus/utils/ChatUtils.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/utils/ChatUtils.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/utils/ChatUtils.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/utils/ChatUtils.java diff --git a/src/main/java/net/nuggetmc/tplus/utils/MathUtils.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/utils/MathUtils.java similarity index 93% rename from src/main/java/net/nuggetmc/tplus/utils/MathUtils.java rename to TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/utils/MathUtils.java index 8f2beea..e9a8dee 100644 --- a/src/main/java/net/nuggetmc/tplus/utils/MathUtils.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/utils/MathUtils.java @@ -1,6 +1,6 @@ package net.nuggetmc.tplus.utils; -import net.nuggetmc.tplus.bot.Bot; +import net.nuggetmc.tplus.api.Terminator; import org.bukkit.util.NumberConversions; import org.bukkit.util.Vector; @@ -22,9 +22,7 @@ public class MathUtils { if (x == 0.0D && z == 0.0D) { out[1] = (float) (dir.getY() > 0.0D ? -90 : 90); - } - - else { + } else { double theta = Math.atan2(-x, z); out[0] = (float) Math.toDegrees((theta + 6.283185307179586D) % 6.283185307179586D); @@ -45,9 +43,7 @@ public class MathUtils { if (x == 0.0D && z == 0.0D) { result = (float) (dir.getY() > 0.0D ? -90 : 90); - } - - else { + } else { double x2 = NumberConversions.square(x); double z2 = NumberConversions.square(z); double xz = Math.sqrt(x2 + z2); @@ -92,8 +88,8 @@ public class MathUtils { return FORMATTER_2.format(n); } - public static List> sortByValue(HashMap hm) { - List> list = new LinkedList<>(hm.entrySet()); + public static List> sortByValue(HashMap hm) { + List> list = new LinkedList<>(hm.entrySet()); list.sort(Map.Entry.comparingByValue()); Collections.reverse(list); return list; @@ -161,9 +157,9 @@ public class MathUtils { double dist = distribution(list, mid); double p = mutationSize * dist / Math.sqrt(list.size()); - return new double[] { - mid - p, - mid + p + return new double[]{ + mid - p, + mid + p }; } diff --git a/src/main/java/net/nuggetmc/tplus/TerminatorPlus.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/TerminatorPlus.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/TerminatorPlus.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/TerminatorPlus.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/Bot.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java similarity index 91% rename from src/main/java/net/nuggetmc/tplus/bot/Bot.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java index 8bc6a1f..6340533 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/Bot.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java @@ -8,8 +8,6 @@ import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; import net.minecraft.network.protocol.game.*; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -26,18 +24,17 @@ import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.nuggetmc.tplus.TerminatorPlus; +import net.nuggetmc.tplus.api.Terminator; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.bot.agent.Agent; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.bot.event.BotDamageByPlayerEvent; import net.nuggetmc.tplus.bot.event.BotFallDamageEvent; import net.nuggetmc.tplus.bot.event.BotKilledByPlayerEvent; import net.nuggetmc.tplus.utils.*; -import org.bukkit.Material; -import org.bukkit.SoundCategory; -import org.bukkit.World; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.craftbukkit.v1_18_R1.CraftEquipmentSlot; import org.bukkit.craftbukkit.v1_18_R1.CraftServer; import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; @@ -46,7 +43,6 @@ import org.bukkit.entity.Damageable; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitScheduler; -import org.bukkit.util.BoundingBox; import org.bukkit.util.Vector; import javax.annotation.Nullable; @@ -55,47 +51,26 @@ import java.util.Collections; import java.util.Objects; import java.util.UUID; -public class Bot extends ServerPlayer { +public class Bot extends ServerPlayer implements Terminator { private final TerminatorPlus plugin; private final BukkitScheduler scheduler; private final Agent agent; - - private NeuralNetwork network; - - public NeuralNetwork getNeuralNetwork() { - return network; - } - - public void setNeuralNetwork(NeuralNetwork network) { - this.network = network; - } - - public boolean hasNeuralNetwork() { - return network != null; - } - + private final Vector offset; public ItemStack defaultItem; - + private NeuralNetwork network; private boolean shield; private boolean blocking; private boolean blockUse; - private Vector velocity; private Vector oldVelocity; - private boolean removeOnDeath; - private int aliveTicks; private int kills; - private byte fireTicks; private byte groundTicks; private byte jumpTicks; private byte noFallTicks; - - private final Vector offset; - private Bot(MinecraftServer minecraftServer, ServerLevel worldServer, GameProfile profile) { super(minecraftServer, worldServer, profile); @@ -139,15 +114,35 @@ public class Bot extends ServerPlayer { bot.setRot(loc.getYaw(), loc.getPitch()); bot.getBukkitEntity().setNoDamageTicks(0); Bukkit.getOnlinePlayers().forEach(p -> ((CraftPlayer) p).getHandle().connection.send( - new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER, bot))); + new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER, bot))); nmsWorld.addFreshEntity(bot); bot.renderAll(); - + TerminatorPlus.getInstance().getManager().add(bot); return bot; } + @Override + public String getBotName() { + return displayName; + } + + @Override + public NeuralNetwork getNeuralNetwork() { + return network; + } + + @Override + public void setNeuralNetwork(NeuralNetwork network) { + this.network = network; + } + + @Override + public boolean hasNeuralNetwork() { + return network != null; + } + private void renderAll() { Packet[] packets = getRenderPacketsNoInfo(); Bukkit.getOnlinePlayers().forEach(p -> renderNoInfo(((CraftPlayer) p).getHandle().connection, packets, false)); @@ -164,7 +159,7 @@ public class Bot extends ServerPlayer { connection.send(packets[3]); } } - + private void renderNoInfo(ServerGamePacketListenerImpl connection, Packet[] packets, boolean login) { connection.send(packets[0]); connection.send(packets[1]); @@ -181,38 +176,43 @@ public class Bot extends ServerPlayer { } private Packet[] getRenderPackets() { - return new Packet[] { - new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER, this), - new ClientboundAddPlayerPacket(this), - new ClientboundSetEntityDataPacket(this.getId(), this.entityData, true), - new ClientboundRotateHeadPacket(this, (byte) ((this.yHeadRot * 256f) / 360f)) - }; - } - - private Packet[] getRenderPacketsNoInfo() { - return new Packet[] { - new ClientboundAddPlayerPacket(this), - new ClientboundSetEntityDataPacket(this.getId(), this.entityData, true), - new ClientboundRotateHeadPacket(this, (byte) ((this.yHeadRot * 256f) / 360f)) + return new Packet[]{ + new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER, this), + new ClientboundAddPlayerPacket(this), + new ClientboundSetEntityDataPacket(this.getId(), this.entityData, true), + new ClientboundRotateHeadPacket(this, (byte) ((this.yHeadRot * 256f) / 360f)) }; } + private Packet[] getRenderPacketsNoInfo() { + return new Packet[]{ + new ClientboundAddPlayerPacket(this), + new ClientboundSetEntityDataPacket(this.getId(), this.entityData, true), + new ClientboundRotateHeadPacket(this, (byte) ((this.yHeadRot * 256f) / 360f)) + }; + } + + @Override public void setDefaultItem(ItemStack item) { this.defaultItem = item; } + @Override public Vector getOffset() { return offset; } + @Override public Vector getVelocity() { return velocity.clone(); } + @Override public void setVelocity(Vector vector) { this.velocity = vector; } + @Override public void addVelocity(Vector vector) { // This can cause lag? (maybe i fixed it with the new static method) if (MathUtils.isNotFinite(vector)) { velocity = vector; @@ -222,10 +222,12 @@ public class Bot extends ServerPlayer { velocity.add(vector); } + @Override public int getAliveTicks() { return aliveTicks; } + @Override public boolean tickDelay(int i) { return aliveTicks % i == 0; } @@ -272,8 +274,8 @@ public class Bot extends ServerPlayer { fireDamageCheck(); fallDamageCheck(); - - if(position().y < -64) { + + if (position().y < -64) { die(DamageSource.OUT_OF_WORLD); } @@ -328,6 +330,7 @@ public class Bot extends ServerPlayer { } } + @Override public void ignite() { if (fireTicks <= 1) setOnFirePackets(true); fireTicks = 100; @@ -338,6 +341,7 @@ public class Bot extends ServerPlayer { //sendPacket(new ClientboundSetEntityDataPacket(getId(), entityData, false)); } + @Override public boolean isOnFire() { return fireTicks != 0; } @@ -354,10 +358,12 @@ public class Bot extends ServerPlayer { } } + @Override public boolean isFalling() { return velocity.getY() < -0.8; } + @Override public void block(int blockLength, int cooldown) { if (!shield || blockUse) return; startBlocking(); @@ -378,6 +384,7 @@ public class Bot extends ServerPlayer { sendPacket(new ClientboundSetEntityDataPacket(getId(), entityData, true)); } + @Override public boolean isBlocking() { return blocking; } @@ -398,9 +405,7 @@ public class Bot extends ServerPlayer { y = Math.min(velocity.getY() + 0.1, 0.1); addFriction(0.8); velocity.setY(y); - } - - else { + } else { if (groundTicks != 0) { velocity.setY(0); addFriction(0.5); @@ -431,6 +436,7 @@ public class Bot extends ServerPlayer { return false; } + @Override public void jump(Vector vel) { if (jumpTicks == 0 && groundTicks > 1) { jumpTicks = 4; @@ -438,10 +444,12 @@ public class Bot extends ServerPlayer { } } + @Override public void jump() { jump(new Vector(0, 0.5, 0)); } + @Override public void walk(Vector vel) { double max = 0.4; @@ -451,6 +459,7 @@ public class Bot extends ServerPlayer { velocity = sum; } + @Override public void attack(org.bukkit.entity.Entity entity) { faceLocation(entity.getLocation()); punch(); @@ -462,6 +471,7 @@ public class Bot extends ServerPlayer { } } + @Override public void punch() { swing(InteractionHand.MAIN_HAND); } @@ -476,14 +486,14 @@ public class Bot extends ServerPlayer { World world = getBukkitEntity().getWorld(); AABB box = getBoundingBox(); - double[] xVals = new double[] { - box.minX, - box.maxX + double[] xVals = new double[]{ + box.minX, + box.maxX }; - double[] zVals = new double[] { - box.minZ, - box.maxZ + double[] zVals = new double[]{ + box.minZ, + box.maxZ }; for (double x : xVals) { @@ -505,6 +515,7 @@ public class Bot extends ServerPlayer { return groundTicks != 0; } + @Override public void addFriction(double factor) { double frictionMin = 0.01; @@ -515,6 +526,7 @@ public class Bot extends ServerPlayer { velocity.setZ(Math.abs(z) < frictionMin ? 0 : z * factor); } + @Override public void removeVisually() { this.removeTab(); this.setDead(); @@ -640,14 +652,17 @@ public class Bot extends ServerPlayer { velocity = vel; } + @Override public int getKills() { return kills; } + @Override public void incrementKills() { kills++; } + @Override public Location getLocation() { return getBukkitEntity().getLocation(); } @@ -656,6 +671,7 @@ public class Bot extends ServerPlayer { look(loc.toVector().subtract(getLocation().toVector()), false); } + @Override public void look(BlockFace face) { look(face.getDirection(), face == BlockFace.DOWN || face == BlockFace.UP); } @@ -677,6 +693,7 @@ public class Bot extends ServerPlayer { setRot(yaw, pitch); } + @Override public void attemptBlockPlace(Location loc, Material type, boolean down) { if (down) { look(BlockFace.DOWN); @@ -696,15 +713,23 @@ public class Bot extends ServerPlayer { } } + @Override public void setItem(org.bukkit.inventory.ItemStack item) { setItem(item, EquipmentSlot.MAINHAND); } + @Override public void setItemOffhand(org.bukkit.inventory.ItemStack item) { setItem(item, EquipmentSlot.OFFHAND); System.out.println("set offhand"); } + @Override + public void setItem(ItemStack item, org.bukkit.inventory.EquipmentSlot slot) { + EquipmentSlot nmsSlot = CraftEquipmentSlot.getNMS(slot); + setItem(item, nmsSlot); + } + public void setItem(org.bukkit.inventory.ItemStack item, EquipmentSlot slot) { if (item == null) item = defaultItem; @@ -718,20 +743,23 @@ public class Bot extends ServerPlayer { System.out.println("slot = " + slot); System.out.println("item = " + item); sendPacket(new ClientboundSetEquipmentPacket(getId(), new ArrayList<>(Collections.singletonList( - new Pair<>(slot, CraftItemStack.asNMSCopy(item)) + new Pair<>(slot, CraftItemStack.asNMSCopy(item)) )))); } + @Override public void swim() { getBukkitEntity().setSwimming(true); registerPose(Pose.SWIMMING); } + @Override public void sneak() { getBukkitEntity().setSneaking(true); registerPose(Pose.CROUCHING); } + @Override public void stand() { Player player = getBukkitEntity(); player.setSneaking(false); diff --git a/src/main/java/net/nuggetmc/tplus/bot/BotManager.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManager.java similarity index 85% rename from src/main/java/net/nuggetmc/tplus/bot/BotManager.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManager.java index a1326a4..b16005e 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/BotManager.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManager.java @@ -3,15 +3,17 @@ package net.nuggetmc.tplus.bot; import net.minecraft.server.network.ServerGamePacketListenerImpl; import net.nuggetmc.tplus.bot.agent.Agent; import net.nuggetmc.tplus.bot.agent.legacyagent.LegacyAgent; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.NeuralNetwork; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.bot.event.BotDeathEvent; import net.nuggetmc.tplus.utils.MojangAPI; import org.bukkit.*; import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; @@ -149,19 +151,31 @@ public class BotManager implements Listener { agent.stopAllTasks(); } + /** + * Get a bot from a Player object + * @param player + * @deprecated Use {@link #getBot(UUID)} instead as this may no longer work + * @return + */ + @Deprecated public Bot getBot(Player player) { // potentially memory intensive - Bot bot = null; - int id = player.getEntityId(); + return getBot(id); + } - for (Bot b : bots) { - if (id == b.getId()) { - bot = b; - break; + public Bot getBot(UUID uuid) { + Entity entity = Bukkit.getEntity(uuid); + if (entity == null) return null; + return getBot(entity.getEntityId()); + } + + public Bot getBot(int entityId) { + for (Bot bot : bots) { + if (bot.getId() == entityId) { + return bot; } } - - return bot; + return null; } @EventHandler @@ -171,10 +185,9 @@ public class BotManager implements Listener { } @EventHandler - public void onDeath(PlayerDeathEvent event) { - Player player = event.getEntity(); - Bot bot = getBot(player); - + public void onDeath(EntityDeathEvent event) { + LivingEntity bukkitEntity = event.getEntity(); + Bot bot = getBot(bukkitEntity.getEntityId()); if (bot != null) { agent.onBotDeath(new BotDeathEvent(event, bot)); } diff --git a/src/main/java/net/nuggetmc/tplus/bot/CustomGameProfile.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/CustomGameProfile.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/CustomGameProfile.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/CustomGameProfile.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/Agent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/Agent.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/Agent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/Agent.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotAgent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotAgent.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotAgent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotAgent.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotSituation.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotSituation.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotSituation.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/BotSituation.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/VerticalDisplacement.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/VerticalDisplacement.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/botagent/VerticalDisplacement.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/botagent/VerticalDisplacement.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/EnumTargetGoal.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/EnumTargetGoal.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/EnumTargetGoal.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/EnumTargetGoal.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java similarity index 99% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java index 6546b32..096cc0f 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyAgent.java @@ -5,9 +5,9 @@ import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket; import net.nuggetmc.tplus.bot.Bot; import net.nuggetmc.tplus.bot.BotManager; import net.nuggetmc.tplus.bot.agent.Agent; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.BotData; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.BotNode; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.NeuralNetwork; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.BotData; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.BotNode; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.bot.event.BotDamageByPlayerEvent; import net.nuggetmc.tplus.bot.event.BotDeathEvent; import net.nuggetmc.tplus.bot.event.BotFallDamageEvent; @@ -1154,7 +1154,7 @@ public class LegacyAgent extends Agent { break; } - + case NEAREST_HOSTILE: { for (LivingEntity entity : bot.getBukkitEntity().getWorld().getLivingEntities()) { if (entity instanceof Monster && validateCloserEntity(entity, loc, result)) { @@ -1164,7 +1164,7 @@ public class LegacyAgent extends Agent { break; } - + case NEAREST_MOB: { for (LivingEntity entity : bot.getBukkitEntity().getWorld().getLivingEntities()) { if (entity instanceof Mob && validateCloserEntity(entity, loc, result)) { diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyBlockCheck.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyBlockCheck.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyBlockCheck.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyBlockCheck.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyItems.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyItems.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyItems.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyItems.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyLevel.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyLevel.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyLevel.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyLevel.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyMats.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyMats.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyMats.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyMats.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java similarity index 97% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java index 24c2db7..4ce0cef 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyUtils.java @@ -10,8 +10,6 @@ import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; import org.bukkit.util.Vector; -import java.lang.reflect.Field; - public class LegacyUtils { public static boolean checkFreeSpace(Location a, Location b) { diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyWorldManager.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyWorldManager.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyWorldManager.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/LegacyWorldManager.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java similarity index 94% rename from src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java index b7efe26..c6d4086 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/agent/legacyagent/ai/IntelligenceAgent.java @@ -2,6 +2,10 @@ package net.nuggetmc.tplus.bot.agent.legacyagent.ai; import net.minecraft.world.entity.LivingEntity; import net.nuggetmc.tplus.TerminatorPlus; +import net.nuggetmc.tplus.api.Terminator; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.BotDataType; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.BotNode; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.bot.Bot; import net.nuggetmc.tplus.bot.BotManager; import net.nuggetmc.tplus.bot.agent.legacyagent.EnumTargetGoal; @@ -166,22 +170,22 @@ public class IntelligenceAgent { print("Generation " + ChatColor.RED + generation + ChatColor.RESET + " has ended."); - HashMap values = new HashMap<>(); + HashMap values = new HashMap<>(); - for (Bot bot : bots.values()) { + for (Terminator bot : bots.values()) { values.put(bot, bot.getAliveTicks()); } - List> sorted = MathUtils.sortByValue(values); - Set winners = new HashSet<>(); + List> sorted = MathUtils.sortByValue(values); + Set winners = new HashSet<>(); int i = 1; - for (Map.Entry entry : sorted) { - Bot bot = entry.getKey(); + for (Map.Entry entry : sorted) { + Terminator bot = entry.getKey(); boolean check = i <= cutoff; if (check) { - print(ChatColor.GRAY + "[" + ChatColor.YELLOW + "#" + i + ChatColor.GRAY + "] " + ChatColor.GREEN + bot.getName() + print(ChatColor.GRAY + "[" + ChatColor.YELLOW + "#" + i + ChatColor.GRAY + "] " + ChatColor.GREEN + bot.getBotName() + ChatUtils.BULLET_FORMATTED + ChatColor.RED + bot.getKills() + " kills"); winners.add(bot); } diff --git a/src/main/java/net/nuggetmc/tplus/bot/event/BotDamageByPlayerEvent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotDamageByPlayerEvent.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/event/BotDamageByPlayerEvent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotDamageByPlayerEvent.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java similarity index 55% rename from src/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java index 40e04f5..9a1cceb 100644 --- a/src/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotDeathEvent.java @@ -1,14 +1,14 @@ package net.nuggetmc.tplus.bot.event; import net.nuggetmc.tplus.bot.Bot; -import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.EntityDeathEvent; -public class BotDeathEvent extends PlayerDeathEvent { +public class BotDeathEvent extends EntityDeathEvent { private final Bot bot; - public BotDeathEvent(PlayerDeathEvent event, Bot bot) { - super(event.getEntity(), event.getDrops(), event.getDroppedExp(), event.getDeathMessage()); + public BotDeathEvent(EntityDeathEvent event, Bot bot) { + super(event.getEntity(), event.getDrops(), event.getDroppedExp()); this.bot = bot; } diff --git a/src/main/java/net/nuggetmc/tplus/bot/event/BotFallDamageEvent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotFallDamageEvent.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/event/BotFallDamageEvent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotFallDamageEvent.java diff --git a/src/main/java/net/nuggetmc/tplus/bot/event/BotKilledByPlayerEvent.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotKilledByPlayerEvent.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/bot/event/BotKilledByPlayerEvent.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/event/BotKilledByPlayerEvent.java diff --git a/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/CommandHandler.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java diff --git a/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/CommandInstance.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java diff --git a/src/main/java/net/nuggetmc/tplus/command/CommandMethod.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandMethod.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/CommandMethod.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandMethod.java diff --git a/src/main/java/net/nuggetmc/tplus/command/annotation/Arg.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Arg.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/annotation/Arg.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Arg.java diff --git a/src/main/java/net/nuggetmc/tplus/command/annotation/Autofill.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Autofill.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/annotation/Autofill.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Autofill.java diff --git a/src/main/java/net/nuggetmc/tplus/command/annotation/Command.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Command.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/annotation/Command.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Command.java diff --git a/src/main/java/net/nuggetmc/tplus/command/annotation/OptArg.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/OptArg.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/annotation/OptArg.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/OptArg.java diff --git a/src/main/java/net/nuggetmc/tplus/command/annotation/Require.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Require.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/annotation/Require.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/Require.java diff --git a/src/main/java/net/nuggetmc/tplus/command/annotation/TextArg.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/TextArg.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/annotation/TextArg.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/annotation/TextArg.java diff --git a/src/main/java/net/nuggetmc/tplus/command/commands/AICommand.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/AICommand.java similarity index 98% rename from src/main/java/net/nuggetmc/tplus/command/commands/AICommand.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/AICommand.java index adfa74f..1be5f17 100644 --- a/src/main/java/net/nuggetmc/tplus/command/commands/AICommand.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/AICommand.java @@ -4,7 +4,7 @@ import net.nuggetmc.tplus.TerminatorPlus; import net.nuggetmc.tplus.bot.Bot; import net.nuggetmc.tplus.bot.BotManager; import net.nuggetmc.tplus.bot.agent.legacyagent.ai.IntelligenceAgent; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.NeuralNetwork; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.command.CommandHandler; import net.nuggetmc.tplus.command.CommandInstance; import net.nuggetmc.tplus.command.annotation.Arg; diff --git a/src/main/java/net/nuggetmc/tplus/command/commands/BotCommand.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/BotCommand.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/commands/BotCommand.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/BotCommand.java diff --git a/src/main/java/net/nuggetmc/tplus/command/commands/MainCommand.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/MainCommand.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/commands/MainCommand.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/commands/MainCommand.java diff --git a/src/main/java/net/nuggetmc/tplus/command/exception/ArgCountException.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/exception/ArgCountException.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/exception/ArgCountException.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/exception/ArgCountException.java diff --git a/src/main/java/net/nuggetmc/tplus/command/exception/ArgParseException.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/exception/ArgParseException.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/exception/ArgParseException.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/exception/ArgParseException.java diff --git a/src/main/java/net/nuggetmc/tplus/command/exception/NonPlayerException.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/exception/NonPlayerException.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/exception/NonPlayerException.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/exception/NonPlayerException.java diff --git a/src/main/java/net/nuggetmc/tplus/command/nms/TPCommand.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/nms/TPCommand.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/command/nms/TPCommand.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/nms/TPCommand.java diff --git a/src/main/java/net/nuggetmc/tplus/utils/BotUtils.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/BotUtils.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/utils/BotUtils.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/BotUtils.java diff --git a/src/main/java/net/nuggetmc/tplus/utils/Debugger.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/Debugger.java similarity index 99% rename from src/main/java/net/nuggetmc/tplus/utils/Debugger.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/Debugger.java index 2dac5ad..e091322 100644 --- a/src/main/java/net/nuggetmc/tplus/utils/Debugger.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/Debugger.java @@ -6,7 +6,7 @@ import net.nuggetmc.tplus.bot.Bot; import net.nuggetmc.tplus.bot.agent.Agent; import net.nuggetmc.tplus.bot.agent.legacyagent.LegacyAgent; import net.nuggetmc.tplus.bot.agent.legacyagent.ai.IntelligenceAgent; -import net.nuggetmc.tplus.bot.agent.legacyagent.ai.NeuralNetwork; +import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.command.commands.AICommand; import org.bukkit.*; import org.bukkit.command.CommandSender; diff --git a/src/main/java/net/nuggetmc/tplus/utils/ItemUtils.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/ItemUtils.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/utils/ItemUtils.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/ItemUtils.java diff --git a/src/main/java/net/nuggetmc/tplus/utils/MojangAPI.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/MojangAPI.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/utils/MojangAPI.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/MojangAPI.java diff --git a/src/main/java/net/nuggetmc/tplus/utils/PlayerUtils.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/PlayerUtils.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/utils/PlayerUtils.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/PlayerUtils.java diff --git a/src/main/java/net/nuggetmc/tplus/utils/Singularity.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/Singularity.java similarity index 100% rename from src/main/java/net/nuggetmc/tplus/utils/Singularity.java rename to TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/utils/Singularity.java diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..d7f087e --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + id("java") +} + +group = "net.tplus" +version = "3.1-BETA" + +repositories { + mavenCentral() +} + +dependencies { + +} + +tasks.getByName("test") { + useJUnitPlatform() +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 9deaa4b..0000000 --- a/pom.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - 4.0.0 - net.nuggetmc - TerminatorPlus - 3.1-BETA - TerminatorPlus - - - UTF-8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - 8 - 8 - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - - package - - shade - - - - - true - shaded - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.3.1 - - - net.md-5 - specialsource-maven-plugin - 1.2.2 - - - package - - remap - - remap-obf - - org.spigotmc:minecraft-server:1.18.1-R0.1-SNAPSHOT:txt:maps-mojang - true - org.spigotmc:spigot:1.18.1-R0.1-SNAPSHOT:jar:remapped-mojang - true - remapped-obf - - - - package - - remap - - remap-spigot - - ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar - org.spigotmc:minecraft-server:1.18.1-R0.1-SNAPSHOT:csrg:maps-spigot - org.spigotmc:spigot:1.18.1-R0.1-SNAPSHOT:jar:remapped-obf - - - - - - - - src/main/resources - true - - - - - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - dre-repo - https://erethon.de/repo/ - - - - - - - org.spigotmc - spigot - 1.18.1-R0.1-SNAPSHOT - remapped-mojang - provided - - - diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..480e09f --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + gradlePluginPortal() + maven("https://repo.papermc.io/repository/maven-public/") + } +} + +rootProject.name = "TerminatorPlus" +include("TerminatorPlus-Plugin") +include("TerminatorPlus-API")