You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
5.1 KiB
137 lines
5.1 KiB
11 years ago
|
package ru.simsonic.rscPermissions;
|
||
11 years ago
|
import ru.simsonic.rscPermissions.API.Settings;
|
||
11 years ago
|
import java.io.IOException;
|
||
|
import java.util.logging.Level;
|
||
|
import java.util.logging.Logger;
|
||
|
import org.bukkit.command.Command;
|
||
|
import org.bukkit.command.CommandSender;
|
||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||
|
import org.bukkit.scheduler.BukkitScheduler;
|
||
|
import org.mcstats.MetricsLite;
|
||
11 years ago
|
import ru.simsonic.rscPermissions.Bukkit.BukkitPermissions;
|
||
11 years ago
|
import ru.simsonic.rscPermissions.Bukkit.BukkitPluginConfiguration;
|
||
11 years ago
|
import ru.simsonic.rscPermissions.Bukkit.PlayerEventsListener;
|
||
11 years ago
|
import ru.simsonic.rscPermissions.InternalCache.BrandNewCache;
|
||
11 years ago
|
import ru.simsonic.utilities.CommandAnswerException;
|
||
11 years ago
|
import ru.simsonic.utilities.LanguageUtility;
|
||
|
|
||
11 years ago
|
public final class BukkitPluginMain extends JavaPlugin
|
||
11 years ago
|
{
|
||
|
private static final String chatPrefix = "{_YL}[rscp] {GOLD}";
|
||
|
public static final Logger consoleLog = Logger.getLogger("Minecraft");
|
||
11 years ago
|
public final Settings settings = new BukkitPluginConfiguration(this);
|
||
11 years ago
|
private final BridgeForBukkitAPI api = new BridgeForBukkitAPI(this);
|
||
11 years ago
|
public final PlayerEventsListener listener = new PlayerEventsListener(this);
|
||
|
public final BrandNewCache cache2 = new BrandNewCache(this);
|
||
|
public final BukkitPermissions permissionManager = new BukkitPermissions(this);
|
||
11 years ago
|
public final RegionListProviders regionListProvider = new RegionListProviders(this);
|
||
11 years ago
|
private final RegionUpdateObserver regionUpdateObserver = new RegionUpdateObserver(this);
|
||
11 years ago
|
public final CommandHelper commandHelper = new CommandHelper(this);
|
||
|
public final MaintenanceMode maintenance = new MaintenanceMode(this);
|
||
11 years ago
|
public ConnectionHelper connectionList;
|
||
|
private MetricsLite metrics;
|
||
|
@Override
|
||
|
public void onLoad()
|
||
|
{
|
||
|
settings.onLoad();
|
||
|
consoleLog.log(Level.INFO, "[rscp] This server\'s ID is \'{0}\'. You can change it in server.properties.", getServer().getServerId());
|
||
|
consoleLog.log(Level.INFO, "[rscp] rscPermissions has been loaded.");
|
||
|
}
|
||
|
@Override
|
||
|
public void onEnable()
|
||
|
{
|
||
|
settings.readSettings();
|
||
|
connectionList = settings.getConnectionChain();
|
||
|
if(connectionList == null)
|
||
|
{
|
||
|
consoleLog.log(Level.WARNING, "[rscp] No MySQL servers were specified in config.yml, disabling...");
|
||
|
getServer().getPluginManager().disablePlugin(this);
|
||
|
return;
|
||
|
}
|
||
|
// Register event's dispatcher
|
||
|
getServer().getPluginManager().registerEvents(maintenance, this);
|
||
11 years ago
|
regionUpdateObserver.registerListeners();
|
||
11 years ago
|
// WorldGuard, Residence and other possible region list providers
|
||
|
regionListProvider.integrate();
|
||
|
// Start all needed threads
|
||
11 years ago
|
cache2.setDefaultGroup(settings.getDefaultGroup());
|
||
11 years ago
|
permissionManager.start();
|
||
11 years ago
|
regionUpdateObserver.start();
|
||
11 years ago
|
connectionList.threadFetchTablesData();
|
||
|
// Metrics
|
||
|
if(settings.isUseMetrics())
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
metrics = new MetricsLite(this);
|
||
|
metrics.start();
|
||
|
consoleLog.info("[rscp] Metrics enabled.");
|
||
|
} catch(IOException ex) {
|
||
11 years ago
|
consoleLog.log(Level.INFO, "[rscp][Metrics] Exception: {0}", ex);
|
||
11 years ago
|
}
|
||
|
}
|
||
|
consoleLog.info("[rscp] rscPermissions has been successfully enabled.");
|
||
|
}
|
||
|
@Override
|
||
|
public void onDisable()
|
||
|
{
|
||
|
getServer().getServicesManager().unregisterAll(this);
|
||
11 years ago
|
regionUpdateObserver.stop();
|
||
11 years ago
|
permissionManager.stop();
|
||
11 years ago
|
// cache.clear();
|
||
11 years ago
|
connectionList.Disconnect();
|
||
|
connectionList = null;
|
||
|
regionListProvider.deintegrate();
|
||
|
metrics = null;
|
||
|
consoleLog.info("[rscp] rscPermissions has been disabled.");
|
||
|
}
|
||
11 years ago
|
private int nAutoUpdaterTaskId = -1;
|
||
|
public void scheduleAutoUpdate()
|
||
11 years ago
|
{
|
||
|
final BukkitScheduler scheduler = getServer().getScheduler();
|
||
|
if(nAutoUpdaterTaskId != -1)
|
||
|
scheduler.cancelTask(nAutoUpdaterTaskId);
|
||
|
final int delay = settings.getAutoReloadDelayTicks();
|
||
|
nAutoUpdaterTaskId = scheduler.scheduleSyncDelayedTask(this, new Runnable()
|
||
|
{
|
||
|
@Override
|
||
|
public void run()
|
||
|
{
|
||
|
connectionList.threadFetchTablesData();
|
||
|
}
|
||
|
}, delay);
|
||
|
}
|
||
|
@Override
|
||
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
11 years ago
|
commandHelper.onCommand(sender, cmd, label, args);
|
||
11 years ago
|
} catch(CommandAnswerException ex) {
|
||
11 years ago
|
for(String answer : ex.getMessageArray())
|
||
|
sender.sendMessage(LanguageUtility.processStringStatic(chatPrefix + answer));
|
||
|
} catch(NullPointerException ex) {
|
||
|
// These will never occur! I hope...
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
11 years ago
|
public void formattedMessage(CommandSender sender, String message)
|
||
11 years ago
|
{
|
||
|
if(message == null || "".equals(message))
|
||
|
return;
|
||
|
message = LanguageUtility.processStringStatic(chatPrefix + message);
|
||
|
sender.sendMessage(message);
|
||
|
}
|
||
|
@SuppressWarnings({"DeadBranch", "UnusedAssignment"})
|
||
|
public static void main(String args[])
|
||
|
{
|
||
|
System.out.println("rscPermissions - Bukkit superperms plugin © SimSonic");
|
||
|
System.out.println("http://dev.bukkit.org/bukkit-plugins/rscpermissions/");
|
||
|
// TEST SECTION STARTS BELOW
|
||
11 years ago
|
BukkitPluginMain mpc = new BukkitPluginMain();
|
||
11 years ago
|
ConnectionHelper ch = new ConnectionHelper(mpc, null);
|
||
|
ch.Initialize("Test", "voxile.ru:3306/servers-shared", "server-primary", "zcHzCBFZtTv28JfG", "rscp_");
|
||
|
ch.Connect();
|
||
11 years ago
|
}
|
||
11 years ago
|
}
|