Add a permission denied format event.
This commit is contained in:
parent
6fc7723466
commit
2544fa0a6b
@ -2,12 +2,12 @@ package com.massivecraft.mcore;
|
||||
|
||||
public class Lang
|
||||
{
|
||||
public static final String permForbidden = "<b>You don't have permission to %s.";
|
||||
public static final String permDoThat = "do that";
|
||||
public static final String PERM_DEFAULT_DENIED_FORMAT = "<b>You don't have permission to %s.";
|
||||
public static final String PERM_DEFAULT_DESCRIPTION = "do that";
|
||||
|
||||
public static final String commandSenderMustBePlayer = "<b>This command can only be used by ingame players.";
|
||||
public static final String commandSenderMusntBePlayer = "<b>This command can not be used by ingame players.";
|
||||
public static final String commandToFewArgs = "<b>To few arguments. <i>Use like this:";
|
||||
public static final String commandToManyArgs = "<b>Strange arguments %s<b>.";
|
||||
public static final String commandToManyArgs2 = "<i>Use the command like this:";
|
||||
public static final String COMMAND_SENDER_MUST_BE_PLAYER = "<b>This command can only be used by ingame players.";
|
||||
public static final String COMMAND_SENDER_MUSNT_BE_PLAYER = "<b>This command can not be used by ingame players.";
|
||||
public static final String COMMAND_TO_FEW_ARGS = "<b>To few arguments. <i>Use like this:";
|
||||
public static final String COMMAND_TO_MANY_ARGS = "<b>Strange arguments %s<b>.";
|
||||
public static final String COMMAND_TO_MANY_ARGS2 = "<i>Use the command like this:";
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ public abstract class MCommand
|
||||
String perm = this.getDescPermission();
|
||||
if (perm != null)
|
||||
{
|
||||
String pdesc = PermUtil.getPermissionDescription(this.getDescPermission());
|
||||
String pdesc = PermUtil.getDescription(this.getDescPermission());
|
||||
if (pdesc != null)
|
||||
{
|
||||
return pdesc;
|
||||
@ -320,7 +320,7 @@ public abstract class MCommand
|
||||
{
|
||||
if (sender != null)
|
||||
{
|
||||
msg(Lang.commandToFewArgs);
|
||||
msg(Lang.COMMAND_TO_FEW_ARGS);
|
||||
sender.sendMessage(this.getUseageTemplate());
|
||||
}
|
||||
return false;
|
||||
@ -332,8 +332,8 @@ public abstract class MCommand
|
||||
{
|
||||
// Get the to many string slice
|
||||
List<String> theToMany = args.subList(this.requiredArgs.size() + this.optionalArgs.size(), args.size());
|
||||
msg(Lang.commandToManyArgs, Txt.implodeCommaAndDot(theToMany, Txt.parse("<aqua>%s"), Txt.parse("<b>, "), Txt.parse("<b> and "), ""));
|
||||
msg(Lang.commandToManyArgs2);
|
||||
msg(Lang.COMMAND_TO_MANY_ARGS, Txt.implodeCommaAndDot(theToMany, Txt.parse("<aqua>%s"), Txt.parse("<b>, "), Txt.parse("<b> and "), ""));
|
||||
msg(Lang.COMMAND_TO_MANY_ARGS2);
|
||||
sender.sendMessage(this.getUseageTemplate());
|
||||
}
|
||||
return false;
|
||||
|
@ -36,6 +36,6 @@ public class ReqHasPerm extends ReqAbstract
|
||||
@Override
|
||||
public String createErrorMessage(CommandSender sender, MCommand command)
|
||||
{
|
||||
return PermUtil.getForbiddenMessage(this.perm);
|
||||
return PermUtil.getDeniedMessage(this.perm);
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public class ReqIsPlayer extends ReqAbstract
|
||||
@Override
|
||||
public String createErrorMessage(CommandSender sender, MCommand command)
|
||||
{
|
||||
return Lang.commandSenderMustBePlayer;
|
||||
return Lang.COMMAND_SENDER_MUST_BE_PLAYER;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public class ReqIsntPlayer extends ReqAbstract
|
||||
@Override
|
||||
public String createErrorMessage(CommandSender sender, MCommand command)
|
||||
{
|
||||
return Lang.commandSenderMusntBePlayer;
|
||||
return Lang.COMMAND_SENDER_MUSNT_BE_PLAYER;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
package com.massivecraft.mcore.event;
|
||||
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class MCorePermissionDeniedFormatEvent extends MCoreEvent
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// REQUIRED EVENT CODE
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@Override public HandlerList getHandlers() { return handlers; }
|
||||
public static HandlerList getHandlerList() { return handlers; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// FIELD
|
||||
// -------------------------------------------- //
|
||||
|
||||
private final String permissionName;
|
||||
public String getPermissionName() { return this.permissionName; }
|
||||
|
||||
private String format;
|
||||
public String getFormat() { return this.format; }
|
||||
public void setFormat(String format) { this.format = format; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
public MCorePermissionDeniedFormatEvent(String permissionName)
|
||||
{
|
||||
this.permissionName = permissionName;
|
||||
this.format = null;
|
||||
}
|
||||
}
|
@ -11,6 +11,7 @@ import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
import com.massivecraft.mcore.Lang;
|
||||
import com.massivecraft.mcore.MCore;
|
||||
import com.massivecraft.mcore.event.MCorePermissionDeniedFormatEvent;
|
||||
|
||||
public class PermUtil
|
||||
{
|
||||
@ -43,7 +44,7 @@ public class PermUtil
|
||||
if (permissible instanceof CommandSender)
|
||||
{
|
||||
CommandSender sender = (CommandSender)permissible;
|
||||
sender.sendMessage(getForbiddenMessage(perm));
|
||||
sender.sendMessage(getDeniedMessage(perm));
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -53,24 +54,40 @@ public class PermUtil
|
||||
// DESCRIPTIONS AND MESSAGES
|
||||
// -------------------------------------------- //
|
||||
|
||||
public static String getPermissionDescription(String perm)
|
||||
public static String getDescription(String perm)
|
||||
{
|
||||
if (perm == null) return Lang.permDoThat;
|
||||
if (perm == null) return Lang.PERM_DEFAULT_DESCRIPTION;
|
||||
Permission permission = Bukkit.getPluginManager().getPermission(perm);
|
||||
return getPermissionDescription(permission);
|
||||
return getDescription(permission);
|
||||
}
|
||||
|
||||
public static String getPermissionDescription(Permission perm)
|
||||
public static String getDescription(Permission perm)
|
||||
{
|
||||
if (perm == null) return Lang.permDoThat;
|
||||
if (perm == null) return Lang.PERM_DEFAULT_DESCRIPTION;
|
||||
String desc = perm.getDescription();
|
||||
if (desc == null || desc.length() == 0) return Lang.permDoThat;
|
||||
if (desc == null || desc.length() == 0) return Lang.PERM_DEFAULT_DESCRIPTION;
|
||||
return desc;
|
||||
}
|
||||
|
||||
public static String getForbiddenMessage(String perm)
|
||||
public static String getDeniedFormat(String perm)
|
||||
{
|
||||
return Txt.parse(Lang.permForbidden, getPermissionDescription(perm));
|
||||
MCorePermissionDeniedFormatEvent event = new MCorePermissionDeniedFormatEvent(perm);
|
||||
event.run();
|
||||
String ret = event.getFormat();
|
||||
if (ret == null) ret = Lang.PERM_DEFAULT_DENIED_FORMAT;
|
||||
return ret;
|
||||
}
|
||||
public static String getDeniedFormat(Permission perm)
|
||||
{
|
||||
return getDeniedFormat(perm == null ? null : perm.getName());
|
||||
}
|
||||
|
||||
public static String getDeniedMessage(String perm)
|
||||
{
|
||||
return Txt.parse(getDeniedFormat(perm), getDescription(perm));
|
||||
}
|
||||
public static String getDeniedMessage(Permission perm)
|
||||
{
|
||||
return Txt.parse(getDeniedFormat(perm), getDescription(perm));
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
|
Loading…
Reference in New Issue
Block a user