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
}