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

114 lines
4.0 KiB
Java

package com.songoda.ultimatemoderation;
import com.songoda.ultimatemoderation.command.CommandManager;
import com.songoda.ultimatemoderation.listeners.ChatListener;
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;
private SettingsManager settingsManager;
private CommandManager commandManager;
private Locale locale;
private ChatListener chatListener;
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();
this.commandManager = new CommandManager(this);
this.chatListener = new ChatListener(this);
Bukkit.getPluginManager().registerEvents(this.chatListener, this);
}
@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;
}
public ChatListener getChatListener() {
return chatListener;
}
}