/limit can now change drawing command reload threshold, physics undo max entries, and per rank max undo limit.

This commit is contained in:
UnknownShadow200 2016-02-13 21:56:49 +11:00
parent fc246422e0
commit d6e425e5f7

View File

@ -14,11 +14,11 @@
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses.
*/
namespace MCGalaxy.Commands
{
public sealed class CmdLimit : Command
{
*/
namespace MCGalaxy.Commands {
public sealed class CmdLimit : Command {
public override string name { get { return "limit"; } }
public override string shortcut { get { return ""; } }
public override string type { get { return CommandTypes.Moderation; } }
@ -26,46 +26,56 @@ namespace MCGalaxy.Commands
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
public CmdLimit() { }
public override void Use(Player p, string message)
{
if (message.Split(' ').Length != 2) { Help(p); return; }
int newLimit;
try { newLimit = int.Parse(message.Split(' ')[1]); }
catch { Player.SendMessage(p, "Invalid limit amount"); return; }
if (newLimit < 1) { Player.SendMessage(p, "Cannot set below 1."); return; }
Group foundGroup = Group.Find(message.Split(' ')[0]);
if (foundGroup != null)
{
foundGroup.maxBlocks = newLimit;
Player.GlobalMessage(foundGroup.color + foundGroup.name + Server.DefaultColor + "'s building limits were set to &b" + newLimit);
Group.saveGroups(Group.GroupList);
public override void Use(Player p, string message) {
string[] args = message.Split(' ');
if (args.Length < 2) { Help(p); return; }
int limit;
if (!int.TryParse(args[1], out limit) || limit <= 0) {
Player.SendMessage(p, "Limit amount must be a whole number and greater than 0."); return;
}
else
{
switch (message.Split(' ')[0].ToLower())
{
switch (args[0].ToLower()) {
case "rt":
case "reloadthreshold":
Player.GlobalMessage("Threshold before drawing reloads map changed to &b" + limit);
Server.DrawReloadLimit = limit; return;
case "rp":
case "restartphysics":
Server.rpLimit = newLimit;
Player.GlobalMessage("Custom /rp's limit was changed to &b" + newLimit.ToString());
break;
case "rpnorm":
Player.GlobalMessage("Custom /rp's limit was changed to &b" + limit);
Server.rpLimit = limit; return;
case "rpnormal":
Server.rpNormLimit = newLimit;
Player.GlobalMessage("Normal /rp's limit was changed to &b" + newLimit.ToString());
break;
Player.GlobalMessage("Normal /rp's limit was changed to &b" + limit);
Server.rpNormLimit = limit; return;
case "pu":
case "physicsundo":
Player.GlobalMessage("Physics undo max entries was changed to &b" + limit);
Server.physUndo = limit; return;
}
if (args.Length == 2) { Player.SendMessage(p, "You need to provide a rank name for this type."); return; }
Group grp = Group.Find(args[2]);
if (grp == null) { Player.SendMessage(p, "No rank found matching: " + args[2]); return; }
switch (args[0].ToLower()) {
case "dl":
case "drawlimit":
Player.GlobalMessage(grp.color + grp.name + "%S's draw limit was set to &b" + limit);
grp.maxBlocks = limit; break;
case "mu":
case "maxundo":
Player.GlobalMessage(grp.color + grp.name + "%S's undo limit was set to &b" + limit);
grp.maxUndo = limit; break;
default:
Player.SendMessage(p, "No supported /limit");
break;
Help(p); return;
}
Group.saveGroups(Group.GroupList);
}
}
public override void Help(Player p)
{
Player.SendMessage(p, "/limit <type> <amount> - Sets the limit for <type>");
Player.SendMessage(p, "<types> - " + Group.concatList(true, true) + ", RP, RPNormal");
public override void Help(Player p) {
Player.SendMessage(p, "/limit <type> <amount> [rank] - Sets the limit for <type>");
Player.SendMessage(p, "Valid types: reloadthreshold(rt), restartphysics(rp), " +
"rpnormal, physicsundo(pu), drawlimit(dl), maxundo(mu)");
Player.SendMessage(p, "Rank is required for drawlimit and maxundo types.");
}
}
}