f perm for kick
This commit is contained in:
parent
baea59a1cd
commit
925014bd60
@ -7,6 +7,8 @@ import com.massivecraft.factions.P;
|
|||||||
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
import com.massivecraft.factions.event.FPlayerLeaveEvent;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
|
import com.massivecraft.factions.zcore.fperms.Access;
|
||||||
|
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||||
import com.massivecraft.factions.zcore.util.TL;
|
import com.massivecraft.factions.zcore.util.TL;
|
||||||
import mkremins.fanciful.FancyMessage;
|
import mkremins.fanciful.FancyMessage;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -26,7 +28,7 @@ public class CmdKick extends FCommand {
|
|||||||
|
|
||||||
senderMustBePlayer = true;
|
senderMustBePlayer = true;
|
||||||
senderMustBeMember = false;
|
senderMustBeMember = false;
|
||||||
senderMustBeModerator = true;
|
senderMustBeModerator = false;
|
||||||
senderMustBeAdmin = false;
|
senderMustBeAdmin = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,12 +67,20 @@ public class CmdKick extends FCommand {
|
|||||||
|
|
||||||
// players with admin-level "disband" permission can bypass these requirements
|
// players with admin-level "disband" permission can bypass these requirements
|
||||||
if (!Permission.KICK_ANY.has(sender)) {
|
if (!Permission.KICK_ANY.has(sender)) {
|
||||||
|
|
||||||
|
Access access = myFaction.getAccess(fme, PermissableAction.INVITE);
|
||||||
|
if (access == Access.DENY || (access == Access.UNDEFINED && !assertMinRole(Role.MODERATOR))) {
|
||||||
|
fme.msg(TL.GENERIC_NOPERMISSION, "kick");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (toKickFaction != myFaction) {
|
if (toKickFaction != myFaction) {
|
||||||
msg(TL.COMMAND_KICK_NOTMEMBER, toKick.describeTo(fme, true), myFaction.describeTo(fme));
|
msg(TL.COMMAND_KICK_NOTMEMBER, toKick.describeTo(fme, true), myFaction.describeTo(fme));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toKick.getRole().value >= fme.getRole().value) {
|
// Check for Access before we check for Role.
|
||||||
|
if (access != Access.ALLOW && toKick.getRole().value >= fme.getRole().value) {
|
||||||
msg(TL.COMMAND_KICK_INSUFFICIENTRANK);
|
msg(TL.COMMAND_KICK_INSUFFICIENTRANK);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user