From 4843e25d64d9d38c3ccd77cf1483ebd7ac543654 Mon Sep 17 00:00:00 2001 From: TntTastisch Date: Sun, 8 Oct 2023 13:06:22 +0200 Subject: [PATCH] 1.0.4-f6f3eup --- .gitattributes | 2 - .gitignore | 109 +++++++++- BungeeMaintenanceSystem.iml | 20 -- META-INF/MANIFEST.MF | 2 - pom.xml | 80 +++++++ src/de/TntTastisch/Spigot/Maintenance.java | 204 ------------------ .../Spigot/commands/MaintenanceCMD.java | 152 ------------- .../de/TntTastisch/Spigot/Maintenance.java | 151 +++++++++++++ .../Spigot/commands/MaintenanceCMD.java | 148 +++++++++++++ .../Spigot/listener/ServerPingListener.java | 22 +- src/{ => main/resources}/bungee.yml | 2 +- src/{ => main/resources}/config.yml | 4 +- 12 files changed, 502 insertions(+), 394 deletions(-) delete mode 100644 .gitattributes delete mode 100644 BungeeMaintenanceSystem.iml delete mode 100644 META-INF/MANIFEST.MF create mode 100644 pom.xml delete mode 100644 src/de/TntTastisch/Spigot/Maintenance.java delete mode 100644 src/de/TntTastisch/Spigot/commands/MaintenanceCMD.java create mode 100644 src/main/java/de/TntTastisch/Spigot/Maintenance.java create mode 100644 src/main/java/de/TntTastisch/Spigot/commands/MaintenanceCMD.java rename src/{ => main/java}/de/TntTastisch/Spigot/listener/ServerPingListener.java (60%) rename src/{ => main/resources}/bungee.yml (67%) rename src/{ => main/resources}/config.yml (93%) diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index dfe0770..0000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/.gitignore b/.gitignore index a1c2a23..07e69ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,11 @@ +# User-specific stuff +.idea/ +*.ipr +*.iws + +# IntelliJ +out/ + # Compiled class file *.class @@ -7,9 +15,6 @@ # BlueJ files *.ctxt -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - # Package Files # *.jar *.war @@ -21,3 +26,101 @@ # 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 +.classpath +.settings/ +.project +bin/ +/target/ + +# Common working directory +run/ +.idea/discord.xml +.idea/inspectionProfiles/Project_Default.xml +.idea/misc.xml +.idea/vcs.xml +.idea/discord.xml +.idea/inspectionProfiles/Project_Default.xml +.idea/misc.xml +.idea/vcs.xml +.idea/encodings.xml +.idea/misc.xml diff --git a/BungeeMaintenanceSystem.iml b/BungeeMaintenanceSystem.iml deleted file mode 100644 index 62d474d..0000000 --- a/BungeeMaintenanceSystem.iml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF deleted file mode 100644 index 59499bc..0000000 --- a/META-INF/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 - diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..79b411d --- /dev/null +++ b/pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + de.tnttastisch.SpigotMC + BungeeMaintenanceSystem + 1.0.4 + + + 8 + 8 + UTF-8 + + + + + bungeecord-repo + https://oss.sonatype.org/content/repositories/snapshots + + + + + + net.md-5 + bungeecord-api + 1.8-SNAPSHOT + jar + provided + + + net.md-5 + bungeecord-api + 1.8-SNAPSHOT + javadoc + provided + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 8 + 8 + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.8 + + + install + + run + + + + + + + + + + + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/src/de/TntTastisch/Spigot/Maintenance.java b/src/de/TntTastisch/Spigot/Maintenance.java deleted file mode 100644 index 7671af5..0000000 --- a/src/de/TntTastisch/Spigot/Maintenance.java +++ /dev/null @@ -1,204 +0,0 @@ -package de.TntTastisch.Spigot; - -import de.TntTastisch.Spigot.commands.MaintenanceCMD; -import de.TntTastisch.Spigot.listener.ServerPingListener; -import net.md_5.bungee.BungeeCord; -import net.md_5.bungee.api.CommandSender; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.chat.TextComponent; -import net.md_5.bungee.api.connection.ProxiedPlayer; -import net.md_5.bungee.api.plugin.Command; -import net.md_5.bungee.api.plugin.Listener; -import net.md_5.bungee.api.plugin.Plugin; -import net.md_5.bungee.api.plugin.PluginManager; -import net.md_5.bungee.conf.Configuration; -import net.md_5.bungee.config.ConfigurationProvider; -import net.md_5.bungee.config.YamlConfiguration; - -import java.io.File; -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -public class Maintenance extends Plugin implements Listener { - - public static boolean maintenance; - - - public static String prefix; - public static String permissions; - public static String noperms; - public static String reloaded; - public static String version; - public static String maintenancejoin; - public static String reason; - public static String noreason; - - public static String MaintenanceKickMessage; - public static String MaintenanceMessage; - public static String Enabled; - public static String Disabled; - public static String alreadyEnabled; - public static String alreadyDisabled; - - public static String FirstMOTD; - public static String SecondMOTD; - public static String MaintenanceFirstMOTD; - public static String MaintenanceSecondMOTD; - - public static File file; - public static net.md_5.bungee.config.Configuration config; - - - @Override - public void onEnable() { - loadConfiguration(); - PluginManager pluginManager = BungeeCord.getInstance().getPluginManager(); - - pluginManager.registerCommand(this, new MaintenanceCMD()); - pluginManager.registerListener(this, new ServerPingListener()); - - - - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[] §aThis Plugin was successfully activated.")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[] §aAuthor: TntTastisch.")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[] §aVersion: " + getDescription().getVersion() + ".")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); - } - - @Override - public void onDisable() { - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[] §cThis Plugin was successfully deactivated.")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[] §cAuthor: TntTastisch.")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[] §cVersion: " + getDescription().getVersion() + ".")); - BungeeCord.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); - } - - public void loadConfiguration() { - if(!getDataFolder().exists()){ - getDataFolder().mkdir(); - } - - file = new File(getDataFolder().getPath(), "config.yml"); - - try { - if(!file.exists()) { - file.createNewFile(); - } - config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(file); - } catch (IOException e) { - - e.printStackTrace(); - } - - if(!config.contains("Maintenance.enable")) { - config.set("Maintenance.enable", false); - } - - if(!config.contains("Maintenance.prefix")) { - config.set("Maintenance.prefix", "&8[&4Maintenance&8] &7"); - } - - if(!config.contains("Maintenance.permissions")) { - config.set("Maintenance.permissions", "maintenance.use"); - } - - if(!config.contains("Maintenance.noperms")) { - config.set("Maintenance.noperms", "&cYou have no rights to this command."); - } - - if(!config.contains("Maintenance.reloaded")) { - config.set("Maintenance.reloaded", "&7The configuration was &asuccessfully &7reloaded."); - } - - if(!config.contains("Maintenance.maintenancejoin")) { - config.set("Maintenance.maintenancejoin", "maintenance.bypass"); - } - - if(!config.contains("Maintenance.reason")) { - config.set("Maintenance.reason", "&7Cunstruction"); - } - - if(!config.contains("Maintenance.noreason")) { - config.set("Maintenance.noreason", "&cPlease specify a maintenance reason!"); - } - - if(!config.contains("Messages.Version")) { - config.set("Messages.Version", "&4Maintenance"); - } - - if(!config.contains("Messages.MaintenanceKickMessage")) { - config.set("Messages.MaintenanceKickMessage", "&8>> &4ServerNetwork.com &8<<\n&7This network is now under maintenance\n\n&7Reason&8: &e%reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com"); - } - - if(!config.contains("Messages.MaintenanceMessage")) { - config.set("Messages.MaintenanceMessage", "&8>> &4ServerNetwork.com &8<<\n&7This network is currently under maintenance\n\n&7Reason&8: &e%reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com"); - } - - if(!config.contains("Messages.Enabled")) { - config.set("Messages.Enabled", "&7The maintenancemode was successfully &aenabled&7 for %reason%"); - } - - if(!config.contains("Messages.Disabled")) { - config.set("Messages.Disabled", "&7The maintenancemode was successfully &cdisabled&7."); - } - - if(!config.contains("Messages.alreadyEnable")) { - config.set("Messages.alreadyEnable", "&cThe maintenancemode is currently &aenabled&7."); - } - - if(!config.contains("Messages.alreadyDisabled")) { - config.set("Messages.alreadyDisabled", "&cThe maintenancemode is currently &cdisabled&7."); - } - - if(!config.contains("MOTD.FirstMOTD")) { - config.set("MOTD.FirstMOTD", "&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]"); - } - - if(!config.contains("MOTD.SecondMOTD")) { - config.set("MOTD.SecondMOTD", "&aWe are online again &8| &4Maintenance by TntTastisch"); - } - - if(!config.contains("MOTD.MaintenanceFirstMOTD")) { - config.set("MOTD.MaintenanceFirstMOTD", "&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]"); - } - - if(!config.contains("MOTD.MaintenanceSecondMOTD")) { - config.set("MOTD.MaintenanceSecondMOTD", "&8[&c!&8] &7This network is currently under &4maintenance&7!"); - } - - - - maintenance = config.getBoolean("Maintenance.enable"); - - prefix = config.getString("Maintenance.prefix").replaceAll("&", "§"); - permissions = config.getString("Maintenance.permissions").replaceAll("&", "§"); - noperms = config.getString("Maintenance.noperms").replaceAll("&", "§"); - reloaded = config.getString("Maintenance.reloaded").replaceAll("&", "§"); - version = config.getString("Messages.Version").replaceAll("&", "§"); - maintenancejoin = config.getString("Maintenance.maintenancejoin").replaceAll("&", "§"); - reason = config.getString("Maintenance.reason").replaceAll("&", "§"); - noreason = config.getString("Maintenance.noreason").replaceAll("&", "§"); - - MaintenanceKickMessage = config.getString("Messages.MaintenanceKickMessage").replaceAll("&", "§").replace("%reason%", reason); - MaintenanceMessage = config.getString("Messages.MaintenanceMessage").replaceAll("&", "§").replace("%reason%", reason); - Enabled = config.getString("Messages.Enabled").replaceAll("&", "§").replace("%reason%", reason); - Disabled = config.getString("Messages.Disabled").replaceAll("&", "§"); - alreadyEnabled = config.getString("Messages.alreadyEnable").replaceAll("&", "§"); - alreadyDisabled = config.getString("Messages.alreadyDisabled").replaceAll("&", "§"); - - FirstMOTD = config.getString("MOTD.FirstMOTD").replaceAll("&", "§"); - SecondMOTD = config.getString("MOTD.SecondMOTD").replaceAll("&", "§"); - MaintenanceFirstMOTD = config.getString("MOTD.MaintenanceFirstMOTD").replaceAll("&", "§"); - MaintenanceSecondMOTD = config.getString("MOTD.MaintenanceSecondMOTD").replaceAll("&", "§"); - - try { - ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file); - } catch (IOException e) { - e.printStackTrace(); - } - - } - -} diff --git a/src/de/TntTastisch/Spigot/commands/MaintenanceCMD.java b/src/de/TntTastisch/Spigot/commands/MaintenanceCMD.java deleted file mode 100644 index d0cffc3..0000000 --- a/src/de/TntTastisch/Spigot/commands/MaintenanceCMD.java +++ /dev/null @@ -1,152 +0,0 @@ -package de.TntTastisch.Spigot.commands; - -import de.TntTastisch.Spigot.Maintenance; -import net.md_5.bungee.BungeeCord; -import net.md_5.bungee.api.CommandSender; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.chat.TextComponent; -import net.md_5.bungee.api.connection.ProxiedPlayer; -import net.md_5.bungee.api.plugin.Command; -import net.md_5.bungee.config.ConfigurationProvider; -import net.md_5.bungee.config.YamlConfiguration; -import sun.applet.Main; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.charset.MalformedInputException; -import java.util.concurrent.TimeUnit; - -public class MaintenanceCMD extends Command { - - public MaintenanceCMD() { - super("maintenance"); - } - - @Override - public void execute(CommandSender commandSender, String[] strings) { - if (commandSender.hasPermission(Maintenance.permissions)) { - - - if (strings.length == 0) { - commandSender.sendMessage(new TextComponent("§8§m============§r§8[ §4§lMaintenance §8]§8§m============")); - commandSender.sendMessage(new TextComponent("§8>> §e/maintenance reload")); - commandSender.sendMessage(new TextComponent("§8>> §e/maintenance ")); - commandSender.sendMessage(new TextComponent("§8>> §e/maintenance off")); - commandSender.sendMessage(new TextComponent("§8§m============§r§8[ §4§lMaintenance §8]§8§m============")); - - } else if (strings.length == 1) { - - if (strings[0].equalsIgnoreCase("reload")) { - try { - Maintenance.config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(Maintenance.file); - } catch (IOException e) { - e.printStackTrace(); - } - - Maintenance.maintenance = Maintenance.config.getBoolean("Maintenance.enable"); - - Maintenance.prefix = Maintenance.config.getString("Maintenance.prefix").replaceAll("&", "§"); - Maintenance.permissions = Maintenance.config.getString("Maintenance.permissions").replaceAll("&", "§"); - Maintenance.noperms = Maintenance.config.getString("Maintenance.noperms").replaceAll("&", "§"); - Maintenance.reloaded = Maintenance.config.getString("Maintenance.reloaded").replaceAll("&", "§"); - Maintenance.version = Maintenance.config.getString("Messages.Version").replaceAll("&", "§"); - Maintenance.maintenancejoin = Maintenance.config.getString("Maintenance.maintenancejoin").replaceAll("&", "§"); - Maintenance.reason = Maintenance.config.getString("Maintenance.reason").replaceAll("&", "§"); - Maintenance.noreason = Maintenance.config.getString("Maintenance.noreason").replaceAll("&", "§"); - - Maintenance.MaintenanceKickMessage = Maintenance.config.getString("Messages.MaintenanceKickMessage").replaceAll("&", "§").replace("%reason%", Maintenance.reason); - Maintenance.MaintenanceMessage = Maintenance.config.getString("Messages.MaintenanceMessage").replaceAll("&", "§").replace("%reason%", Maintenance.reason); - Maintenance.Enabled = Maintenance.config.getString("Messages.Enabled").replaceAll("&", "§").replace("%reason%", Maintenance.reason); - Maintenance.Disabled = Maintenance.config.getString("Messages.Disabled").replaceAll("&", "§"); - Maintenance.alreadyEnabled = Maintenance.config.getString("Messages.alreadyEnable").replaceAll("&", "§"); - Maintenance.alreadyDisabled = Maintenance.config.getString("Messages.alreadyDisabled").replaceAll("&", "§"); - - Maintenance.FirstMOTD = Maintenance.config.getString("MOTD.FirstMOTD").replaceAll("&", "§"); - Maintenance.SecondMOTD = Maintenance.config.getString("MOTD.SecondMOTD").replaceAll("&", "§"); - Maintenance.MaintenanceFirstMOTD = Maintenance.config.getString("MOTD.MaintenanceFirstMOTD").replaceAll("&", "§"); - Maintenance.MaintenanceSecondMOTD = Maintenance.config.getString("MOTD.MaintenanceSecondMOTD").replaceAll("&", "§"); - - commandSender.sendMessage(Maintenance.prefix + Maintenance.reloaded); - - } else if (strings[0].equalsIgnoreCase("off")) { - if (!Maintenance.config.getBoolean("Maintenance.enable") == false) { - Maintenance.config.set("Maintenance.enable", false); - Maintenance.maintenance = false; - try { - ConfigurationProvider.getProvider(YamlConfiguration.class).save(Maintenance.config, Maintenance.file); - } catch (IOException e) { - e.printStackTrace(); - } - ProxyServer.getInstance().broadcast(new TextComponent(Maintenance.prefix + Maintenance.Disabled)); - } else { - commandSender.sendMessage(Maintenance.prefix + Maintenance.alreadyDisabled); - } - } else { - String reason = strings[0]; - if (reason != null) { - if (!Maintenance.config.getBoolean("Maintenance.enable") == true) { - - Maintenance.config.set("Maintenance.enable", true); - Maintenance.config.set("Maintenance.reason", reason); - Maintenance.maintenance = true; - - try { - ConfigurationProvider.getProvider(YamlConfiguration.class).save(Maintenance.config, Maintenance.file); - } catch (IOException e) { - e.printStackTrace(); - } - - try { - Maintenance.config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(Maintenance.file); - } catch (IOException e) { - e.printStackTrace(); - } - - Maintenance.maintenance = Maintenance.config.getBoolean("Maintenance.enable"); - - Maintenance.prefix = Maintenance.config.getString("Maintenance.prefix").replaceAll("&", "§"); - Maintenance.permissions = Maintenance.config.getString("Maintenance.permissions").replaceAll("&", "§"); - Maintenance.noperms = Maintenance.config.getString("Maintenance.noperms").replaceAll("&", "§"); - Maintenance.reloaded = Maintenance.config.getString("Maintenance.reloaded").replaceAll("&", "§"); - Maintenance.version = Maintenance.config.getString("Messages.Version").replaceAll("&", "§"); - Maintenance.maintenancejoin = Maintenance.config.getString("Maintenance.maintenancejoin").replaceAll("&", "§"); - Maintenance.reason = Maintenance.config.getString("Maintenance.reason").replaceAll("&", "§"); - Maintenance.noreason = Maintenance.config.getString("Maintenance.noreason").replaceAll("&", "§"); - - Maintenance.MaintenanceKickMessage = Maintenance.config.getString("Messages.MaintenanceKickMessage").replaceAll("&", "§").replace("%reason%", Maintenance.reason); - Maintenance.MaintenanceMessage = Maintenance.config.getString("Messages.MaintenanceMessage").replaceAll("&", "§").replace("%reason%", Maintenance.reason); - Maintenance.Enabled = Maintenance.config.getString("Messages.Enabled").replaceAll("&", "§").replace("%reason%", Maintenance.reason); - Maintenance.Disabled = Maintenance.config.getString("Messages.Disabled").replaceAll("&", "§"); - Maintenance.alreadyEnabled = Maintenance.config.getString("Messages.alreadyEnable").replaceAll("&", "§"); - Maintenance.alreadyDisabled = Maintenance.config.getString("Messages.alreadyDisabled").replaceAll("&", "§"); - - Maintenance.FirstMOTD = Maintenance.config.getString("MOTD.FirstMOTD").replaceAll("&", "§"); - Maintenance.SecondMOTD = Maintenance.config.getString("MOTD.SecondMOTD").replaceAll("&", "§"); - Maintenance.MaintenanceFirstMOTD = Maintenance.config.getString("MOTD.MaintenanceFirstMOTD").replaceAll("&", "§"); - Maintenance.MaintenanceSecondMOTD = Maintenance.config.getString("MOTD.MaintenanceSecondMOTD").replaceAll("&", "§"); - - - for (ProxiedPlayer all : ProxyServer.getInstance().getPlayers()) { - if (!all.hasPermission(Maintenance.maintenancejoin) || !all.hasPermission(Maintenance.permissions)) { - - all.disconnect(new TextComponent(Maintenance.MaintenanceKickMessage)); - - } - } - - - ProxyServer.getInstance().broadcast(new TextComponent(Maintenance.prefix + Maintenance.Enabled)); - } else { - commandSender.sendMessage(Maintenance.prefix + Maintenance.alreadyEnabled); - } - } else { - commandSender.sendMessage(Maintenance.prefix + Maintenance.noreason); - } - } - } - } else { - commandSender.sendMessage(Maintenance.prefix + Maintenance.noperms); - } - } -} diff --git a/src/main/java/de/TntTastisch/Spigot/Maintenance.java b/src/main/java/de/TntTastisch/Spigot/Maintenance.java new file mode 100644 index 0000000..7163fe8 --- /dev/null +++ b/src/main/java/de/TntTastisch/Spigot/Maintenance.java @@ -0,0 +1,151 @@ +package de.TntTastisch.Spigot; + +import de.TntTastisch.Spigot.commands.MaintenanceCMD; +import de.TntTastisch.Spigot.listener.ServerPingListener; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.api.plugin.Plugin; +import net.md_5.bungee.api.plugin.PluginManager; +import net.md_5.bungee.config.Configuration; +import net.md_5.bungee.config.ConfigurationProvider; +import net.md_5.bungee.config.YamlConfiguration; + +import java.io.File; +import java.io.IOException; + +public class Maintenance extends Plugin implements Listener { + + private static Maintenance instance; + + public static boolean maintenance; + + public static String prefix; + public static String permissions; + public static String noperms; + public static String reloaded; + public static String version; + public static String maintenancejoin; + public static String reason; + public static String noreason; + + public static String MaintenanceKickMessage; + public static String MaintenanceMessage; + public static String Enabled; + public static String Disabled; + public static String alreadyEnabled; + public static String alreadyDisabled; + public static String motdEnable; + public static String motdDisable; + + + public static boolean motdEnabled; + public static String FirstMOTD; + public static String SecondMOTD; + public static String MaintenanceFirstMOTD; + public static String MaintenanceSecondMOTD; + + public static File file; + public static Configuration config; + + + @Override + public void onEnable() { + instance = this; + loadConfiguration(); + PluginManager pluginManager = ProxyServer.getInstance().getPluginManager(); + + pluginManager.registerCommand(this, new MaintenanceCMD()); + pluginManager.registerListener(this, new ServerPingListener()); + + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[] §aThis Plugin was successfully activated.")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[] §aAuthor: TntTastisch.")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[] §aVersion: " + getDescription().getVersion() + ".")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); + } + + @Override + public void onDisable() { + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[] §cThis Plugin was successfully deactivated.")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[] §cAuthor: TntTastisch.")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[] §cVersion: " + getDescription().getVersion() + ".")); + ProxyServer.getInstance().getConsole().sendMessage(new TextComponent("[]===========[ Maintenance ]===========[]")); + } + + private void loadConfiguration() { + if (!getDataFolder().exists()) getDataFolder().mkdir(); + + file = new File(getDataFolder().getPath(), "config.yml"); + + try { + if (!file.exists()) { + file.createNewFile(); + createConfigurationSection(file); + } + config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(file); + } catch (IOException e) { + e.printStackTrace(); + } + loadVariables(); + } + + private void createConfigurationSection(File file) throws IOException { + config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(file); + config.set("Maintenance.enable", false); + config.set("Maintenance.prefix", "&8[&4Maintenance&8] &7"); + config.set("Maintenance.permissions", "maintenance.use"); + config.set("Maintenance.noperms", "&cYou have no rights to this command."); + config.set("Maintenance.reloaded", "&7The configuration was &asuccessfully &7reloaded."); + config.set("Maintenance.maintenancejoin", "maintenance.bypass"); + config.set("Maintenance.reason", "&7Construction"); + config.set("Maintenance.noreason", "&cPlease specify a maintenance reason!"); + config.set("Messages.Version", "&4Maintenance"); + config.set("Messages.MaintenanceKickMessage", "&8>> &4ServerNetwork.com &8<<\n&7This network is now under maintenance\n\n&7Reason&8: &e%reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com"); + config.set("Messages.MaintenanceMessage", "&8>> &4ServerNetwork.com &8<<\n&7This network is currently under maintenance\n\n&7Reason&8: &e%reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com"); + config.set("Messages.Enabled", "&7The maintenancemode was successfully &aenabled&7 for %reason%"); + config.set("Messages.Disabled", "&7The maintenancemode was successfully &cdisabled&7."); + config.set("Messages.alreadyEnable", "&cThe maintenancemode is currently &aenabled&7."); + config.set("Messages.alreadyDisabled", "&cThe maintenancemode is currently &cdisabled&7."); + config.set("Messages.MOTD.Enabled", "&7MOTD was successfully &aenabled&7."); + config.set("Messages.MOTD.Disabled", "&7MOTD was successfully &cdisabled&7."); + config.set("MOTD.Enabled", true); + config.set("MOTD.FirstMOTD", "&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]"); + config.set("MOTD.SecondMOTD", "&aWe are online again &8| &4Maintenance by TntTastisch"); + config.set("MOTD.MaintenanceFirstMOTD", "&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]"); + config.set("MOTD.MaintenanceSecondMOTD", "&8[&c!&8] &7This network is currently under &4maintenance&7!"); + ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file); + } + + public void loadVariables() { + maintenance = config.getBoolean("Maintenance.enable"); + prefix = config.getString("Maintenance.prefix").replaceAll("&", "§"); + permissions = config.getString("Maintenance.permissions").replaceAll("&", "§"); + noperms = config.getString("Maintenance.noperms").replaceAll("&", "§"); + reloaded = config.getString("Maintenance.reloaded").replaceAll("&", "§"); + version = config.getString("Messages.Version").replaceAll("&", "§"); + maintenancejoin = config.getString("Maintenance.maintenancejoin").replaceAll("&", "§"); + reason = config.getString("Maintenance.reason").replaceAll("&", "§"); + noreason = config.getString("Maintenance.noreason").replaceAll("&", "§"); + + MaintenanceKickMessage = config.getString("Messages.MaintenanceKickMessage").replaceAll("&", "§"); + MaintenanceMessage = config.getString("Messages.MaintenanceMessage").replaceAll("&", "§"); + Enabled = config.getString("Messages.Enabled").replaceAll("&", "§"); + Disabled = config.getString("Messages.Disabled").replaceAll("&", "§"); + alreadyEnabled = config.getString("Messages.alreadyEnable").replaceAll("&", "§"); + alreadyDisabled = config.getString("Messages.alreadyDisabled").replaceAll("&", "§"); + motdEnable = config.getString("Messages.MOTD.Enabled").replaceAll("&", "§"); + motdDisable = config.getString("Messages.MOTD.Disabled").replaceAll("&", "§"); + + motdEnabled = config.getBoolean("MOTD.Enabled"); + FirstMOTD = config.getString("MOTD.FirstMOTD").replaceAll("&", "§"); + SecondMOTD = config.getString("MOTD.SecondMOTD").replaceAll("&", "§"); + MaintenanceFirstMOTD = config.getString("MOTD.MaintenanceFirstMOTD").replaceAll("&", "§"); + MaintenanceSecondMOTD = config.getString("MOTD.MaintenanceSecondMOTD").replaceAll("&", "§"); + } + + public static Maintenance getInstance() { + return instance; + } +} diff --git a/src/main/java/de/TntTastisch/Spigot/commands/MaintenanceCMD.java b/src/main/java/de/TntTastisch/Spigot/commands/MaintenanceCMD.java new file mode 100644 index 0000000..831da6c --- /dev/null +++ b/src/main/java/de/TntTastisch/Spigot/commands/MaintenanceCMD.java @@ -0,0 +1,148 @@ +package de.TntTastisch.Spigot.commands; + +import de.TntTastisch.Spigot.Maintenance; +import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.connection.ProxiedPlayer; +import net.md_5.bungee.api.plugin.Command; +import net.md_5.bungee.config.ConfigurationProvider; +import net.md_5.bungee.config.YamlConfiguration; + +import java.io.IOException; + +import static de.TntTastisch.Spigot.Maintenance.*; + +public class MaintenanceCMD extends Command { + + public MaintenanceCMD() { + super("maintenance"); + } + + @Override + public void execute(CommandSender commandSender, String[] strings) { + if (commandSender.hasPermission(permissions)) { + if (strings.length == 0) { + commandSender.sendMessage(new TextComponent("§8§m============§r§8[ §4§lMaintenance §8]§8§m============")); + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance reload")); + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance motd")); + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance ")); + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance off")); + commandSender.sendMessage(new TextComponent("§8§m============§r§8[ §4§lMaintenance §8]§8§m============")); + return; + } + + switch (strings[0].toLowerCase()) { + case "reload": { + if (strings.length != 1) { + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance reload")); + return; + } + + try { + config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(file); + } catch (IOException e) { + e.printStackTrace(); + } + + Maintenance.getInstance().loadVariables(); + commandSender.sendMessage(new TextComponent(prefix + reloaded)); + + break; + } + case "motd": { + if(strings.length != 1) { + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance motd")); + return; + } + + if (config.getBoolean("MOTD.Enabled")) { + config.set("MOTD.Enabled", false); + motdEnabled = false; + + try { + ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file); + } catch (IOException e) { + e.printStackTrace(); + } + commandSender.sendMessage(new TextComponent(prefix + motdDisable)); + return; + } + + config.set("MOTD.Enabled", true); + motdEnabled = true; + + try { + ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file); + } catch (IOException e) { + e.printStackTrace(); + } + commandSender.sendMessage(new TextComponent(prefix + motdEnable)); + + break; + } + case "off": { + if (strings.length != 1) { + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance off")); + return; + } + + if (!(config.getBoolean("Maintenance.enable"))) { + commandSender.sendMessage(prefix + alreadyDisabled); + return; + } + + config.set("Maintenance.enable", false); + maintenance = false; + try { + ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file); + } catch (IOException e) { + e.printStackTrace(); + } + ProxyServer.getInstance().broadcast(new TextComponent(prefix + Disabled)); + + break; + } + default: { + if (strings.length < 1) { + commandSender.sendMessage(new TextComponent("§8>> §e/maintenance ")); + return; + } + + String reason = ""; + for (int i = 0; i != strings.length; i++) { + reason += strings[i] + " "; + } + + if (config.getBoolean("Maintenance.enable")) { + commandSender.sendMessage(prefix + alreadyEnabled); + return; + } + + config.set("Maintenance.enable", true); + config.set("Maintenance.reason", reason); + maintenance = true; + + try { + ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file); + } catch (IOException e) { + e.printStackTrace(); + } + + for (ProxiedPlayer all : ProxyServer.getInstance().getPlayers()) { + if (!all.hasPermission(maintenancejoin) || !all.hasPermission(permissions)) { + all.disconnect(new TextComponent(MaintenanceKickMessage.replace("%reason%", reason))); + } + } + + + ProxyServer.getInstance().broadcast(new TextComponent(prefix + Enabled.replace("%reason%", reason))); + + break; + } + } + return; + } + commandSender.sendMessage(prefix + noperms); + } +} diff --git a/src/de/TntTastisch/Spigot/listener/ServerPingListener.java b/src/main/java/de/TntTastisch/Spigot/listener/ServerPingListener.java similarity index 60% rename from src/de/TntTastisch/Spigot/listener/ServerPingListener.java rename to src/main/java/de/TntTastisch/Spigot/listener/ServerPingListener.java index 81aa5c8..266b401 100644 --- a/src/de/TntTastisch/Spigot/listener/ServerPingListener.java +++ b/src/main/java/de/TntTastisch/Spigot/listener/ServerPingListener.java @@ -8,6 +8,8 @@ import net.md_5.bungee.api.event.*; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.event.EventHandler; +import static de.TntTastisch.Spigot.Maintenance.*; + public class ServerPingListener implements Listener { @SuppressWarnings("deprecation") @@ -16,14 +18,18 @@ public class ServerPingListener implements Listener { ServerPing ping = e.getResponse(); ServerPing.Players players = ping.getPlayers(); ServerPing.Protocol protocol = ping.getVersion(); - if (Maintenance.config.getBoolean("Maintenance.enable")) { + if (maintenance) { protocol.setProtocol(2); - ping.setDescription(Maintenance.MaintenanceFirstMOTD + "\n" + Maintenance.MaintenanceSecondMOTD); - protocol.setName(Maintenance.version); + if(motdEnabled) { + ping.setDescription(MaintenanceFirstMOTD + "\n" + MaintenanceSecondMOTD); + } + protocol.setName(version); ping.setVersion(protocol); ping.setPlayers(players); - } else if (!Maintenance.maintenance) { - ping.setDescription(Maintenance.FirstMOTD + "\n" + Maintenance.SecondMOTD); + return; + } + if(motdEnabled) { + ping.setDescription(FirstMOTD + "\n" + SecondMOTD); } } @@ -31,9 +37,9 @@ public class ServerPingListener implements Listener { public void onLogin(PostLoginEvent event) { ProxiedPlayer player = event.getPlayer(); - if (Maintenance.maintenance) { - if (!(player.hasPermission(Maintenance.permissions) || player.hasPermission(Maintenance.maintenancejoin))) { - player.disconnect(new TextComponent(Maintenance.MaintenanceMessage)); + if (maintenance) { + if (!(player.hasPermission(permissions) || player.hasPermission(maintenancejoin))) { + player.disconnect(new TextComponent(MaintenanceMessage.replace("%reason%", reason))); } } } diff --git a/src/bungee.yml b/src/main/resources/bungee.yml similarity index 67% rename from src/bungee.yml rename to src/main/resources/bungee.yml index dfa0c84..6e4f617 100644 --- a/src/bungee.yml +++ b/src/main/resources/bungee.yml @@ -1,5 +1,5 @@ name: Maintenance -version: 1.0.3 +version: ${project.version} author: TntTastisch main: de.TntTastisch.Spigot.Maintenance commands: diff --git a/src/config.yml b/src/main/resources/config.yml similarity index 93% rename from src/config.yml rename to src/main/resources/config.yml index cd0f7c0..429a40a 100644 --- a/src/config.yml +++ b/src/main/resources/config.yml @@ -1,4 +1,4 @@ -# Use %reason% for the Mainteance-Reason. +# Use %reason% for the Maintenance-Reason. Maintenance: enable: false prefix: '&8[&4Maintenance&8] &7' @@ -6,7 +6,7 @@ Maintenance: noperms: '&cYou have no rights to this command.' reloaded: '&7The configuration was &asuccessfully &7reloaded.' maintenancejoin: 'maintenance.bypass' - reason: '&7Cunstruction' + reason: 'Construction' noreason: '&cPlease specify a maintenance reason!' Messages: Version: '&4Maintenance'