diff --git a/TerminatorPlus-API/build.gradle.kts b/TerminatorPlus-API/build.gradle.kts index 644f10d..c9e0450 100644 --- a/TerminatorPlus-API/build.gradle.kts +++ b/TerminatorPlus-API/build.gradle.kts @@ -17,6 +17,6 @@ repositories { } dependencies { - compileOnly("io.papermc.paper:paper-api:1.18.1-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.19-R0.1-SNAPSHOT") compileOnly("com.mojang:authlib:3.2.38") } diff --git a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java index 4a5f1af..bbc8213 100644 --- a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java @@ -21,10 +21,7 @@ import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.regex.Pattern; // Yes, this code is very unoptimized, I know. @@ -45,6 +42,23 @@ public class LegacyAgent extends Agent { private final Map mining = new HashMap<>(); private final Set fallDamageCooldown = new HashSet<>(); public boolean offsets = true; + private List instantBreakBlocks = Arrays.asList( + Material.TALL_GRASS, + Material.GRASS, + Material.KELP_PLANT, + Material.WHEAT, + Material.POTATOES, + Material.CARROT, + Material.BEETROOT, + Material.SUGAR_CANE, + Material.SWEET_BERRY_BUSH, + Material.LILY_PAD, + Material.DANDELION, + Material.POPPY, + Material.ROSE_BUSH, + Material.PUMPKIN_STEM, + Material.MELON_STEM + ); private EnumTargetGoal goal; public LegacyAgent(BotManager manager, Plugin plugin) { @@ -863,6 +877,11 @@ public class LegacyAgent extends Agent { if (block.getType() == Material.BARRIER || block.getType() == Material.BEDROCK || block.getType() == Material.END_PORTAL_FRAME) return; + if (instantBreakBlocks.contains(block.getType())) { // instant break blocks + block.breakNaturally(); + return; + } + TerminatorPlusAPI.getInternalBridge().sendBlockDestructionPacket(crackList.get(block), block.getX(), block.getY(), block.getZ(), i); mining.put(this, (byte) (i + 1)); diff --git a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java index 4552196..3bf67bd 100644 --- a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/BotData.java @@ -2,7 +2,6 @@ package net.nuggetmc.tplus.api.agent.legacyagent.ai; import net.nuggetmc.tplus.api.Terminator; import net.nuggetmc.tplus.api.utils.MathUtils; -import org.apache.commons.lang.StringUtils; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -48,6 +47,6 @@ public class BotData { Collections.sort(strings); - return "BotData{" + StringUtils.join(strings, ",") + "}"; + return "BotData{" + NeuralNetwork.join(strings) + "}"; } } diff --git a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java index 3e4d638..5df3b02 100644 --- a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/ai/NeuralNetwork.java @@ -3,7 +3,6 @@ package net.nuggetmc.tplus.api.agent.legacyagent.ai; import net.md_5.bungee.api.ChatColor; import net.nuggetmc.tplus.api.utils.ChatUtils; import net.nuggetmc.tplus.api.utils.MathUtils; -import org.apache.commons.lang.StringUtils; import java.util.*; @@ -71,11 +70,19 @@ public class NeuralNetwork { return output; } + public static String join(Collection collection) { + StringBuilder sb = new StringBuilder(); + for (String s : collection) { + sb.append(s).append(", "); + } + return sb.substring(0, sb.length() - 2); + } + public String output() { List strings = new ArrayList<>(); nodes.forEach((type, node) -> strings.add(type.name().toLowerCase() + "=" + (node.check() ? ChatUtils.ON + "1" : ChatUtils.OFF + "0") + ChatColor.RESET)); Collections.sort(strings); - return "[" + StringUtils.join(strings, ", ") + "]"; + return "[" + join(strings) + "]"; } @Override @@ -86,9 +93,9 @@ public class NeuralNetwork { List values = new ArrayList<>(); values.add("name=\"" + nodeType.name().toLowerCase() + "\""); node.getValues().forEach((dataType, value) -> values.add(dataType.getShorthand() + "=" + MathUtils.round2Dec(value))); - strings.add("{" + StringUtils.join(values, ",") + "}"); + strings.add("{" + join(values) + "}"); }); - return "NeuralNetwork{nodes:[" + StringUtils.join(strings, ",") + "]}"; + return "NeuralNetwork{nodes:[" + join(strings) + "]}"; } } diff --git a/TerminatorPlus-Plugin/build.gradle.kts b/TerminatorPlus-Plugin/build.gradle.kts index 2ba9e8e..973e702 100644 --- a/TerminatorPlus-Plugin/build.gradle.kts +++ b/TerminatorPlus-Plugin/build.gradle.kts @@ -13,7 +13,7 @@ java { } dependencies { - paperDevBundle("1.18.1-R0.1-SNAPSHOT") + paperDevBundle("1.19-R0.1-SNAPSHOT") //add the TerminatorPlus-API module implementation(project(":TerminatorPlus-API")) diff --git a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java index 2de378c..5433812 100644 --- a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/Bot.java @@ -34,11 +34,11 @@ import net.nuggetmc.tplus.api.utils.*; 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; -import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_19_R1.CraftEquipmentSlot; +import org.bukkit.craftbukkit.v1_19_R1.CraftServer; +import org.bukkit.craftbukkit.v1_19_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Damageable; import org.bukkit.entity.Player; @@ -74,7 +74,7 @@ public class Bot extends ServerPlayer implements Terminator { private byte noFallTicks; private Bot(MinecraftServer minecraftServer, ServerLevel worldServer, GameProfile profile) { - super(minecraftServer, worldServer, profile); + super(minecraftServer, worldServer, profile, null); this.plugin = TerminatorPlus.getInstance(); this.scheduler = Bukkit.getScheduler(); diff --git a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManagerImpl.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManagerImpl.java index ea283ee..2b22674 100644 --- a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManagerImpl.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bot/BotManagerImpl.java @@ -10,7 +10,7 @@ import net.nuggetmc.tplus.api.agent.legacyagent.ai.NeuralNetwork; import net.nuggetmc.tplus.api.event.BotDeathEvent; import net.nuggetmc.tplus.api.utils.MojangAPI; import org.bukkit.*; -import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; diff --git a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bridge/InternalBridgeImpl.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bridge/InternalBridgeImpl.java index 6dfdb35..47ac36d 100644 --- a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bridge/InternalBridgeImpl.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/bridge/InternalBridgeImpl.java @@ -9,8 +9,8 @@ import net.nuggetmc.tplus.api.InternalBridge; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_19_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; import org.bukkit.entity.Player; public class InternalBridgeImpl implements InternalBridge { diff --git a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java index e723ba6..a7b78f0 100644 --- a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandHandler.java @@ -12,7 +12,7 @@ import net.nuggetmc.tplus.command.commands.MainCommand; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_18_R1.CraftServer; +import org.bukkit.craftbukkit.v1_19_R1.CraftServer; import java.lang.reflect.Method; import java.util.ArrayList; diff --git a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java index 5f66a5f..afafebb 100644 --- a/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java +++ b/TerminatorPlus-Plugin/src/main/java/net/nuggetmc/tplus/command/CommandInstance.java @@ -237,6 +237,7 @@ public abstract class CommandInstance extends BukkitCommand { if (args.length > 1) { CommandMethod commandMethod = methods.get(args[0]); + if (commandMethod == null) return new ArrayList<>(); Method autofiller = commandMethod.getAutofiller(); if (autofiller != null) {