@EventHandler(priority = EventPriority.HIGH) public void onPermissionEntityEvent(PermissionEntityEvent event) { Resident resident = null; Player player = null; try { if (PermissionEventEnums.PEXEntity_Action.valueOf(event.getEventName()) != null) { PermissionEntityEvent EntityEvent = (PermissionEntityEvent) event; PermissionEntity entity = EntityEvent.getEntity(); if (entity instanceof PermissionGroup) { PermissionGroup group = (PermissionGroup) entity; // Update all players who are in this group. for (Player toUpdate : BukkitTools.getOnlinePlayers()) { if (toUpdate != null) if (Arrays.asList(getPlayerGroups(toUpdate)).contains(group)) { // setup default modes String[] modes = getPlayerPermissionStringNode( toUpdate.getName(), PermissionNodes.TOWNY_DEFAULT_MODES.getNode()) .split(","); plugin.setPlayerMode(toUpdate, modes, false); plugin.resetCache(toUpdate); } } } else if (entity instanceof PermissionUser) { try { resident = TownyUniverse.getDataSource().getResident(((PermissionUser) entity).getName()); player = BukkitTools.getPlayerExact(resident.getName()); if (player != null) { // setup default modes for this player. String[] modes = getPlayerPermissionStringNode( player.getName(), PermissionNodes.TOWNY_DEFAULT_MODES.getNode()) .split(","); plugin.setPlayerMode(player, modes, false); plugin.resetCache(player); } } catch (NotRegisteredException x) { } } } } catch (IllegalArgumentException e) { // Not tracking this event type } }
@EventHandler(priority = EventPriority.HIGH) public void onPermissionSystemEvent(PermissionSystemEvent event) { try { if (PermissionEventEnums.PEXSystem_Action.valueOf(event.getEventName()) != null) { // Update all players. for (Player toUpdate : BukkitTools.getOnlinePlayers()) { if (toUpdate != null) { // setup default modes String[] modes = getPlayerPermissionStringNode( toUpdate.getName(), PermissionNodes.TOWNY_DEFAULT_MODES.getNode()) .split(","); plugin.setPlayerMode(toUpdate, modes, false); plugin.resetCache(toUpdate); } } } } catch (IllegalArgumentException e) { // Not tracking this event type } }