2017-01-09 20:37:57 +01:00
|
|
|
package net.ME1312.SubServers.Console;
|
|
|
|
|
2017-01-11 04:23:29 +01:00
|
|
|
import net.ME1312.SubServers.Bungee.Event.SubCreateEvent;
|
|
|
|
import net.ME1312.SubServers.Bungee.Event.SubSendCommandEvent;
|
2017-01-09 20:37:57 +01:00
|
|
|
import net.ME1312.SubServers.Bungee.Event.SubStartEvent;
|
2017-01-11 23:07:03 +01:00
|
|
|
import net.ME1312.SubServers.Bungee.Host.Host;
|
|
|
|
import net.ME1312.SubServers.Bungee.Host.SubCreator;
|
|
|
|
import net.ME1312.SubServers.Bungee.Host.SubServer;
|
2017-01-09 20:37:57 +01:00
|
|
|
import net.ME1312.SubServers.Bungee.Library.Config.YAMLConfig;
|
|
|
|
import net.ME1312.SubServers.Bungee.SubPlugin;
|
|
|
|
import net.md_5.bungee.api.plugin.Listener;
|
|
|
|
import net.md_5.bungee.api.plugin.Plugin;
|
|
|
|
import net.md_5.bungee.event.EventHandler;
|
|
|
|
import net.md_5.bungee.event.EventPriority;
|
|
|
|
|
2017-01-11 04:23:29 +01:00
|
|
|
import javax.swing.*;
|
2017-01-09 20:37:57 +01:00
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
2017-01-26 23:19:48 +01:00
|
|
|
public final class ConsolePlugin extends Plugin implements Listener {
|
2017-01-11 04:23:29 +01:00
|
|
|
public HashMap<String, ConsoleWindow> cCurrent = new HashMap<String, ConsoleWindow>();
|
|
|
|
public HashMap<String, ConsoleWindow> sCurrent = new HashMap<String, ConsoleWindow>();
|
2017-01-09 20:37:57 +01:00
|
|
|
public YAMLConfig config;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onEnable() {
|
2017-01-30 21:22:36 +01:00
|
|
|
try {this.
|
2017-01-09 20:37:57 +01:00
|
|
|
getDataFolder().mkdirs();
|
|
|
|
config = new YAMLConfig(new File(getDataFolder(), "config.yml"));
|
2017-01-11 04:23:29 +01:00
|
|
|
boolean save = false;
|
2017-01-09 20:37:57 +01:00
|
|
|
if (!config.get().getKeys().contains("Enabled-Servers")) {
|
|
|
|
config.get().set("Enabled-Servers", Collections.emptyList());
|
2017-01-11 04:23:29 +01:00
|
|
|
save = true;
|
|
|
|
} if (!config.get().getKeys().contains("Enabled-Creators")) {
|
|
|
|
config.get().set("Enabled-Creators", Collections.emptyList());
|
2017-01-11 23:07:03 +01:00
|
|
|
save = true;
|
2017-01-09 20:37:57 +01:00
|
|
|
}
|
2017-01-11 23:07:03 +01:00
|
|
|
if (save) config.save();
|
2017-01-09 20:37:57 +01:00
|
|
|
|
|
|
|
getProxy().getPluginManager().registerListener(this, this);
|
2017-01-11 04:23:29 +01:00
|
|
|
getProxy().getPluginManager().registerCommand(this, new PopoutCommand.SERVER(this, "popout"));
|
|
|
|
getProxy().getPluginManager().registerCommand(this, new PopoutCommand.SERVER(this, "popouts"));
|
|
|
|
getProxy().getPluginManager().registerCommand(this, new PopoutCommand.CREATOR(this, "popoutc"));
|
2017-01-09 20:37:57 +01:00
|
|
|
|
2017-01-11 04:23:29 +01:00
|
|
|
try {
|
|
|
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
|
|
|
new JFrame("SubServers 2");
|
|
|
|
} catch (ClassNotFoundException | InstantiationException | UnsupportedLookAndFeelException | IllegalAccessException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2017-01-09 20:37:57 +01:00
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-11 04:23:29 +01:00
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
|
|
public void onServerCreate(SubCreateEvent event) {
|
|
|
|
if (!event.isCancelled() && config.get().getStringList("Enabled-Creators").contains(event.getHost().getName().toLowerCase())) {
|
|
|
|
if (!cCurrent.keySet().contains(event.getHost().getName().toLowerCase())) {
|
2017-01-11 23:07:03 +01:00
|
|
|
SwingUtilities.invokeLater(() -> cCurrent.put(event.getHost().getName().toLowerCase(), new ConsoleWindow(this, event.getHost().getCreator().getLogger())));
|
2017-01-11 04:23:29 +01:00
|
|
|
} else {
|
|
|
|
cCurrent.get(event.getHost().getName().toLowerCase()).clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-09 20:37:57 +01:00
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
|
|
public void onServerStart(SubStartEvent event) {
|
|
|
|
if (!event.isCancelled() && config.get().getStringList("Enabled-Servers").contains(event.getServer().getName().toLowerCase())) {
|
2017-01-11 04:23:29 +01:00
|
|
|
if (!sCurrent.keySet().contains(event.getServer().getName().toLowerCase())) {
|
2017-01-11 23:07:03 +01:00
|
|
|
SwingUtilities.invokeLater(() -> sCurrent.put(event.getServer().getName().toLowerCase(), new ConsoleWindow(this, event.getServer().getLogger())));
|
2017-01-11 04:23:29 +01:00
|
|
|
} else {
|
|
|
|
sCurrent.get(event.getServer().getName().toLowerCase()).clear();
|
|
|
|
}
|
2017-01-09 20:37:57 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-11 04:23:29 +01:00
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
|
|
public void onServerCommand(SubSendCommandEvent event) {
|
|
|
|
if (!event.isCancelled() && sCurrent.keySet().contains(event.getServer().getName().toLowerCase())) {
|
|
|
|
sCurrent.get(event.getServer().getName().toLowerCase()).log('<' + ((event.getPlayer() == null)?"CONSOLE":((getProxy().getPlayer(event.getPlayer()) == null)?event.getPlayer().toString():getProxy().getPlayer(event.getPlayer()).getName())) + "> /" + event.getCommand());
|
2017-01-09 20:37:57 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-11 23:07:03 +01:00
|
|
|
public void onClose(ConsoleWindow window) {
|
|
|
|
if (window.getLogger().getHandler() instanceof SubServer) {
|
|
|
|
SubServer server = (SubServer) window.getLogger().getHandler();
|
|
|
|
if (!config.get().getStringList("Enabled-Servers").contains(server.getName().toLowerCase())) {
|
|
|
|
window.destroy();
|
|
|
|
sCurrent.remove(server.getName().toLowerCase());
|
|
|
|
}
|
|
|
|
} else if (window.getLogger().getHandler() instanceof SubCreator) {
|
|
|
|
Host host = ((SubCreator) window.getLogger().getHandler()).getHost();
|
|
|
|
if (!config.get().getStringList("Enabled-Creators").contains(host.getName().toLowerCase())) {
|
|
|
|
window.destroy();
|
|
|
|
sCurrent.remove(host.getName().toLowerCase());
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
window.destroy();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onDisable() {
|
|
|
|
for (ConsoleWindow window : sCurrent.values()) {
|
|
|
|
window.destroy();
|
|
|
|
}
|
|
|
|
sCurrent.clear();
|
|
|
|
|
|
|
|
for (ConsoleWindow window : cCurrent.values()) {
|
|
|
|
window.destroy();
|
|
|
|
}
|
|
|
|
cCurrent.clear();
|
|
|
|
}
|
|
|
|
|
2017-01-09 20:37:57 +01:00
|
|
|
@Override
|
|
|
|
public SubPlugin getProxy() {
|
|
|
|
return (SubPlugin) super.getProxy();
|
|
|
|
}
|
|
|
|
}
|