mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-12 12:23:59 +00:00
Merge branch 'refs/heads/groupmanager'
This commit is contained in:
commit
cf7da7a83f
3 changed files with 32 additions and 57 deletions
|
@ -139,3 +139,6 @@ v 1.9:
|
||||||
- Fix world mirroring so it correctly creates data files and data sources for partially mirrored worlds.
|
- Fix world mirroring so it correctly creates data files and data sources for partially mirrored worlds.
|
||||||
- Fixed world mirroring so it returns the correct data for the requested world.
|
- Fixed world mirroring so it returns the correct data for the requested world.
|
||||||
- Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data.
|
- Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data.
|
||||||
|
- Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent as it's all handled in PlayerChangedWorldEvent.
|
||||||
|
This also means we no longer update permissions before we change worlds.
|
||||||
|
- A command of '/manload' with no world arguments now performs a full reload of GM.
|
|
@ -25,7 +25,10 @@ import java.util.concurrent.TimeUnit;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder;
|
import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder;
|
||||||
|
import org.anjocaido.groupmanager.events.GMSystemEvent;
|
||||||
import org.anjocaido.groupmanager.events.GMWorldListener;
|
import org.anjocaido.groupmanager.events.GMWorldListener;
|
||||||
|
import org.anjocaido.groupmanager.events.GroupManagerEventHandler;
|
||||||
|
import org.anjocaido.groupmanager.events.GMGroupEvent.Action;
|
||||||
import org.anjocaido.groupmanager.utils.GMLoggerHandler;
|
import org.anjocaido.groupmanager.utils.GMLoggerHandler;
|
||||||
import org.anjocaido.groupmanager.utils.PermissionCheckResult;
|
import org.anjocaido.groupmanager.utils.PermissionCheckResult;
|
||||||
import org.anjocaido.groupmanager.utils.Tasks;
|
import org.anjocaido.groupmanager.utils.Tasks;
|
||||||
|
@ -1492,7 +1495,9 @@ public class GroupManager extends JavaPlugin {
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case manload:
|
case manload:
|
||||||
// THIS CASE DONT NEED SENDER
|
/**
|
||||||
|
* Attempt to reload a specific world
|
||||||
|
*/
|
||||||
if (args.length > 0) {
|
if (args.length > 0) {
|
||||||
auxString = "";
|
auxString = "";
|
||||||
for (int i = 0; i < args.length; i++) {
|
for (int i = 0; i < args.length; i++) {
|
||||||
|
@ -1502,51 +1507,34 @@ public class GroupManager extends JavaPlugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
isLoaded = false; // Disable Bukkit Perms update
|
isLoaded = false; // Disable Bukkit Perms update and event triggers
|
||||||
|
|
||||||
globalGroups.load();
|
globalGroups.load();
|
||||||
worldsHolder.loadWorld(auxString);
|
worldsHolder.loadWorld(auxString);
|
||||||
|
|
||||||
sender.sendMessage("The request to world '" + auxString + "' was sent.");
|
sender.sendMessage("The request to reload world '" + auxString + "' was attempted.");
|
||||||
|
|
||||||
isLoaded = true;
|
isLoaded = true;
|
||||||
|
|
||||||
BukkitPermissions.updateAllPlayers();
|
BukkitPermissions.updateAllPlayers();
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
// VALIDANDO ESTADO DO SENDER
|
|
||||||
if (dataHolder == null || permissionHandler == null) {
|
|
||||||
if (!setDefaultWorldHandler(sender))
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
// WORKING
|
|
||||||
config.load();
|
|
||||||
globalGroups.load();
|
|
||||||
worldsHolder.mirrorSetUp();
|
|
||||||
|
|
||||||
isLoaded = false;
|
|
||||||
|
|
||||||
if (args.length > 0) {
|
|
||||||
auxString = "";
|
|
||||||
for (int i = 0; i < args.length; i++) {
|
|
||||||
auxString += args[i];
|
|
||||||
if ((i + 1) < args.length) {
|
|
||||||
auxString += " ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
worldsHolder.loadWorld(auxString);
|
|
||||||
sender.sendMessage("The request to world '" + auxString + "' was sent.");
|
|
||||||
} else {
|
} else {
|
||||||
worldsHolder.reloadAll();
|
|
||||||
sender.sendMessage(ChatColor.YELLOW + " All worlds were reloaded.");
|
/**
|
||||||
|
* Reload all settings and data as no world was specified.
|
||||||
|
*/
|
||||||
|
onDisable();
|
||||||
|
onEnable();
|
||||||
}
|
}
|
||||||
|
|
||||||
isLoaded = true;
|
/**
|
||||||
|
* Fire an event as none will have been triggered in the reload.
|
||||||
BukkitPermissions.updateAllPlayers();
|
*/
|
||||||
|
if (GroupManager.isLoaded())
|
||||||
|
GroupManagerEventHandler.callEvent(GMSystemEvent.Action.RELOADED);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case listgroups:
|
case listgroups:
|
||||||
// VALIDANDO ESTADO DO SENDER
|
// VALIDANDO ESTADO DO SENDER
|
||||||
if (dataHolder == null || permissionHandler == null) {
|
if (dataHolder == null || permissionHandler == null) {
|
||||||
|
|
|
@ -37,10 +37,7 @@ import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerKickEvent;
|
import org.bukkit.event.player.PlayerKickEvent;
|
||||||
import org.bukkit.event.player.PlayerPortalEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
|
||||||
import org.bukkit.event.server.PluginDisableEvent;
|
import org.bukkit.event.server.PluginDisableEvent;
|
||||||
import org.bukkit.event.server.PluginEnableEvent;
|
import org.bukkit.event.server.PluginEnableEvent;
|
||||||
import org.bukkit.permissions.Permission;
|
import org.bukkit.permissions.Permission;
|
||||||
|
@ -346,6 +343,12 @@ public class BukkitPermissions {
|
||||||
this.updatePermissions(player, null);
|
this.updatePermissions(player, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Player events tracked to cause Superperms updates
|
||||||
|
*
|
||||||
|
* @author ElgarL
|
||||||
|
*
|
||||||
|
*/
|
||||||
protected class PlayerEvents implements Listener {
|
protected class PlayerEvents implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
|
@ -361,29 +364,10 @@ public class BukkitPermissions {
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onPlayerChangeWorld(PlayerChangedWorldEvent event) { // will portal into another world
|
public void onPlayerChangeWorld(PlayerChangedWorldEvent event) { // has changed worlds
|
||||||
updatePermissions(event.getPlayer(), event.getPlayer().getWorld().getName());
|
updatePermissions(event.getPlayer(), event.getPlayer().getWorld().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
|
||||||
public void onPlayerPortal(PlayerPortalEvent event) { // will portal into another world
|
|
||||||
if ((event.getTo() != null) && (!event.getFrom().getWorld().equals(event.getTo().getWorld()))) { // only if world actually changed
|
|
||||||
updatePermissions(event.getPlayer(), event.getTo().getWorld().getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
|
||||||
public void onPlayerRespawn(PlayerRespawnEvent event) { // can be respawned in another world
|
|
||||||
updatePermissions(event.getPlayer(), event.getRespawnLocation().getWorld().getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
|
||||||
public void onPlayerTeleport(PlayerTeleportEvent event) { // can be teleported into another world
|
|
||||||
if ((event.getTo() != null) && (event.getPlayer() != null) && (!event.getFrom().getWorld().equals(event.getTo().getWorld()))) { // only if world actually changed
|
|
||||||
updatePermissions(event.getPlayer(), event.getTo().getWorld().getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||||
if (!GroupManager.isLoaded())
|
if (!GroupManager.isLoaded())
|
||||||
|
|
Loading…
Reference in a new issue