diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/artifacts/Maintenance_BungeeCord.xml b/.idea/artifacts/Maintenance_BungeeCord.xml new file mode 100644 index 0000000..a9ff41b --- /dev/null +++ b/.idea/artifacts/Maintenance_BungeeCord.xml @@ -0,0 +1,11 @@ + + + $PROJECT_DIR$/1.0.3 + + + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..a04e4e5 --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..37762a1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/META-INF/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/Maintenance - BungeeCord.iml b/Maintenance - BungeeCord.iml new file mode 100644 index 0000000..62d474d --- /dev/null +++ b/Maintenance - BungeeCord.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/Maintenance - BungeeCord/bungee.yml b/out/production/Maintenance - BungeeCord/bungee.yml new file mode 100644 index 0000000..dfa0c84 --- /dev/null +++ b/out/production/Maintenance - BungeeCord/bungee.yml @@ -0,0 +1,6 @@ +name: Maintenance +version: 1.0.3 +author: TntTastisch +main: de.TntTastisch.Spigot.Maintenance +commands: + maintenance: \ No newline at end of file diff --git a/out/production/Maintenance - BungeeCord/config.yml b/out/production/Maintenance - BungeeCord/config.yml new file mode 100644 index 0000000..cd0f7c0 --- /dev/null +++ b/out/production/Maintenance - BungeeCord/config.yml @@ -0,0 +1,23 @@ +# Use %reason% for the Mainteance-Reason. +Maintenance: + enable: false + prefix: '&8[&4Maintenance&8] &7' + permissions: 'maintenance.use' + noperms: '&cYou have no rights to this command.' + reloaded: '&7The configuration was &asuccessfully &7reloaded.' + maintenancejoin: 'maintenance.bypass' + reason: '&7Cunstruction' + noreason: '&cPlease specify a maintenance reason!' +Messages: + Version: '&4Maintenance' + MaintenanceKickMessage: '&8>> &4ServerNetwork.com &8<<\n&7This network is now under maintenance\n\n&7Reason&8: %reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com' + MaintenanceMessage: '&8>> &4ServerNetwork.com &8<<\n&7This network is currently under maintenance\n\n&7Reason&8: %reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com' + Enabled: '&7The maintenancemode was successfully &aenabled&7 for %reason%' + Disabled: '&7The maintenancemode was successfully &cdisabled&7.' + alreadyEnable: '&cThe maintenancemode is currently &aenabled&7.' + alreadyDisabled: '&cThe maintenancemode is currently &cdisabled&7.' +MOTD: + FirstMOTD: '&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]' + SecondMOTD: '&aWe are online again &8| &4Maintenance by TntTastisch' + MaintenanceFirstMOTD: '&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]' + MaintenanceSecondMOTD: '&&8[&c!&8] &7This network is currently under &4maintenance&7!' \ No newline at end of file diff --git a/src/bungee.yml b/src/bungee.yml new file mode 100644 index 0000000..dfa0c84 --- /dev/null +++ b/src/bungee.yml @@ -0,0 +1,6 @@ +name: Maintenance +version: 1.0.3 +author: TntTastisch +main: de.TntTastisch.Spigot.Maintenance +commands: + maintenance: \ No newline at end of file diff --git a/src/config.yml b/src/config.yml new file mode 100644 index 0000000..cd0f7c0 --- /dev/null +++ b/src/config.yml @@ -0,0 +1,23 @@ +# Use %reason% for the Mainteance-Reason. +Maintenance: + enable: false + prefix: '&8[&4Maintenance&8] &7' + permissions: 'maintenance.use' + noperms: '&cYou have no rights to this command.' + reloaded: '&7The configuration was &asuccessfully &7reloaded.' + maintenancejoin: 'maintenance.bypass' + reason: '&7Cunstruction' + noreason: '&cPlease specify a maintenance reason!' +Messages: + Version: '&4Maintenance' + MaintenanceKickMessage: '&8>> &4ServerNetwork.com &8<<\n&7This network is now under maintenance\n\n&7Reason&8: %reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com' + MaintenanceMessage: '&8>> &4ServerNetwork.com &8<<\n&7This network is currently under maintenance\n\n&7Reason&8: %reason%\n\n&7You want to contact us?\n&7TeamSpeak &8>> &ets.yourservernetwork.com\n&7Homepage &8>> &ewww.yourservernetwork.com' + Enabled: '&7The maintenancemode was successfully &aenabled&7 for %reason%' + Disabled: '&7The maintenancemode was successfully &cdisabled&7.' + alreadyEnable: '&cThe maintenancemode is currently &aenabled&7.' + alreadyDisabled: '&cThe maintenancemode is currently &cdisabled&7.' +MOTD: + FirstMOTD: '&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]' + SecondMOTD: '&aWe are online again &8| &4Maintenance by TntTastisch' + MaintenanceFirstMOTD: '&4ServerNetwork.com &8- &fServer Network &8[&e1.8-1.12&8]' + MaintenanceSecondMOTD: '&&8[&c!&8] &7This network is currently under &4maintenance&7!' \ No newline at end of file diff --git a/src/de/TntTastisch/Spigot/Maintenance.java b/src/de/TntTastisch/Spigot/Maintenance.java new file mode 100644 index 0000000..7671af5 --- /dev/null +++ b/src/de/TntTastisch/Spigot/Maintenance.java @@ -0,0 +1,204 @@ +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 new file mode 100644 index 0000000..d0cffc3 --- /dev/null +++ b/src/de/TntTastisch/Spigot/commands/MaintenanceCMD.java @@ -0,0 +1,152 @@ +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/de/TntTastisch/Spigot/listener/ServerPingListener.java b/src/de/TntTastisch/Spigot/listener/ServerPingListener.java new file mode 100644 index 0000000..81aa5c8 --- /dev/null +++ b/src/de/TntTastisch/Spigot/listener/ServerPingListener.java @@ -0,0 +1,40 @@ +package de.TntTastisch.Spigot.listener; + +import de.TntTastisch.Spigot.Maintenance; +import net.md_5.bungee.api.ServerPing; +import net.md_5.bungee.api.chat.TextComponent; +import net.md_5.bungee.api.connection.ProxiedPlayer; +import net.md_5.bungee.api.event.*; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.event.EventHandler; + +public class ServerPingListener implements Listener { + + @SuppressWarnings("deprecation") + @EventHandler + public void onPing(ProxyPingEvent e) { + ServerPing ping = e.getResponse(); + ServerPing.Players players = ping.getPlayers(); + ServerPing.Protocol protocol = ping.getVersion(); + if (Maintenance.config.getBoolean("Maintenance.enable")) { + protocol.setProtocol(2); + ping.setDescription(Maintenance.MaintenanceFirstMOTD + "\n" + Maintenance.MaintenanceSecondMOTD); + protocol.setName(Maintenance.version); + ping.setVersion(protocol); + ping.setPlayers(players); + } else if (!Maintenance.maintenance) { + ping.setDescription(Maintenance.FirstMOTD + "\n" + Maintenance.SecondMOTD); + } + } + + @EventHandler + 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)); + } + } + } +}