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