|
|
|
@ -11,19 +11,23 @@ import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
|
|
|
|
|
|
|
|
|
|
public class BukkitMaintenance implements Listener |
|
|
|
|
{ |
|
|
|
|
private final BukkitPluginMain plugin; |
|
|
|
|
private final BukkitPluginMain rscp; |
|
|
|
|
public BukkitMaintenance(BukkitPluginMain rscp) |
|
|
|
|
{ |
|
|
|
|
this.plugin = rscp; |
|
|
|
|
this.rscp = rscp; |
|
|
|
|
} |
|
|
|
|
public void onEnable() |
|
|
|
|
{ |
|
|
|
|
rscp.getServer().getPluginManager().registerEvents(this, rscp); |
|
|
|
|
} |
|
|
|
|
@org.bukkit.event.EventHandler |
|
|
|
|
public void onServerPing(ServerListPingEvent event) |
|
|
|
|
{ |
|
|
|
|
if(plugin.settings.isInMaintenance()) |
|
|
|
|
if(rscp.settings.isInMaintenance()) |
|
|
|
|
{ |
|
|
|
|
String motd = "Server is under maintenance"; |
|
|
|
|
motd = plugin.getConfig().getString("language.maintenance.locked.default.motd", motd); |
|
|
|
|
motd = plugin.getConfig().getString("language.maintenance.locked." + plugin.settings.getMaintenanceMode() + ".motd", motd); |
|
|
|
|
motd = rscp.getConfig().getString("language.maintenance.locked.default.motd", motd); |
|
|
|
|
motd = rscp.getConfig().getString("language.maintenance.locked." + rscp.settings.getMaintenanceMode() + ".motd", motd); |
|
|
|
|
motd = GenericChatCodes.processStringStatic(motd); |
|
|
|
|
if(!"".equals(motd)) |
|
|
|
|
event.setMotd(motd); |
|
|
|
@ -32,18 +36,18 @@ public class BukkitMaintenance implements Listener
|
|
|
|
|
@org.bukkit.event.EventHandler |
|
|
|
|
public void onAsyncPlayerPreLogin(AsyncPlayerPreLoginEvent event) |
|
|
|
|
{ |
|
|
|
|
if("".equals(plugin.settings.getMaintenanceMode())) |
|
|
|
|
if("".equals(rscp.settings.getMaintenanceMode())) |
|
|
|
|
{ |
|
|
|
|
event.allow(); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
final String permissionAll = "rscp.maintenance.*"; |
|
|
|
|
final String permission_mm = "rscp.maintenance." + (plugin.settings.getMaintenanceMode()); |
|
|
|
|
final String permission_mm = "rscp.maintenance." + (rscp.settings.getMaintenanceMode()); |
|
|
|
|
final HashMap<String, Boolean> permissions = new HashMap<>(); |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
final String name = event.getName(); |
|
|
|
|
plugin.internalCache.resolvePlayer(name, plugin.getServer().getServerId()); |
|
|
|
|
rscp.internalCache.resolvePlayer(name, rscp.getServer().getServerId()); |
|
|
|
|
// permissions.putAll(plugin.cache.mapPermissions.get(name));
|
|
|
|
|
} catch(RuntimeException ex) { |
|
|
|
|
} |
|
|
|
@ -51,7 +55,7 @@ public class BukkitMaintenance implements Listener
|
|
|
|
|
{ |
|
|
|
|
final UUID uuid = event.getUniqueId(); |
|
|
|
|
final String userFriendlyUniqueId = uuid.toString().replace("-", "").toLowerCase(); |
|
|
|
|
plugin.internalCache.resolvePlayer(userFriendlyUniqueId, plugin.getServer().getServerId()); |
|
|
|
|
rscp.internalCache.resolvePlayer(userFriendlyUniqueId, rscp.getServer().getServerId()); |
|
|
|
|
// permissions.putAll(plugin.cache.mapPermissions.get(userFriendlyUniqueId));
|
|
|
|
|
} catch(RuntimeException | NoSuchMethodError ex) { |
|
|
|
|
} |
|
|
|
@ -62,17 +66,17 @@ public class BukkitMaintenance implements Listener
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
String kickMsg = "{_YL}Server is in maintenance mode\nPlease try to connect later..."; |
|
|
|
|
kickMsg = plugin.getConfig().getString("language.maintenance.locked.default.motd", kickMsg); |
|
|
|
|
kickMsg = plugin.getConfig().getString("language.maintenance.locked." + plugin.settings.getMaintenanceMode() + ".motd", kickMsg); |
|
|
|
|
kickMsg = rscp.getConfig().getString("language.maintenance.locked.default.motd", kickMsg); |
|
|
|
|
kickMsg = rscp.getConfig().getString("language.maintenance.locked." + rscp.settings.getMaintenanceMode() + ".motd", kickMsg); |
|
|
|
|
kickMsg = GenericChatCodes.processStringStatic(kickMsg); |
|
|
|
|
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_WHITELIST, kickMsg); |
|
|
|
|
} |
|
|
|
|
public void setMaintenanceMode(String mMode) |
|
|
|
|
{ |
|
|
|
|
plugin.settings.setMaintenanceMode(mMode); |
|
|
|
|
if(!plugin.settings.isInMaintenance()) |
|
|
|
|
rscp.settings.setMaintenanceMode(mMode); |
|
|
|
|
if(!rscp.settings.isInMaintenance()) |
|
|
|
|
return; |
|
|
|
|
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() |
|
|
|
|
rscp.getServer().getScheduler().scheduleSyncDelayedTask(rscp, new Runnable() |
|
|
|
|
{ |
|
|
|
|
@Override |
|
|
|
|
public void run() |
|
|
|
@ -82,11 +86,11 @@ public class BukkitMaintenance implements Listener
|
|
|
|
|
{ |
|
|
|
|
if(player.hasPermission("rscp.maintenance.*")) |
|
|
|
|
continue; |
|
|
|
|
if(player.hasPermission("rscp.maintenance." + plugin.settings.getMaintenanceMode())) |
|
|
|
|
if(player.hasPermission("rscp.maintenance." + rscp.settings.getMaintenanceMode())) |
|
|
|
|
continue; |
|
|
|
|
String kick = "{_YL}Server is going into maintenance mode"; |
|
|
|
|
kick = plugin.getConfig().getString("language.maintenance.locked.default.kick", kick); |
|
|
|
|
kick = plugin.getConfig().getString("language.maintenance.locked." + plugin.settings.getMaintenanceMode() + ".kick", kick); |
|
|
|
|
kick = rscp.getConfig().getString("language.maintenance.locked.default.kick", kick); |
|
|
|
|
kick = rscp.getConfig().getString("language.maintenance.locked." + rscp.settings.getMaintenanceMode() + ".kick", kick); |
|
|
|
|
kick = GenericChatCodes.processStringStatic(kick); |
|
|
|
|
player.kickPlayer(kick); |
|
|
|
|
} |
|
|
|
|