BungeeMaintenanceSystem/src/main/java/de/TntTastisch/Spigot/commands/MaintenanceCMD.java

149 lines
5.9 KiB
Java

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 <Reason>"));
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 <Reason>"));
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);
}
}