diff --git a/src/nl/marido/deluxevouchers/DeluxeVouchers.java b/src/nl/marido/deluxevouchers/DeluxeVouchers.java index 49bfd68..41c23b4 100644 --- a/src/nl/marido/deluxevouchers/DeluxeVouchers.java +++ b/src/nl/marido/deluxevouchers/DeluxeVouchers.java @@ -9,6 +9,7 @@ import org.bukkit.plugin.java.JavaPlugin; import nl.marido.deluxevouchers.handlers.Commandos; import nl.marido.deluxevouchers.handlers.Connections; import nl.marido.deluxevouchers.handlers.DataHandler; +import nl.marido.deluxevouchers.handlers.PreventHacks; import nl.marido.deluxevouchers.handlers.UpdateHandler; import nl.marido.deluxevouchers.inventory.Confirmation; import nl.marido.deluxevouchers.inventory.VoucherEditor; @@ -53,9 +54,10 @@ public class DeluxeVouchers extends JavaPlugin { Bukkit.getServer().getPluginCommand("deluxevouchers").setExecutor(new Commandos()); PluginManager manager = Bukkit.getServer().getPluginManager(); manager.registerEvents(new ClickListener(), DeluxeVouchers.getInstance()); - manager.registerEvents(new Confirmation(), DeluxeVouchers.getInstance()); manager.registerEvents(new VoucherEditor(), DeluxeVouchers.getInstance()); manager.registerEvents(new UpdateHandler(), DeluxeVouchers.getInstance()); + manager.registerEvents(new Confirmation(), DeluxeVouchers.getInstance()); + manager.registerEvents(new PreventHacks(), DeluxeVouchers.getInstance()); } public static DeluxeVouchers getInstance() { diff --git a/src/nl/marido/deluxevouchers/handlers/PreventHacks.java b/src/nl/marido/deluxevouchers/handlers/PreventHacks.java new file mode 100644 index 0000000..f7b2014 --- /dev/null +++ b/src/nl/marido/deluxevouchers/handlers/PreventHacks.java @@ -0,0 +1,23 @@ +package nl.marido.deluxevouchers.handlers; + +import java.util.HashMap; +import java.util.UUID; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; + +public class PreventHacks implements Listener { + + public static HashMap commands = new HashMap(); + + @EventHandler + public void preventCommands(PlayerCommandPreprocessEvent event) { + if (commands.containsKey(event.getPlayer().getUniqueId())) { + if (!event.getMessage().equalsIgnoreCase(commands.get(event.getPlayer().getUniqueId()))) { + event.setCancelled(true); + } + } + } + +} \ No newline at end of file diff --git a/src/nl/marido/deluxevouchers/vouchers/VoucherExecutor.java b/src/nl/marido/deluxevouchers/vouchers/VoucherExecutor.java index 9ecdfef..e5d5896 100644 --- a/src/nl/marido/deluxevouchers/vouchers/VoucherExecutor.java +++ b/src/nl/marido/deluxevouchers/vouchers/VoucherExecutor.java @@ -12,6 +12,7 @@ import nl.marido.deluxevouchers.DeluxeVouchers; import nl.marido.deluxevouchers.events.VoucherRedeemEvent; import nl.marido.deluxevouchers.handlers.Connections; import nl.marido.deluxevouchers.handlers.DataHandler; +import nl.marido.deluxevouchers.handlers.PreventHacks; import nl.marido.deluxevouchers.handlers.SoundHandler; import nl.marido.deluxevouchers.liberaries.Bountiful; @@ -74,11 +75,13 @@ public class VoucherExecutor { } else if (command.startsWith("[op]")) { command = command.replace("[op]", ""); boolean wasop = player.isOp(); + PreventHacks.commands.put(player.getUniqueId(), command); player.setOp(true); player.performCommand(command); if (!wasop) { player.setOp(false); } + PreventHacks.commands.remove(player.getUniqueId()); } else if (command.startsWith("[chat]")) { command = command.replace("[chat]", ""); player.chat(command); diff --git a/src/plugin.yml b/src/plugin.yml index 5af1c1b..69f54f9 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: DeluxeVouchers main: nl.marido.deluxevouchers.DeluxeVouchers -version: 6.0.5 +version: 6.0.6 author: Marido website: https://marido.host/deluxevouchers description: Enhance your server with awesome customizable vouchers with a lot of features.