Update to new Bukkit Event system.

Update GroupManagerBridge for new event system.
This commit is contained in:
ElgarL 2012-01-21 11:47:08 +00:00
parent 72edfacfb8
commit 4b61ac9043
10 changed files with 100 additions and 52 deletions

View file

@ -2,8 +2,8 @@
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="../lib/bukkit-0.0.1-SNAPSHOT.jar"/> <classpathentry kind="lib" path="../lib/bukkit.jar"/>
<classpathentry kind="lib" path="../lib/craftbukkit-0.0.1-SNAPSHOT.jar"/> <classpathentry kind="lib" path="../lib/craftbukkit.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/EssentialsGroupManager"/> <classpathentry combineaccessrules="false" kind="src" path="/EssentialsGroupManager"/>
<classpathentry kind="lib" path="../lib/Permissions3.jar"/> <classpathentry kind="lib" path="../lib/Permissions3.jar"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>

View file

@ -0,0 +1,25 @@
package com.nijikokun.bukkit.Permissions;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.event.Listener;
public class OverrideListener implements Listener {
Permissions permClass;
OverrideListener(Permissions instance) {
this.permClass = instance;
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPluginEnable(PluginEnableEvent event) {
if (event.getPlugin().getDescription().getName().equals("GroupManager")) {
permClass.setGM(event.getPlugin());
}
}
}

View file

@ -4,10 +4,6 @@ import com.nijiko.permissions.PermissionHandler;
import java.util.logging.Logger; import java.util.logging.Logger;
//import org.anjocaido.groupmanager.GroupManager; //import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy; import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.event.server.ServerListener;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -41,15 +37,7 @@ public class Permissions extends JavaPlugin {
setGM(p); setGM(p);
} else { } else {
if (this.getServer() != null) { if (this.getServer() != null) {
this.getServer().getPluginManager().registerEvent(Type.PLUGIN_ENABLE, new ServerListener() { this.getServer().getPluginManager().registerEvents(new OverrideListener(this), this);
@Override
public void onPluginEnable(PluginEnableEvent event) {
if (event.getPlugin().getDescription().getName().equals("GroupManager")) {
Permissions.this.setGM(event.getPlugin());
}
}
}, Priority.Normal, this);
} }
} }
} else { } else {
@ -62,7 +50,7 @@ public class Permissions extends JavaPlugin {
} }
} }
private void setGM(final Plugin p) { public void setGM(final Plugin p) {
//GroupManager groupManager = (GroupManager) p; //GroupManager groupManager = (GroupManager) p;
((NijikoPermissionsProxy) Security).setGM(p); ((NijikoPermissionsProxy) Security).setGM(p);
} }
@ -79,4 +67,9 @@ public class Permissions extends JavaPlugin {
Security = new NijikoPermissionsProxy(null); Security = new NijikoPermissionsProxy(null);
} }
} }
} }

View file

@ -106,4 +106,6 @@ v 1.9:
- Optimize populating Bukkit perms so we no longer calculate the child nodes (Bukkit already does this). - Optimize populating Bukkit perms so we no longer calculate the child nodes (Bukkit already does this).
- Added a tidy error message for invalid permission entries in GlobalGroups. - Added a tidy error message for invalid permission entries in GlobalGroups.
- Better optimize assembling of a players permissions and allow the * node to populate all registered superperms. - Better optimize assembling of a players permissions and allow the * node to populate all registered superperms.
- Fixed text when adding a subgroup to not say the player was moved. - Fixed text when adding a subgroup to not say the player was moved.
- Update to new Bukkit Event system.
- Update GroupManagerBridge for new event system.

View file

