Core/src/eu/univento/core/Core.java

159 lines
4.5 KiB
Java
Raw Normal View History

2015-12-06 11:04:47 +01:00
package eu.univento.core;
2015-12-05 12:26:39 +01:00
2016-02-27 09:08:17 +01:00
import eu.univento.core.api.BossBar;
import eu.univento.core.api.Config;
import eu.univento.core.api.SignInput;
import eu.univento.core.api.database.MySQL;
import eu.univento.core.api.events.MoveEventFilter;
import eu.univento.core.api.fakeplayer.PlayerKi;
import eu.univento.core.api.player.TeamSpeak;
import eu.univento.core.api.server.ServerSettings;
import eu.univento.core.commands.*;
import eu.univento.core.listeners.*;
2015-12-05 12:26:39 +01:00
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
2016-02-27 09:08:17 +01:00
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
2015-12-05 12:26:39 +01:00
/**
* main class
* @author joethei
* @version 1.0
*/
public class Core extends JavaPlugin{
2016-02-27 09:08:17 +01:00
//TODO: rewrite time critical database functions from MySQL to MongoDB
2015-12-05 12:26:39 +01:00
/**
* plugin instance
*/
public static Core instance;
/**
* @return plugin instance
*/
public static Core getInstance() {
return instance;
}
/**
* mysql stuff
*/
2015-12-06 11:04:47 +01:00
private static MySQL sql = new MySQL(getInstance(), Config.readString("MySQL.Host"), Config.readString("MySQL.Port"), Config.readString("MySQL.DB"), Config.readString("MySQL.User"), Config.readString("MySQL.Pass"));
2015-12-05 12:26:39 +01:00
/**
* @return sql
*/
public static MySQL returnSQL() {
return sql;
}
2016-02-27 09:08:17 +01:00
private static TeamSpeak ts;
public static TeamSpeak getTs() {
return ts;
}
2015-12-05 12:26:39 +01:00
/**
* logging and stuff
*/
private static Logger log = Bukkit.getLogger();
/**
* @param level Log level
* @param string String
*/
public static void log(Level level, String string) {
2016-02-27 09:08:17 +01:00
if(ServerSettings.isDebug()) {
log.log(level, "[Core] " + string);
}
2015-12-05 12:26:39 +01:00
}
2016-02-27 09:08:17 +01:00
private SignInput signInput;
public SignInput getSignInput() {
return signInput;
}
2015-12-05 12:26:39 +01:00
@Override
public void onEnable() {
2016-02-27 09:08:17 +01:00
ServerSettings.setDebug(true);
2015-12-05 15:22:24 +01:00
try {
Config.writeDefault();
2015-12-06 11:04:47 +01:00
} catch (ClassNotFoundException | SQLException | IOException e) {
e.printStackTrace();
2015-12-05 15:22:24 +01:00
}
2015-12-05 12:26:39 +01:00
instance = this;
2016-02-27 09:08:17 +01:00
this.signInput = new SignInput(this);
if(ServerSettings.isDebug()) log(Level.INFO, "Debug Modus aktiviert");
2015-12-05 12:26:39 +01:00
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new Commands(), this);
pm.registerEvents(new JoinQuit(), this);
pm.registerEvents(new Chat(), this);
pm.registerEvents(new Blocks(), this);
2016-02-27 09:08:17 +01:00
pm.registerEvents(new Events(), this);
pm.registerEvents(new MoveEventFilter(getServer()), this);
pm.registerEvents(new BossBar(), this);
pm.registerEvents(new PlayerKi(), this);
2015-12-05 12:26:39 +01:00
2016-02-27 09:08:17 +01:00
log(Level.INFO, "Events registriert");
2015-12-05 12:26:39 +01:00
String[] fix = {""};
2016-02-27 09:08:17 +01:00
if(ServerSettings.isGame()) new Fix(this, "fix", "Fixe dich oder andere Spieler", fix);
2015-12-05 12:26:39 +01:00
String[] runas = {""};
new RunAs(this, "RunAs", "Sende einen Befehl als ein anderer Spieler", runas);
String[] systeminfo = {""};
2016-02-27 09:08:17 +01:00
new SystemInfo(this, "SystemInfo", "Gibt Infos über den ServerPinger aus", systeminfo);
2015-12-05 12:26:39 +01:00
String[] vanish = {""};
2016-02-27 09:08:17 +01:00
new Vanish(this, "vanish", "Lässt dich verschwinden", vanish);
2015-12-05 12:26:39 +01:00
String[] gamemode = {"gm"};
new GameMode(this, "gamemode" , "Setzt deinen GameMode", gamemode);
String[] setrank = {"sr"};
new SetRank(this, "setrank" , "Setzt den Rang eines Spielers", setrank);
String[] globalmute = {"globalmute"};
2016-02-27 09:08:17 +01:00
new GlobalMute(this, "globalmute", "Muted den gesamten ServerPinger", globalmute);
2015-12-05 12:26:39 +01:00
String[] youtuber = {""};
new Youtuber(this, "youtuber", "setzt Spieler in den Youtuber Rang", youtuber);
2015-12-06 11:04:47 +01:00
String[] ts = {""};
new TS(this, "ts", "verifiziert Spieler auf dem TS", ts);
2015-12-05 12:26:39 +01:00
String[] ban = {""};
new Ban(this, "ban", "Bannt Spieler", ban);
2016-02-27 09:08:17 +01:00
String[] build = {"b"};
new Build(this, "build", "Setzt den Spieler in den Bau Modus", build);
String[] chatclear = {"cc"};
new ChatClear(this, "chatclear", "Cleart den Chat", chatclear);
if(ServerSettings.isGame()) {
String[] nick = {""};
new Nick(this, "nick", "ändert das Verhalten des Nicksystems", nick);
log(Level.INFO, "/nick aktiviert");
2015-12-05 12:26:39 +01:00
}
2016-02-27 09:08:17 +01:00
log(Level.INFO, "Alle Befehle registriert");
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
2015-12-05 12:26:39 +01:00
2016-02-27 09:08:17 +01:00
this.ts = new TeamSpeak();
2015-12-05 12:26:39 +01:00
log(Level.INFO, "Plugin ver. " + getDescription().getVersion() + " gestartet");
}
@Override
public void onDisable() {
2016-02-27 09:08:17 +01:00
log(Level.INFO, "Plugin beendet");
getTs().disconnect();
2015-12-05 12:26:39 +01:00
}
}