mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-22 12:05:51 -04:00
Any command can restrict from usage in MBs, fixes #490.
This commit is contained in:
parent
2c35b13d31
commit
8c309a0656
@ -75,7 +75,8 @@ namespace MCGalaxy.Blocks.Extended {
|
|||||||
Command.Search(ref alias, ref cmdArgs);
|
Command.Search(ref alias, ref cmdArgs);
|
||||||
|
|
||||||
foreach (Command cmd in Command.all.commands) {
|
foreach (Command cmd in Command.all.commands) {
|
||||||
if (p.group.CanExecute(cmd) && (allCmds || !cmd.type.Contains("mod"))) continue;
|
bool mbUseable = !cmd.MessageBlockRestricted && !cmd.type.Contains("mod");
|
||||||
|
if (p.group.CanExecute(cmd) && (allCmds || mbUseable)) continue;
|
||||||
|
|
||||||
if (IsCommand(message, cmd.name) || IsCommand(alias, cmd.name)) {
|
if (IsCommand(message, cmd.name) || IsCommand(alias, cmd.name)) {
|
||||||
Player.Message(p, "You cannot use %T/{0} %Sin a messageblock.", cmd.name); return false;
|
Player.Message(p, "You cannot use %T/{0} %Sin a messageblock.", cmd.name); return false;
|
||||||
|
@ -48,6 +48,9 @@ namespace MCGalaxy {
|
|||||||
public virtual CommandAlias[] Aliases { get { return null; } }
|
public virtual CommandAlias[] Aliases { get { return null; } }
|
||||||
/// <summary> Whether this command can be used by 'super' players. (Console and IRC controllers). </summary>
|
/// <summary> Whether this command can be used by 'super' players. (Console and IRC controllers). </summary>
|
||||||
public virtual bool SuperUseable { get { return true; } }
|
public virtual bool SuperUseable { get { return true; } }
|
||||||
|
/// <summary> Whether this command is restricted in usage in message blocks.
|
||||||
|
/// Restricted commands require the player to have the extra permission for /mb to be able to be placed in message blocks. </summary>
|
||||||
|
public virtual bool MessageBlockRestricted { get { return false; } }
|
||||||
|
|
||||||
public static CommandList all = new CommandList();
|
public static CommandList all = new CommandList();
|
||||||
public static CommandList core = new CommandList();
|
public static CommandList core = new CommandList();
|
||||||
|
@ -27,6 +27,7 @@ namespace MCGalaxy.Commands.Maintenance {
|
|||||||
get { return new [] { new CommandAlias("ClearBlockChanges", "clear"),
|
get { return new [] { new CommandAlias("ClearBlockChanges", "clear"),
|
||||||
new CommandAlias("cbc", "clear") }; }
|
new CommandAlias("cbc", "clear") }; }
|
||||||
}
|
}
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
string[] args = message.SplitSpaces();
|
string[] args = message.SplitSpaces();
|
||||||
|
@ -25,6 +25,7 @@ namespace MCGalaxy.Commands.Scripting {
|
|||||||
public override string type { get { return CommandTypes.Other; } }
|
public override string type { get { return CommandTypes.Other; } }
|
||||||
public override bool museumUsable { get { return true; } }
|
public override bool museumUsable { get { return true; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0) { Help(p); return; }
|
if (message.Length == 0) { Help(p); return; }
|
||||||
|
@ -24,6 +24,7 @@ namespace MCGalaxy.Commands.Scripting {
|
|||||||
public override string type { get { return CommandTypes.Other; } }
|
public override string type { get { return CommandTypes.Other; } }
|
||||||
public override bool museumUsable { get { return true; } }
|
public override bool museumUsable { get { return true; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (!Formatter.ValidName(p, message, "command")) return;
|
if (!Formatter.ValidName(p, message, "command")) return;
|
||||||
|
@ -21,6 +21,7 @@ namespace MCGalaxy.Commands.Scripting {
|
|||||||
public override string type { get { return CommandTypes.Other; } }
|
public override string type { get { return CommandTypes.Other; } }
|
||||||
public override bool museumUsable { get { return true; } }
|
public override bool museumUsable { get { return true; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0) { Help(p); return; }
|
if (message.Length == 0) { Help(p); return; }
|
||||||
|
@ -25,6 +25,7 @@ namespace MCGalaxy.Commands.Scripting {
|
|||||||
public override string type { get { return CommandTypes.Other; } }
|
public override string type { get { return CommandTypes.Other; } }
|
||||||
public override bool museumUsable { get { return true; } }
|
public override bool museumUsable { get { return true; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0) { Help(p); return; }
|
if (message.Length == 0) { Help(p); return; }
|
||||||
|
@ -22,6 +22,7 @@ namespace MCGalaxy.Commands.Scripting {
|
|||||||
public override string type { get { return CommandTypes.Other; } }
|
public override string type { get { return CommandTypes.Other; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
|
||||||
public override bool museumUsable { get { return true; } }
|
public override bool museumUsable { get { return true; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
string[] args = message.SplitSpaces();
|
string[] args = message.SplitSpaces();
|
||||||
|
@ -28,6 +28,7 @@ namespace MCGalaxy.Commands.Scripting {
|
|||||||
get { return new[] { new CommandAlias("PCreate", "pcreate"),
|
get { return new[] { new CommandAlias("PCreate", "pcreate"),
|
||||||
new CommandAlias("PLoad", "pload"), new CommandAlias("PUnload", "punload") }; }
|
new CommandAlias("PLoad", "pload"), new CommandAlias("PUnload", "punload") }; }
|
||||||
}
|
}
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
string[] parts = message.SplitSpaces(2);
|
string[] parts = message.SplitSpaces(2);
|
||||||
|
@ -29,6 +29,7 @@ namespace MCGalaxy.Commands.World {
|
|||||||
public override CommandAlias[] Aliases {
|
public override CommandAlias[] Aliases {
|
||||||
get { return new[] { new CommandAlias("WCopy"), new CommandAlias("WorldCopy") }; }
|
get { return new[] { new CommandAlias("WCopy"), new CommandAlias("WorldCopy") }; }
|
||||||
}
|
}
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0) { Help(p); return; }
|
if (message.Length == 0) { Help(p); return; }
|
||||||
|
@ -28,6 +28,7 @@ namespace MCGalaxy.Commands.World {
|
|||||||
public override CommandAlias[] Aliases {
|
public override CommandAlias[] Aliases {
|
||||||
get { return new[] { new CommandAlias("WDelete"), new CommandAlias("WorldDelete"), new CommandAlias("WRemove") }; }
|
get { return new[] { new CommandAlias("WDelete"), new CommandAlias("WorldDelete"), new CommandAlias("WRemove") }; }
|
||||||
}
|
}
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0 || message.SplitSpaces().Length > 1) { Help(p); return; }
|
if (message.Length == 0 || message.SplitSpaces().Length > 1) { Help(p); return; }
|
||||||
|
@ -27,6 +27,7 @@ namespace MCGalaxy.Commands.World {
|
|||||||
public override CommandAlias[] Aliases {
|
public override CommandAlias[] Aliases {
|
||||||
get { return new[] { new CommandAlias("WRename"), new CommandAlias("WorldRename") }; }
|
get { return new[] { new CommandAlias("WRename"), new CommandAlias("WorldRename") }; }
|
||||||
}
|
}
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
string[] args = message.SplitSpaces();
|
string[] args = message.SplitSpaces();
|
||||||
|
@ -28,6 +28,7 @@ namespace MCGalaxy.Commands.World {
|
|||||||
public override CommandAlias[] Aliases {
|
public override CommandAlias[] Aliases {
|
||||||
get { return new[] { new CommandAlias("WResize"), new CommandAlias("WorldResize") }; }
|
get { return new[] { new CommandAlias("WResize"), new CommandAlias("WorldResize") }; }
|
||||||
}
|
}
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
string[] args = message.SplitSpaces();
|
string[] args = message.SplitSpaces();
|
||||||
|
@ -25,6 +25,7 @@ namespace MCGalaxy.Commands.World {
|
|||||||
public override string type { get { return CommandTypes.World; } }
|
public override string type { get { return CommandTypes.World; } }
|
||||||
public override bool museumUsable { get { return false; } }
|
public override bool museumUsable { get { return false; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0) { OutputBackups(p); return; }
|
if (message.Length == 0) { OutputBackups(p); return; }
|
||||||
|
@ -21,10 +21,11 @@ namespace MCGalaxy.Commands.Building {
|
|||||||
public sealed class CmdCmdBind : Command {
|
public sealed class CmdCmdBind : Command {
|
||||||
public override string name { get { return "CmdBind"; } }
|
public override string name { get { return "CmdBind"; } }
|
||||||
public override string shortcut { get { return "cb"; } }
|
public override string shortcut { get { return "cb"; } }
|
||||||
public override string type { get { return CommandTypes.Moderation; } }
|
public override string type { get { return CommandTypes.Building; } }
|
||||||
public override bool museumUsable { get { return true; } }
|
public override bool museumUsable { get { return true; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Builder; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Builder; } }
|
||||||
public override bool SuperUseable { get { return false; } }
|
public override bool SuperUseable { get { return false; } }
|
||||||
|
public override bool MessageBlockRestricted { get { return true; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
if (message.Length == 0) {
|
if (message.Length == 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user