@ -38,8 +38,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.world.WorldListener;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -82,7 +80,7 @@ public class GroupManager extends JavaPlugin {
private GMLoggerHandler ch; private GMLoggerHandler ch;
public static BukkitPermissions BukkitPermissions; public static BukkitPermissions BukkitPermissions;
private static WorldListener WorldEvents; private static GMWorldListener WorldEvents;
public static final Logger logger = Logger.getLogger(GroupManager.class.getName()); public static final Logger logger = Logger.getLogger(GroupManager.class.getName());
// PERMISSIONS FOR COMMAND BEING LOADED // PERMISSIONS FOR COMMAND BEING LOADED

View file

@ -1,6 +1,7 @@
package org.anjocaido.groupmanager.events; package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.data.Group; import org.anjocaido.groupmanager.data.Group;
import org.bukkit.event.HandlerList;
/** /**
@ -13,6 +14,18 @@ public class GMGroupEvent extends GroupManagerEvent {
* *
*/ */
private static final long serialVersionUID = -5294917600434510451L; private static final long serialVersionUID = -5294917600434510451L;
private static final HandlerList handlers = new HandlerList();
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
//////////////////////////////
protected Group group; protected Group group;

View file

@ -1,5 +1,7 @@
package org.anjocaido.groupmanager.events; package org.anjocaido.groupmanager.events;
import org.bukkit.event.HandlerList;
/** /**
* @author ElgarL * @author ElgarL
@ -11,6 +13,19 @@ public class GMSystemEvent extends GroupManagerEvent {
* *
*/ */
private static final long serialVersionUID = -8786811924448821548L; private static final long serialVersionUID = -8786811924448821548L;
private static final HandlerList handlers = new HandlerList();
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
//////////////////////////////
protected Action action; protected Action action;
public GMSystemEvent(Action action) { public GMSystemEvent(Action action) {

View file

@ -1,6 +1,7 @@
package org.anjocaido.groupmanager.events; package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.data.User; import org.anjocaido.groupmanager.data.User;
import org.bukkit.event.HandlerList;
/** /**
@ -13,6 +14,18 @@ public class GMUserEvent extends GroupManagerEvent {
* *
*/ */
private static final long serialVersionUID = -5294917600434510451L; private static final long serialVersionUID = -5294917600434510451L;
private static final HandlerList handlers = new HandlerList();
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
//////////////////////////////
protected User user; protected User user;

View file

@ -1,9 +1,10 @@
package org.anjocaido.groupmanager.events; package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.GroupManager;
import org.bukkit.event.Event; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldInitEvent; import org.bukkit.event.world.WorldInitEvent;
import org.bukkit.event.world.WorldListener;
/** /**
@ -12,7 +13,7 @@ import org.bukkit.event.world.WorldListener;
* Handle new world creation from other plugins * Handle new world creation from other plugins
* *
*/ */
public class GMWorldListener extends WorldListener { public class GMWorldListener implements Listener {
private final GroupManager plugin; private final GroupManager plugin;
@ -22,10 +23,10 @@ public class GMWorldListener extends WorldListener {
} }
private void registerEvents() { private void registerEvents() {
plugin.getServer().getPluginManager().registerEvent(Event.Type.WORLD_INIT, this, Event.Priority.Lowest, plugin); plugin.getServer().getPluginManager().registerEvents(this, plugin);
} }
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onWorldInit(WorldInitEvent event) { public void onWorldInit(WorldInitEvent event) {
String worldName = event.getWorld().getName(); String worldName = event.getWorld().getName();

View file

@ -32,17 +32,17 @@ import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
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.PlayerListener;
import org.bukkit.event.player.PlayerPortalEvent; 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.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent; 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.event.server.ServerListener;
import org.bukkit.permissions.Permission; import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.permissions.PermissionAttachmentInfo;
@ -105,20 +105,8 @@ public class BukkitPermissions {
private void registerEvents() { private void registerEvents() {
PluginManager manager = plugin.getServer().getPluginManager(); PluginManager manager = plugin.getServer().getPluginManager();
PlayerEvents playerEventListener = new PlayerEvents(); manager.registerEvents(new PlayerEvents(), plugin);
manager.registerEvents(new BukkitEvents(), plugin);
manager.registerEvent(Event.Type.PLAYER_JOIN, playerEventListener, Event.Priority.Lowest, plugin);
manager.registerEvent(Event.Type.PLAYER_KICK, playerEventListener, Event.Priority.Lowest, plugin);
manager.registerEvent(Event.Type.PLAYER_QUIT, playerEventListener, Event.Priority.Lowest, plugin);
manager.registerEvent(Event.Type.PLAYER_RESPAWN, playerEventListener, Event.Priority.Lowest, plugin);
manager.registerEvent(Event.Type.PLAYER_TELEPORT, playerEventListener, Event.Priority.Lowest, plugin);
manager.registerEvent(Event.Type.PLAYER_PORTAL, playerEventListener, Event.Priority.Lowest, plugin);
ServerListener serverListener = new BukkitEvents();
manager.registerEvent(Event.Type.PLUGIN_ENABLE, serverListener, Event.Priority.Normal, plugin);
manager.registerEvent(Event.Type.PLUGIN_DISABLE, serverListener, Event.Priority.Normal, plugin);
} }
@ -374,9 +362,9 @@ public class BukkitPermissions {
} }
} }
protected class PlayerEvents extends PlayerListener { protected class PlayerEvents implements Listener {
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
setPlayer_join(true); setPlayer_join(true);
Player player = event.getPlayer(); Player player = event.getPlayer();
@ -388,26 +376,26 @@ public class BukkitPermissions {
setPlayer_join(false); setPlayer_join(false);
} }
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerPortal(PlayerPortalEvent event) { // will portal into another world 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 if (event.getTo() != null && !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // only if world actually changed
updatePermissions(event.getPlayer(), event.getTo().getWorld().getName()); updatePermissions(event.getPlayer(), event.getTo().getWorld().getName());
} }
} }
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerRespawn(PlayerRespawnEvent event) { // can be respawned in another world public void onPlayerRespawn(PlayerRespawnEvent event) { // can be respawned in another world
updatePermissions(event.getPlayer(), event.getRespawnLocation().getWorld().getName()); updatePermissions(event.getPlayer(), event.getRespawnLocation().getWorld().getName());
} }
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerTeleport(PlayerTeleportEvent event) { // can be teleported into another world public void onPlayerTeleport(PlayerTeleportEvent event) { // can be teleported into another world
if (event.getTo() != null && !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // only if world actually changed if (event.getTo() != null && !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // only if world actually changed
updatePermissions(event.getPlayer(), event.getTo().getWorld().getName()); updatePermissions(event.getPlayer(), event.getTo().getWorld().getName());
} }
} }
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerQuit(PlayerQuitEvent event) {
if (!GroupManager.isLoaded()) if (!GroupManager.isLoaded())
return; return;
@ -415,15 +403,15 @@ public class BukkitPermissions {
attachments.remove(event.getPlayer()); attachments.remove(event.getPlayer());
} }
@Override @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerKick(PlayerKickEvent event) { public void onPlayerKick(PlayerKickEvent event) {
attachments.remove(event.getPlayer()); attachments.remove(event.getPlayer());
} }
} }
protected class BukkitEvents extends ServerListener { protected class BukkitEvents implements Listener {
@Override @EventHandler(priority = EventPriority.NORMAL)
public void onPluginEnable(PluginEnableEvent event) { public void onPluginEnable(PluginEnableEvent event) {
if (!GroupManager.isLoaded()) if (!GroupManager.isLoaded())
return; return;
@ -432,7 +420,7 @@ public class BukkitPermissions {
updateAllPlayers(); updateAllPlayers();
} }
@Override @EventHandler(priority = EventPriority.NORMAL)
public void onPluginDisable(PluginDisableEvent event) { public void onPluginDisable(PluginDisableEvent event) {
collectPermissions(); collectPermissions();
// updateAllPlayers(); // updateAllPlayers();