UltimateModeration/src/main/java/com/songoda/ultimatemoderation/UltimateModeration.java

133 lines
4.9 KiB
Java
Raw Normal View History

2019-02-27 02:50:18 +01:00
package com.songoda.ultimatemoderation;
2019-03-03 22:33:44 +01:00
import com.songoda.epicspawners.utils.gui.AbstractGUI;
2019-02-27 02:50:18 +01:00
import com.songoda.ultimatemoderation.command.CommandManager;
2019-02-27 22:45:39 +01:00
import com.songoda.ultimatemoderation.listeners.*;
2019-03-03 22:33:44 +01:00
import com.songoda.ultimatemoderation.punish.player.PunishmentManager;
import com.songoda.ultimatemoderation.punish.template.TemplateManager;
2019-02-27 02:50:18 +01:00
import com.songoda.ultimatemoderation.utils.Methods;
import com.songoda.ultimatemoderation.utils.SettingsManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
public class UltimateModeration extends JavaPlugin {
private static CommandSender console = Bukkit.getConsoleSender();
private static UltimateModeration INSTANCE;
private References references;
2019-03-03 22:33:44 +01:00
private TemplateManager templateManager;
2019-02-27 02:50:18 +01:00
private SettingsManager settingsManager;
private CommandManager commandManager;
2019-03-03 22:33:44 +01:00
private PunishmentManager punishmentManager;
2019-02-27 02:50:18 +01:00
private Locale locale;
public static UltimateModeration getInstance() {
return INSTANCE;
}
private boolean checkVersion() {
int workingVersion = 13;
int currentVersion = Integer.parseInt(Bukkit.getServer().getClass()
.getPackage().getName().split("\\.")[3].split("_")[1]);
if (currentVersion < workingVersion) {
Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> {
Bukkit.getConsoleSender().sendMessage("");
Bukkit.getConsoleSender().sendMessage(String.format("%sYou installed the 1.%s only version of %s on a 1.%s server. Since you are on the wrong version we disabled the plugin for you. Please install correct version to continue using %s.", ChatColor.RED, workingVersion, this.getDescription().getName(), currentVersion, this.getDescription().getName()));
Bukkit.getConsoleSender().sendMessage("");
}, 20L);
return false;
}
return true;
}
@Override
public void onEnable() {
INSTANCE = this;
// Check to make sure the Bukkit version is compatible.
if (!checkVersion()) return;
console.sendMessage(Methods.formatText("&a============================="));
console.sendMessage(Methods.formatText("&7UltimateModeration " + this.getDescription().getVersion() + " by &5Songoda <3!"));
console.sendMessage(Methods.formatText("&7Action: &aEnabling&7..."));
console.sendMessage(Methods.formatText("&a============================="));
this.settingsManager = new SettingsManager(this);
this.setupConfig();
// Setup language
String langMode = SettingsManager.Setting.LANGUGE_MODE.getString();
Locale.init(this);
Locale.saveDefaultLocale("en_US");
this.locale = Locale.getLocale(getConfig().getString("System.Language Mode", langMode));
this.references = new References();
2019-03-03 22:33:44 +01:00
//Setup Managers
this.templateManager = new TemplateManager();
2019-02-27 02:50:18 +01:00
this.commandManager = new CommandManager(this);
2019-03-03 22:33:44 +01:00
this.punishmentManager = new PunishmentManager();
AbstractGUI.initializeListeners(this);
2019-02-27 02:50:18 +01:00
2019-02-27 04:08:19 +01:00
// Register Listeners
2019-02-28 23:26:36 +01:00
Bukkit.getPluginManager().registerEvents(new CommandListener(this), this);
2019-02-28 20:06:37 +01:00
Bukkit.getPluginManager().registerEvents(new DeathListener(this), this);
2019-02-27 22:45:39 +01:00
Bukkit.getPluginManager().registerEvents(new MoveListener(this), this);
Bukkit.getPluginManager().registerEvents(new DropListener(this), this);
Bukkit.getPluginManager().registerEvents(new InventoryListener(this), this);
2019-02-27 04:08:19 +01:00
Bukkit.getPluginManager().registerEvents(new ChatListener(this), this);
Bukkit.getPluginManager().registerEvents(new LoginListener(this), this);
2019-02-27 02:50:18 +01:00
}
@Override
public void onDisable() {
console.sendMessage(Methods.formatText("&a============================="));
console.sendMessage(Methods.formatText("&7UltimateModeration " + this.getDescription().getVersion() + " by &5Songoda <3!"));
console.sendMessage(Methods.formatText("&7Action: &cDisabling&7..."));
console.sendMessage(Methods.formatText("&a============================="));
}
private void setupConfig() {
settingsManager.updateSettings();
this.getConfig().options().copyDefaults(true);
this.saveConfig();
}
public void reload() {
locale.reloadMessages();
references = new References();
this.setupConfig();
saveConfig();
}
public CommandManager getCommandManager() {
return commandManager;
}
public SettingsManager getSettingsManager() {
return settingsManager;
}
public Locale getLocale() {
return locale;
}
public References getReferences() {
return references;
}
2019-03-03 22:33:44 +01:00
public TemplateManager getTemplateManager() {
return templateManager;
}
2019-02-27 02:50:18 +01:00
2019-03-03 22:33:44 +01:00
public PunishmentManager getPunishmentManager() {
return punishmentManager;
}
2019-02-27 02:50:18 +01:00
}