From 56d02428a92a6d1133e1cb6ec200d529cd04cc79 Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Thu, 4 Sep 2025 19:08:05 +0200 Subject: [PATCH] initial --- .gitignore | 113 ++++++++++++++++++ pom.xml | 68 +++++++++++ .../rattatwinko/denyrestart/Denyrestart.java | 48 ++++++++ src/main/resources/config.yml | 1 + src/main/resources/plugin.yml | 4 + 5 files changed, 234 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/org/rattatwinko/denyrestart/Denyrestart.java create mode 100644 src/main/resources/config.yml create mode 100644 src/main/resources/plugin.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4788b4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,113 @@ +# User-specific stuff +.idea/ + +*.iml +*.ipr +*.iws + +# IntelliJ +out/ + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +target/ + +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next + +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar +.flattened-pom.xml + +# Common working directory +run/ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fc322af --- /dev/null +++ b/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + org.rattatwinko + denyrestart + 1.0 + jar + + denyrestart + + + 21 + UTF-8 + + + + clean package + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.3 + + + package + + shade + + + + + + + + src/main/resources + true + + + + + + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + + + + + + io.papermc.paper + paper-api + 1.21.8-R0.1-SNAPSHOT + provided + + + diff --git a/src/main/java/org/rattatwinko/denyrestart/Denyrestart.java b/src/main/java/org/rattatwinko/denyrestart/Denyrestart.java new file mode 100644 index 0000000..fff28be --- /dev/null +++ b/src/main/java/org/rattatwinko/denyrestart/Denyrestart.java @@ -0,0 +1,48 @@ +package org.rattatwinko.denyrestart; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.server.ServerCommandEvent; +import org.bukkit.plugin.java.JavaPlugin; + +public final class Denyrestart extends JavaPlugin implements Listener { + + @Override + public void onEnable() { + saveDefaultConfig(); + getServer().getPluginManager().registerEvents(this, this); + getLogger().info("denyrestart enabled!"); + } + + @EventHandler + // This only disables the command for the user / player + public void onCommand(PlayerCommandPreprocessEvent event) { + String msg = event.getMessage().toLowerCase(); + if (msg.startsWith("/restart")) { + event.setCancelled(true); + event.getPlayer().sendMessage("§cThe /restart command is disabled."); + } + } + + // This Method denys the server access to the Restart Command + // It is not recommended to use this. That's why it's disabled by default + // You can re-enable it by setting the bool to true instead of false + @EventHandler + public void onConsoleCommand(ServerCommandEvent event) { + + if (!getConfig().getBoolean("deny-server", false)) return; + + String cmd = event.getCommand().toLowerCase(); + if (cmd.startsWith("restart")) { + event.setCancelled(true); + event.getSender().sendMessage("§cThe restart command is disabled for both console and players!"); + } + } + + + @Override + public void onDisable() { + getLogger().info("denyrestart disabled!"); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..66b3bc3 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1 @@ +deny-server: false \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..817c32c --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,4 @@ +name: denyrestart +version: '1.0' +main: org.rattatwinko.denyrestart.Denyrestart +api-version: '1.21'