diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java b/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java index a18f77ed..0001de8a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdAdmin.java @@ -70,7 +70,7 @@ public class CmdAdmin extends FCommand { // if target player is currently admin, demote and replace him if (fyou == admin) { - targetFaction.promoteNewLeader(); + promoteNewLeader(targetFaction); context.msg(TL.COMMAND_ADMIN_DEMOTES, fyou.describeTo(context.fPlayer, true)); fyou.msg(TL.COMMAND_ADMIN_DEMOTED, context.player == null ? TL.GENERIC_SERVERADMIN.toString() : context.fPlayer.describeTo(fyou, true)); return; @@ -78,9 +78,9 @@ public class CmdAdmin extends FCommand { // promote target player, and demote existing admin if one exists if (admin != null) { - admin.setRole(Role.COLEADER); + setRole(admin, Role.COLEADER); } - fyou.setRole(Role.LEADER); + setRole(fyou, Role.LEADER); context.msg(TL.COMMAND_ADMIN_PROMOTES, fyou.describeTo(context.fPlayer, true)); FactionsPlugin.instance.getFlogManager().log(targetFaction, FLogType.RANK_EDIT, context.fPlayer.getName(), fyou.getName(), ChatColor.RED + "Admin"); @@ -94,6 +94,18 @@ public class CmdAdmin extends FCommand { }); } + private void setRole(FPlayer fp, Role r) { + FactionsPlugin.getInstance().getServer().getScheduler().runTask(FactionsPlugin.instance, () -> { + fp.setRole(r); + }); + } + + private void promoteNewLeader(Faction f) { + FactionsPlugin.getInstance().getServer().getScheduler().runTask(FactionsPlugin.instance, () -> { + f.promoteNewLeader(); + }); + } + public TL getUsageTranslation() { return TL.COMMAND_ADMIN_DESCRIPTION; } diff --git a/src/main/java/com/massivecraft/factions/event/FPlayerRoleChangeEvent.java b/src/main/java/com/massivecraft/factions/event/FPlayerRoleChangeEvent.java index 5913f105..be56ac1f 100644 --- a/src/main/java/com/massivecraft/factions/event/FPlayerRoleChangeEvent.java +++ b/src/main/java/com/massivecraft/factions/event/FPlayerRoleChangeEvent.java @@ -32,7 +32,7 @@ public class FPlayerRoleChangeEvent extends FactionPlayerEvent implements Cancel @Override public boolean isCancelled() { - return false; + return cancelled; } @Override