diff --git a/pom.xml b/pom.xml index 09b09c4e..bac16442 100644 --- a/pom.xml +++ b/pom.xml @@ -7,57 +7,56 @@ com.github.civclassic civclassic-parent - 1.0.0 + 1.0.1 - com.programmerdan.minecraft SimpleAdminHacks jar - 1.4.1 + 1.5.0 SimpleAdminHacks https://github.com/CivClassic/SimpleAdminHacks - com.destroystokyo.paper + io.papermc.paper paper - 1.16.5-R0.1-SNAPSHOT + 1.17.1-R0.1-SNAPSHOT provided - vg.civcraft.mc.civmodcore + com.github.civclassic CivModCore - 1.8.3 + 1.9.0 provided - vg.civcraft.mc.namelayer + com.github.civclassic NameLayer - 2.14.1 + 2.15.0 provided - vg.civcraft.mc.citadel + com.github.civclassic Citadel - 4.1.1 + 4.2.0 provided net.minelink CombatTagPlus - 1.3.3-SNAPSHOT + 1.4.0-SNAPSHOT provided com.comphenix.protocol ProtocolLib - 4.6.0 + 4.7.0 provided - com.programmerdan.minecraft + com.github.civclassic banstick - 1.2.2 + 1.3.0 provided diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacks.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacks.java index 621c04c3..25f0f59c 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacks.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacks.java @@ -34,13 +34,11 @@ public SimpleAdminHacks() { @Override public void onEnable() { - this.useNewCommandHandler = false; super.onEnable(); if (!this.config.parse()) { setEnabled(false); return; } - this.commands.init(); this.manager.loadAllHacks(); } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksConfig.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksConfig.java index d919b837..54fc658e 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksConfig.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksConfig.java @@ -1,14 +1,14 @@ package com.programmerdan.minecraft.simpleadminhacks; import org.bukkit.configuration.ConfigurationSection; -import vg.civcraft.mc.civmodcore.CoreConfigManager; +import vg.civcraft.mc.civmodcore.config.ConfigParser; /** * Baseline configuration for SimpleAdminHacks and parser for all actual Hacks. * * @author ProgrammerDan */ -public class SimpleAdminHacksConfig extends CoreConfigManager { +public class SimpleAdminHacksConfig extends ConfigParser { private static final int EXPECTED_CONFIG_LEVEL = 1; @@ -25,11 +25,11 @@ public SimpleAdminHacksConfig(final SimpleAdminHacks plugin) { protected boolean parseInternal(final ConfigurationSection config) { final int actual_config_level = config.getInt("configuration_file_version", -1); if (actual_config_level < 0 || actual_config_level > SimpleAdminHacksConfig.EXPECTED_CONFIG_LEVEL) { - this.plugin.severe("Invalid configuration version!"); + this.plugin.getLogger().severe("Invalid configuration version!"); return false; } this.broadcastPermission = config.getString("broadcast_permission", DEFAULT_BROADCAST_PERM); - this.plugin.info("Broadcast permission: " + this.broadcastPermission); + this.plugin.getLogger().info("Broadcast permission: " + this.broadcastPermission); return true; } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksSettingManager.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksSettingManager.java index 6ddfec95..a510dd96 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksSettingManager.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/SimpleAdminHacksSettingManager.java @@ -2,8 +2,8 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.playersettings.PlayerSettingAPI; -import vg.civcraft.mc.civmodcore.playersettings.gui.MenuSection; +import vg.civcraft.mc.civmodcore.players.settings.PlayerSettingAPI; +import vg.civcraft.mc.civmodcore.players.settings.gui.MenuSection; public class SimpleAdminHacksSettingManager { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/DisableAIConfig.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/DisableAIConfig.java index aaf2a909..49376194 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/DisableAIConfig.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/DisableAIConfig.java @@ -12,8 +12,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.event.entity.CreatureSpawnEvent; import vg.civcraft.mc.civmodcore.config.ConfigHelper; -import vg.civcraft.mc.civmodcore.util.CivLogger; -import vg.civcraft.mc.civmodcore.util.MoreCollectionUtils; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; public final class DisableAIConfig extends SimpleHackConfig { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/ElytraFeaturesConfig.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/ElytraFeaturesConfig.java index d49216a7..56a3943b 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/ElytraFeaturesConfig.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/configs/ElytraFeaturesConfig.java @@ -4,7 +4,7 @@ import com.programmerdan.minecraft.simpleadminhacks.framework.SimpleHackConfig; import javax.annotation.Nonnull; import org.bukkit.configuration.ConfigurationSection; -import vg.civcraft.mc.civmodcore.util.CivLogger; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; public final class ElytraFeaturesConfig extends SimpleHackConfig { private final CivLogger logger; diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/SimpleHack.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/SimpleHack.java index b601d432..fda04fc0 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/SimpleHack.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/SimpleHack.java @@ -1,19 +1,19 @@ package com.programmerdan.minecraft.simpleadminhacks.framework; -import com.google.common.base.Preconditions; import com.google.common.base.Strings; -import com.google.common.primitives.Primitives; import com.programmerdan.minecraft.simpleadminhacks.SimpleAdminHacks; import com.programmerdan.minecraft.simpleadminhacks.framework.autoload.AutoLoad; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; -import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.reflect.FieldUtils; import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.util.NumberConversions; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; /** * Baseline structure for a managed hack. @@ -22,15 +22,15 @@ */ public abstract class SimpleHack { + protected final CivLogger logger; protected final SimpleAdminHacks plugin; protected final T config; private boolean enabled; public SimpleHack(final SimpleAdminHacks plugin, final T config) { - Preconditions.checkNotNull(plugin, "Plugin cannot be null!"); - Preconditions.checkNotNull(config, "Config cannot be null!"); - this.plugin = plugin; - this.config = config; + this.logger = CivLogger.getLogger(getClass()); + this.plugin = Objects.requireNonNull(plugin, "Plugin cannot be null!"); + this.config = Objects.requireNonNull(config, "Config cannot be null!"); } public final SimpleAdminHacks plugin() { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/CommandRegistrar.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/CommandRegistrar.java index afe666ac..7152c280 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/CommandRegistrar.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/CommandRegistrar.java @@ -7,9 +7,9 @@ import com.programmerdan.minecraft.simpleadminhacks.framework.SimpleHackConfig; import java.util.ArrayList; import java.util.List; -import vg.civcraft.mc.civmodcore.command.AikarCommandManager; +import vg.civcraft.mc.civmodcore.commands.CommandManager; -public class CommandRegistrar extends AikarCommandManager { +public class CommandRegistrar extends CommandManager { public static final String ROOT_ALIAS = "hacks|hack|sah"; public static final String PERMISSION_HACKS = "simpleadmin.hacks"; @@ -17,7 +17,8 @@ public class CommandRegistrar extends AikarCommandManager { private final SimpleAdminHacks plugin; public CommandRegistrar(final SimpleAdminHacks plugin) { - super(plugin, false); + super(plugin); + init(); this.plugin = plugin; } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/HacksCommand.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/HacksCommand.java index 0a470232..14c160a1 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/HacksCommand.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/framework/commands/HacksCommand.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.framework.commands; +import co.aikar.commands.BaseCommand; import co.aikar.commands.InvalidCommandArgument; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandCompletion; @@ -15,10 +16,9 @@ import java.util.List; import net.md_5.bungee.api.ChatColor; import org.bukkit.command.CommandSender; -import vg.civcraft.mc.civmodcore.command.AikarCommand; @CommandPermission(CommandRegistrar.PERMISSION_HACKS) -public class HacksCommand extends AikarCommand { +public class HacksCommand extends BaseCommand { protected final SimpleAdminHacks plugin; diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/DisableAI.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/DisableAI.java index 1880d3a3..71a206ea 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/DisableAI.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/DisableAI.java @@ -4,13 +4,14 @@ import com.programmerdan.minecraft.simpleadminhacks.SimpleAdminHacks; import com.programmerdan.minecraft.simpleadminhacks.configs.DisableAIConfig; import com.programmerdan.minecraft.simpleadminhacks.framework.SimpleHack; +import net.minecraft.nbt.NBTTagCompound; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.craftbukkit.v1_17_R1.persistence.CraftPersistentDataContainer; import org.bukkit.entity.LivingEntity; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; -import vg.civcraft.mc.civmodcore.serialization.NBTCompound; public final class DisableAI extends SimpleHack implements Listener { @@ -42,7 +43,7 @@ public void disableModAI(final EntityAddToWorldEvent event) { return; } final var livingEntity = (LivingEntity) entity; - final var nbt = new NBTCompound(entity.getPersistentDataContainer()); + final var nbt = new NBTTagCompound(((CraftPersistentDataContainer) entity.getPersistentDataContainer()).getRaw()){}; if (!config().isLimitingEntityAI(entity.getType(), entity.getEntitySpawnReason())) { // If the entity was disabled before, re-enable it if (nbt.hasKey(HAS_BEEN_DISABLED_KEY)) { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameFixes.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameFixes.java index defdc11f..4c40980a 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameFixes.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameFixes.java @@ -1,18 +1,10 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks; -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.PacketAdapter; -import com.comphenix.protocol.events.PacketContainer; -import com.comphenix.protocol.events.PacketEvent; -import com.destroystokyo.paper.PaperConfig; import com.programmerdan.minecraft.simpleadminhacks.SimpleAdminHacks; import com.programmerdan.minecraft.simpleadminhacks.configs.GameFixesConfig; import com.programmerdan.minecraft.simpleadminhacks.framework.SimpleHack; import com.programmerdan.minecraft.simpleadminhacks.framework.utilities.PacketManager; -import java.nio.charset.StandardCharsets; import java.util.logging.Level; -import net.minecraft.server.v1_16_R3.ItemStack; -import net.minecraft.server.v1_16_R3.PacketPlayInBEdit; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -49,7 +41,6 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.inventory.InventoryHolder; -import vg.civcraft.mc.civmodcore.serialization.NBTCompound; public class GameFixes extends SimpleHack implements Listener { @@ -61,43 +52,6 @@ public GameFixes(SimpleAdminHacks plugin, GameFixesConfig config) { super(plugin, config); } - @Override - public void onEnable() { - super.onEnable(); - this.plugin.registerListener(this); - if (this.config.hardLimitBookPageSize()) { - this.protocol.addAdapter(new PacketAdapter(this.plugin, PacketType.Play.Client.B_EDIT) { - @Override - public void onPacketReceiving(final PacketEvent event) { - final PacketContainer packet = event.getPacket(); - final Player player = event.getPlayer(); - final String errorMessage = "DUPE ALERT! " + player.getName() + " sent an over sized book packet!"; - final int maxBookPageSize = PaperConfig.maxBookPageSize; - final int maxBookPageLength = 256 * 4; - // NMS ItemStack, not Bukkit - final ItemStack item = ((PacketPlayInBEdit) packet.getHandle()).b(); - final NBTCompound nbt = new NBTCompound(item.getTag()); - final String[] pages = nbt.getStringArray("pages"); - if (pages.length > maxBookPageSize) { - plugin().warning(errorMessage); - plugin().warning("- Too many pages! [" + pages.length + "/" + maxBookPageSize + "]"); - event.setCancelled(true); - return; - } - for (final String page : pages) { - final byte[] raw = page.getBytes(StandardCharsets.UTF_8); - if (raw.length > maxBookPageLength) { - plugin().warning(errorMessage); - plugin().warning("- Page too long! [" + raw.length + "/" + maxBookPageLength + "]"); - event.setCancelled(true); - return; - } - } - } - }); - } - } - @Override public void onDisable() { this.protocol.removeAllAdapters(); diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameTuning.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameTuning.java index 12aa977f..264ee05c 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameTuning.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/GameTuning.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; import java.util.logging.Level; +import javax.annotation.Nonnull; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -51,7 +52,6 @@ import org.bukkit.inventory.meta.SpawnEggMeta; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; /** @@ -466,7 +466,7 @@ public void onRain(WeatherChangeEvent event) { } @Override - public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) { + public boolean onCommand(@Nonnull CommandSender commandSender, @Nonnull Command command, @Nonnull String s, @Nonnull String[] strings) { Map blockLimits = config.getBlockEntityLimits(); StringBuilder stringB = new StringBuilder(); diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/InvControl.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/InvControl.java index 495cdc7d..17a99382 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/InvControl.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/InvControl.java @@ -6,9 +6,9 @@ import java.util.HashSet; import java.util.Set; import java.util.UUID; -import net.minecraft.server.v1_16_R3.NBTTagCompound; -import net.minecraft.server.v1_16_R3.NBTTagList; -import net.minecraft.server.v1_16_R3.WorldNBTStorage; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.level.storage.WorldNBTStorage; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -16,8 +16,8 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.craftbukkit.v1_16_R3.CraftServer; -import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftInventoryPlayer; +import org.bukkit.craftbukkit.v1_17_R1.CraftServer; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftInventoryPlayer; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryCloseEvent; @@ -68,7 +68,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } if (player == null && playerUID != null) { // Go deep into NBT. @SuppressWarnings("resource") - WorldNBTStorage storage = ((CraftServer) plugin().getServer()).getServer().worldNBTStorage; + WorldNBTStorage storage = ((CraftServer) plugin().getServer()).getServer().k; NBTTagCompound rawPlayer = storage.getPlayerData(playerUID.toString()); if (rawPlayer != null) { @@ -83,7 +83,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St int food = rawPlayer.getInt("foodLevel"); // Fun NMS inventory reconstruction from file data. - net.minecraft.server.v1_16_R3.PlayerInventory nms_pl_inv = new net.minecraft.server.v1_16_R3.PlayerInventory(null); + net.minecraft.world.entity.player.PlayerInventory nms_pl_inv = new net.minecraft.world.entity.player.PlayerInventory(null); NBTTagList inv = rawPlayer.getList("Inventory", rawPlayer.getTypeId()); nms_pl_inv.b(inv); // We use this to bypass the Craft code which requires a player object, unlike NMS. PlayerInventory pl_inv = new CraftInventoryPlayer(nms_pl_inv); diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiFastBreak.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiFastBreak.java index fb218bb9..e1af108c 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiFastBreak.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiFastBreak.java @@ -14,14 +14,14 @@ import java.util.Map; import java.util.TreeMap; import java.util.UUID; -import net.minecraft.server.v1_16_R3.IBlockData; +import net.minecraft.world.level.block.state.IBlockData; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack; -import org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_17_R1.util.CraftMagicNumbers; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -32,11 +32,11 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import vg.civcraft.mc.civmodcore.inventory.items.MaterialUtils; -import vg.civcraft.mc.civmodcore.ratelimiting.RateLimiter; -import vg.civcraft.mc.civmodcore.ratelimiting.RateLimiting; -import vg.civcraft.mc.civmodcore.util.TextUtil; -import vg.civcraft.mc.civmodcore.util.cooldowns.ICoolDownHandler; -import vg.civcraft.mc.civmodcore.util.cooldowns.MilliSecCoolDownHandler; +import vg.civcraft.mc.civmodcore.utilities.TextUtil; +import vg.civcraft.mc.civmodcore.utilities.cooldowns.ICoolDownHandler; +import vg.civcraft.mc.civmodcore.utilities.cooldowns.MilliSecCoolDownHandler; +import vg.civcraft.mc.civmodcore.utilities.ratelimiting.RateLimiter; +import vg.civcraft.mc.civmodcore.utilities.ratelimiting.RateLimiting; /** * Prevents "CivBreak" by denying continuous block break packets. @@ -215,7 +215,7 @@ private static int getTicksToBreak(final Block block, final Player player) { } private static IBlockData getNMSBlockData(final Material material) { - final net.minecraft.server.v1_16_R3.Block nmsBlock = CraftMagicNumbers.getBlock(material); + final net.minecraft.world.level.block.Block nmsBlock = CraftMagicNumbers.getBlock(material); if (nmsBlock == null) { return null; } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiStatisChamber.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiStatisChamber.java index 00364bcb..0674c3b0 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiStatisChamber.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AntiStatisChamber.java @@ -16,7 +16,7 @@ import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; -import vg.civcraft.mc.civmodcore.util.ConfigParsing; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; public class AntiStatisChamber extends BasicHack { @@ -43,7 +43,7 @@ public void onPlayerThrowPearl(PlayerLaunchProjectileEvent event) { @EventHandler(priority = EventPriority.LOWEST) public void onPearlLand(ProjectileHitEvent event) { - this.lifetimeValue = ConfigParsing.parseTime(this.pearlLifetime); + this.lifetimeValue = ConfigHelper.parseTime(this.pearlLifetime); Projectile projectile = event.getEntity(); if (!(projectile instanceof EnderPearl)) { return; diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AttrHider.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AttrHider.java index 5336a8b1..b159e31d 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AttrHider.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AttrHider.java @@ -137,7 +137,7 @@ public void onPacketSending(final PacketEvent event) { for (final WrappedWatchableObject object : cloned.getWatchableCollectionModifier().read(0)) { // Read the 8th field as a float as that's the living entity's health // https://wiki.vg/Entity_metadata#Living_Entity - if (object.getIndex() == 8) { + if (object.getIndex() == 9) { if ((float) object.getValue() > 0) { object.setValue(1f); // Half a heart } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AutoRespawn.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AutoRespawn.java index 5aef785e..98cfaacd 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AutoRespawn.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/AutoRespawn.java @@ -22,8 +22,8 @@ import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -import vg.civcraft.mc.civmodcore.util.MoreCollectionUtils; -import vg.civcraft.mc.civmodcore.util.TextUtil; +import vg.civcraft.mc.civmodcore.chat.ChatUtils; +import vg.civcraft.mc.civmodcore.utilities.MoreCollectionUtils; public final class AutoRespawn extends BasicHack { @@ -118,7 +118,7 @@ private void autoRespawnPlayer(final Player player) { if (Strings.isNullOrEmpty(message)) { return; } - player.sendMessage(TextUtil.parse(message)); + player.sendMessage(ChatUtils.parseColor(message)); } // ------------------------------------------------------------ diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BedLocator.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BedLocator.java index a43ae254..51501049 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BedLocator.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BedLocator.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; +import co.aikar.commands.BaseCommand; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandPermission; import co.aikar.commands.annotation.Description; @@ -10,7 +11,6 @@ import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; import vg.civcraft.mc.civmodcore.chat.Componentify; -import vg.civcraft.mc.civmodcore.command.AikarCommand; import vg.civcraft.mc.civmodcore.world.WorldUtils; public final class BedLocator extends BasicHack { @@ -30,12 +30,12 @@ public void onEnable() { @Override public void onDisable() { - plugin().getCommands().deregisterCommand(this.locatorCommand); + plugin().getCommands().unregisterCommand(this.locatorCommand); super.onDisable(); } @CommandPermission("simpleadmin.bedlocator") - public static class BedLocatorCommand extends AikarCommand { + public static class BedLocatorCommand extends BaseCommand { @CommandAlias("wheresmybed|locatebed") @Description("Tells you where your bed is") public void giveWand(final Player sender) { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BeeKeeping.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BeeKeeping.java index e4ba0bd0..8dc55786 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BeeKeeping.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/BeeKeeping.java @@ -19,19 +19,19 @@ import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.ChatColor; -import net.minecraft.server.v1_16_R3.EntityBee; -import net.minecraft.server.v1_16_R3.IEntityAngerable; -import net.minecraft.server.v1_16_R3.TileEntity; -import net.minecraft.server.v1_16_R3.TileEntityBeehive; -import net.minecraft.server.v1_16_R3.WorldServer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.level.WorldServer; +import net.minecraft.world.entity.animal.EntityBee; +import net.minecraft.world.level.block.entity.TileEntity; +import net.minecraft.world.level.block.entity.TileEntityBeehive; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_16_R3.CraftWorld; -import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock; -import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_17_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -45,8 +45,7 @@ import org.bukkit.inventory.ItemStack; import vg.civcraft.mc.civmodcore.chat.ChatUtils; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.serialization.NBTCompound; -import vg.civcraft.mc.civmodcore.util.MoreCollectionUtils; +import vg.civcraft.mc.civmodcore.utilities.MoreCollectionUtils; public final class BeeKeeping extends BasicHack { @@ -199,9 +198,9 @@ private static TileEntityBeehive getBeeHive(@Nonnull final Block block) { } private static List getBeesFromHive(@Nonnull final TileEntityBeehive hive) { - final NBTCompound nbt = new NBTCompound(); - hive.save(nbt.getRAW()); // Serialise onto the NBT compound - return Stream.of(nbt.getCompoundArray(BEES_LIST_KEY)) + final NBTTagCompound nbt = new NBTTagCompound(); + hive.save(nbt); // Serialise onto the NBT compound + return Stream.of(nbt.getCompound(BEES_LIST_KEY)) .map(bee -> bee.getCompound(BEE_DATA_KEY)) .map(BeeData::new) .collect(Collectors.toCollection(ArrayList::new)); @@ -211,7 +210,7 @@ private static final class BeeData { public final Component name; - public BeeData(@Nonnull final NBTCompound nbt) { + public BeeData(@Nonnull final NBTTagCompound nbt) { // Parse name final String rawName = nbt.getString(BEE_NAME_KEY); if (Strings.isNullOrEmpty(rawName)) { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DebugWand.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DebugWand.java index 8a78a073..7c3ff995 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DebugWand.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DebugWand.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; +import co.aikar.commands.BaseCommand; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandPermission; import co.aikar.commands.annotation.Description; @@ -7,12 +8,13 @@ import com.programmerdan.minecraft.simpleadminhacks.framework.BasicHack; import com.programmerdan.minecraft.simpleadminhacks.framework.BasicHackConfig; import java.util.Objects; +import net.minecraft.nbt.NBTTagCompound; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; -import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -20,10 +22,8 @@ import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.command.AikarCommand; -import vg.civcraft.mc.civmodcore.command.AikarCommandManager; +import vg.civcraft.mc.civmodcore.commands.CommandManager; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.serialization.NBTCompound; public final class DebugWand extends BasicHack { @@ -34,11 +34,11 @@ public final class DebugWand extends BasicHack { ItemUtils.setDisplayName(WAND, ChatColor.GOLD + "Block Wand"); } - private final AikarCommandManager commands; + private final CommandManager commands; public DebugWand(final SimpleAdminHacks plugin, final BasicHackConfig config) { super(plugin, config); - this.commands = new AikarCommandManager(plugin, false) { + this.commands = new CommandManager(plugin) { @Override public void registerCommands() { registerCommand(new WandCommand()); @@ -59,7 +59,7 @@ public void onDisable() { } @CommandPermission(PERMISSION) - public static class WandCommand extends AikarCommand { + public static class WandCommand extends BaseCommand { @CommandAlias("debugwand|dbwand") @Description("Creates a wand for debugging") public void giveWand(final Player sender) { @@ -117,11 +117,11 @@ public void onWandUsageOnEntity(final PlayerInteractEntityEvent event) { player.sendMessage(ChatColor.AQUA + "Rotation: " + ChatColor.YELLOW + "p:" + entityLocation.getPitch() + ", " + ChatColor.GOLD + "y:" + entityLocation.getYaw()); - final NBTCompound nbt = new NBTCompound(); - ((CraftEntity) entity).getHandle().save(nbt.getRAW()); + final NBTTagCompound nbt = new NBTTagCompound(); + ((CraftEntity) entity).getHandle().save(nbt); nbt.remove("Pos"); // Remove redundant position nbt.remove("Rotation"); // Remove redundant rotation - player.sendMessage(nbt.getRAW().toString()); + player.sendMessage(nbt.toString()); player.sendMessage(ChatColor.RED + "Data end."); event.setCancelled(true); } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DogFacts.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DogFacts.java index 1d5d191b..728c92a5 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DogFacts.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/DogFacts.java @@ -8,10 +8,11 @@ import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.playersettings.PlayerSettingAPI; -import vg.civcraft.mc.civmodcore.playersettings.gui.MenuSection; -import vg.civcraft.mc.civmodcore.playersettings.impl.BooleanSetting; -import vg.civcraft.mc.civmodcore.util.ConfigParsing; +import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; +import vg.civcraft.mc.civmodcore.players.settings.PlayerSettingAPI; +import vg.civcraft.mc.civmodcore.players.settings.gui.MenuSection; +import vg.civcraft.mc.civmodcore.players.settings.impl.BooleanSetting; public class DogFacts extends BasicHack { @@ -34,7 +35,7 @@ public void onEnable() { } public void startRunnable(List announcements){ - long interval = ConfigParsing.parseTimeAsTicks(intervalTime); + long interval = ConfigHelper.parseTimeAsTicks(intervalTime); int tickOffset = (int) (Math.random() * (interval)); Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin ,() -> { if (announcements.isEmpty()) { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/EventHandlerList.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/EventHandlerList.java index f88b6c5f..4a632182 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/EventHandlerList.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/EventHandlerList.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; +import co.aikar.commands.BaseCommand; import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.InvalidCommandArgument; import co.aikar.commands.annotation.CommandAlias; @@ -31,18 +32,18 @@ import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.RegisteredListener; -import vg.civcraft.mc.civmodcore.command.AikarCommand; -import vg.civcraft.mc.civmodcore.command.AikarCommandManager; +import vg.civcraft.mc.civmodcore.commands.CommandManager; +import vg.civcraft.mc.civmodcore.commands.TabComplete; public final class EventHandlerList extends BasicHack { - private final AikarCommandManager commands; + private final CommandManager commands; private final HandlersList handlers; public EventHandlerList(final SimpleAdminHacks plugin, final BasicHackConfig config) { super(plugin, config); this.handlers = new HandlersList(); - this.commands = new AikarCommandManager(plugin, false) { + this.commands = new CommandManager(plugin) { @Override public void registerCommands() { registerCommand(new HandlersCommand(handlers)); @@ -69,7 +70,7 @@ public void onDisable() { // ------------------------------------------------------------ @CommandPermission("simpleadmin.eventdebug") - private static final class HandlersCommand extends AikarCommand { + private static final class HandlersCommand extends BaseCommand { private final HandlersList handlers; diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/GoldBlockElevators.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/GoldBlockElevators.java index db21e738..f9b89517 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/GoldBlockElevators.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/GoldBlockElevators.java @@ -19,10 +19,10 @@ import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; -import vg.civcraft.mc.civmodcore.playersettings.PlayerSettingAPI; -import vg.civcraft.mc.civmodcore.playersettings.gui.MenuSection; -import vg.civcraft.mc.civmodcore.playersettings.impl.BooleanSetting; -import vg.civcraft.mc.civmodcore.util.DoubleInteractFixer; +import vg.civcraft.mc.civmodcore.players.settings.PlayerSettingAPI; +import vg.civcraft.mc.civmodcore.players.settings.gui.MenuSection; +import vg.civcraft.mc.civmodcore.players.settings.impl.BooleanSetting; +import vg.civcraft.mc.civmodcore.utilities.DoubleInteractFixer; public class GoldBlockElevators extends BasicHack { diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/OldEnchanting.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/OldEnchanting.java index ed3a0c65..f501358b 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/OldEnchanting.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/OldEnchanting.java @@ -10,13 +10,13 @@ import com.programmerdan.minecraft.simpleadminhacks.framework.autoload.AutoLoad; import com.programmerdan.minecraft.simpleadminhacks.framework.utilities.PacketManager; import java.lang.reflect.Field; -import java.lang.reflect.Modifier; import java.security.SecureRandom; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Random; -import net.minecraft.server.v1_16_R3.ContainerEnchantTable; +import net.minecraft.world.inventory.ContainerEnchantTable; +import java.util.logging.Level; import org.apache.commons.lang3.reflect.FieldUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -25,7 +25,7 @@ import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftInventoryView; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftInventoryView; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; @@ -67,8 +67,8 @@ import vg.civcraft.mc.civmodcore.entities.EntityUtils; import vg.civcraft.mc.civmodcore.inventory.InventoryUtils; import vg.civcraft.mc.civmodcore.inventory.RecipeManager; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; import vg.civcraft.mc.civmodcore.world.WorldUtils; public final class OldEnchanting extends BasicHack { @@ -150,13 +150,10 @@ public OldEnchanting(final SimpleAdminHacks plugin, final BasicHackConfig config Field randomiser = null; try { randomiser = FieldUtils.getDeclaredField(ContainerEnchantTable.class, "h", true); - final Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); - modifiersField.setInt(randomiser, randomiser.getModifiers() & ~Modifier.FINAL); } - catch (final Exception exception) { - plugin.warning("[OldEnchanting] An exception was thrown while trying to reflect the enchanting " + - "table's randomiser field.", exception); + catch (final Throwable throwable) { + this.logger.log(Level.WARNING, "An exception was thrown while trying to reflect the enchanting " + + "table's randomiser field.", throwable); } this.enchantingTableRandomiser = randomiser; // Setup entity xp modifiers @@ -167,22 +164,22 @@ public OldEnchanting(final SimpleAdminHacks plugin, final BasicHackConfig config public void onEnable() { super.onEnable(); if (this.experienceModifier < 0.0d) { - this.plugin.warning("[OldEnchanting] Experience modifier [" + this.experienceModifier + "] " + + this.logger.warning("[OldEnchanting] Experience modifier [" + this.experienceModifier + "] " + "is unsupported, defaulting to 0.2"); this.experienceModifier = 0.2d; } if (this.lootModifier < 0.0d) { - this.plugin.warning("[OldEnchanting] Loot modifier [" + this.lootModifier + "] " + + this.logger.warning("[OldEnchanting] Loot modifier [" + this.lootModifier + "] " + "is unsupported, defaulting to 1.5"); this.lootModifier = 1.5d; } if (this.maxRepairCost < 2 && this.maxRepairCost != -1) { - this.plugin.warning("[OldEnchanting] Maximum repair cost [" + this.maxRepairCost + "] " + + this.logger.warning("[OldEnchanting] Maximum repair cost [" + this.maxRepairCost + "] " + "is unsupported, defaulting to 33"); this.maxRepairCost = 33; } if (this.expPerBottle < -1) { - this.plugin.warning("[OldEnchanting] Experience per bottle [" + this.expPerBottle + "] " + + this.logger.warning("[OldEnchanting] Experience per bottle [" + this.expPerBottle + "] " + "is unsupported, defaulting to 10"); this.expPerBottle = 10; } @@ -193,12 +190,12 @@ public void onEnable() { for (final String key : modifiers.getKeys(false)) { final EntityType type = EntityUtils.getEntityType(key); if (type == null) { - this.plugin.warning("[OldEnchanting] EntityType [" + key + "] does not exist, skipping."); + this.logger.warning("[OldEnchanting] EntityType [" + key + "] does not exist, skipping."); continue; } double modifier = modifiers.getDouble(key, 1.0d); if (modifier < 0.0d) { - this.plugin.warning("[OldEnchanting] Experience modifier [" + modifier + "] for " + + this.logger.warning("[OldEnchanting] Experience modifier [" + modifier + "] for " + "[" + key + "] is unsupported, defaulting to 1.0"); modifier = 1.0d; } @@ -480,10 +477,11 @@ public void onPrepareItemEnchant(final PrepareItemEnchantEvent event) { final ContainerEnchantTable table = (ContainerEnchantTable) view.getHandle(); if (this.randomiseEnchants) { try { - this.enchantingTableRandomiser.set(table, RANDOM); + final Random tableRandom = (Random) this.enchantingTableRandomiser.get(table); + tableRandom.nextDouble(); } - catch (final IllegalArgumentException | IllegalAccessException exception) { - this.plugin.warning("[OldEnchanting] Could not set randomiser!", exception); + catch (final IllegalArgumentException | IllegalAccessException | ClassCastException throwable) { + this.logger.log(Level.WARNING, "Could not set randomiser!", throwable); } } } diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerRevive.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerRevive.java index 396390db..dde35773 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerRevive.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerRevive.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; +import co.aikar.commands.BaseCommand; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.CommandPermission; @@ -14,16 +15,15 @@ import org.bukkit.Location; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.AikarCommand; -import vg.civcraft.mc.civmodcore.command.AikarCommandManager; +import vg.civcraft.mc.civmodcore.commands.CommandManager; public final class PlayerRevive extends BasicHack { - private final AikarCommandManager commands; + private final CommandManager commands; public PlayerRevive(final SimpleAdminHacks plugin, final BasicHackConfig config) { super(plugin, config); - this.commands = new AikarCommandManager(plugin, false) { + this.commands = new CommandManager(plugin) { @Override public void registerCommands() { registerCommand(new ReviveCommand()); @@ -44,7 +44,7 @@ public void onDisable() { } @CommandPermission("simpleadmin.revive") - public static class ReviveCommand extends AikarCommand { + public static class ReviveCommand extends BaseCommand { @CommandAlias("revive|respawn|resurrect|ress") @Syntax("") diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerStatistics.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerStatistics.java index dce7c97a..a99cdc43 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerStatistics.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/PlayerStatistics.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; +import co.aikar.commands.BaseCommand; import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandCompletion; @@ -21,16 +22,16 @@ import org.bukkit.Statistic; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.AikarCommand; -import vg.civcraft.mc.civmodcore.command.AikarCommandManager; +import vg.civcraft.mc.civmodcore.commands.CommandManager; +import vg.civcraft.mc.civmodcore.commands.TabComplete; public final class PlayerStatistics extends BasicHack { - private final AikarCommandManager commands; + private final CommandManager commands; public PlayerStatistics(final SimpleAdminHacks plugin, final BasicHackConfig config) { super(plugin, config); - this.commands = new AikarCommandManager(plugin(), false) { + this.commands = new CommandManager(plugin()) { @Override public void registerCommands() { registerCommand(new StatsCommand()); @@ -51,7 +52,7 @@ public void onDisable() { } @CommandPermission("simpleadmin.stats") - public static class StatsCommand extends AikarCommand { + public static class StatsCommand extends BaseCommand { public static final String ALIAS = "stats|stat|statistic|statistics"; diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/ShipOutOfLuck.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/ShipOutOfLuck.java index 3d1df18a..4a07b541 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/ShipOutOfLuck.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/ShipOutOfLuck.java @@ -11,7 +11,7 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import net.minecraft.server.v1_16_R3.BlockPosition; +import net.minecraft.core.BlockPosition; import org.apache.commons.collections4.CollectionUtils; import org.bukkit.Material; import org.bukkit.Tag; diff --git a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/StrayStats.java b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/StrayStats.java index a78a5464..14c72d8d 100644 --- a/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/StrayStats.java +++ b/src/main/java/com/programmerdan/minecraft/simpleadminhacks/hacks/basic/StrayStats.java @@ -1,5 +1,6 @@ package com.programmerdan.minecraft.simpleadminhacks.hacks.basic; +import co.aikar.commands.BaseCommand; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandPermission; import com.programmerdan.minecraft.banstick.BanStick; @@ -16,7 +17,6 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; -import vg.civcraft.mc.civmodcore.command.AikarCommand; public final class StrayStats extends BasicHack { @@ -39,7 +39,7 @@ public void onEnable() { @Override public void onDisable() { - this.plugin.getCommands().deregisterCommand(this.statsCommand); + this.plugin.getCommands().unregisterCommand(this.statsCommand); super.onDisable(); } @@ -49,7 +49,7 @@ public void onDisable() { private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - private class StatsCommand extends AikarCommand { + private class StatsCommand extends BaseCommand { @CommandAlias("compile_player_join_statistics") @CommandPermission("simpleadmin.stats") public void compileStatistics(final CommandSender sender) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 109fc51b..f86ba701 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,7 +5,7 @@ authors: [ProgrammerDan, Maxopoly] version: ${project.version} depend: [CivModCore] softdepend: [CombatTagPlus, NameLayer, Citadel, ProtocolLib] -api-version: 1.16 +api-version: 1.17 commands: hacks: description: Shows the various hacks and fixes supported by this plugin and controls them