Skip to content

Commit 26f5125

Browse files
Make /maxcaps usable from console and actually save changes
1 parent 8666b66 commit 26f5125

File tree

1 file changed

+35
-78
lines changed

1 file changed

+35
-78
lines changed

fCraft/Commands/ModerationCommands.cs

Lines changed: 35 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,92 +1724,49 @@ static void SetAndPrintJoinOnWorldState(Player player, bool joinRankWorld) {
17241724
Aliases = new[] { "caps" },
17251725
Permissions = new[] { Permission.Chat },
17261726
Category = CommandCategory.New | CommandCategory.Moderation | CommandCategory.Chat,
1727+
IsConsoleSafe = true,
17271728
Help = "Changes/Displays the max amount of uppercase letters a rank can use in a message.",
17281729
Usage = "/MaxCaps <Rank> <Amount>",
17291730
Handler = MaxCapsHandler
17301731
};
17311732

1732-
static void MaxCapsHandler(Player player, CommandReader cmd)
1733-
{
1734-
string rname = cmd.Next();
1735-
string rmax = cmd.Next();
1736-
Rank prank = player.Info.Rank;
1737-
if (player.Info.Rank.Can(Permission.ShutdownServer))
1738-
{
1739-
if (rname == null)
1740-
{
1741-
if (prank.MaxCaps != 0 && prank.MaxCaps != 1)
1742-
{
1743-
player.Message("Rank ({0}&S) has a max of {1} uppercase letters/message.", prank.ClassyName, prank.MaxCaps);
1744-
return;
1745-
}
1746-
else if (prank.MaxCaps == 0)
1747-
{
1748-
player.Message("Rank ({0}&S) has no max.", prank.ClassyName);
1749-
return;
1750-
}
1751-
else if (prank.MaxCaps == 1)
1752-
{
1753-
player.Message("Rank ({0}&S) has a max of (RawMessage.Length / 2) uppercase letters/message.", prank.ClassyName);
1754-
return;
1755-
}
1756-
}
1757-
Rank rank = RankManager.FindRank(rname);
1758-
if (rank == null)
1759-
{
1760-
player.MessageNoRank(rname);
1761-
return;
1762-
}
1763-
if (rmax == null)
1764-
{
1765-
if (rank.MaxCaps != 0 && rank.MaxCaps != 1)
1766-
{
1767-
player.Message("Rank ({0}&S) has a max of {1} uppercase letters/message.", rank.ClassyName, rank.MaxCaps);
1768-
return;
1769-
}
1770-
else if (rank.MaxCaps == 0)
1771-
{
1772-
player.Message("Rank ({0}&S) has no max.", rank.ClassyName);
1773-
return;
1774-
}
1775-
else if (rank.MaxCaps == 1)
1776-
{
1777-
player.Message("Rank ({0}&S) has a max of (RawMessage.Length / 2) uppercase letters/message.", rank.ClassyName);
1778-
return;
1779-
}
1780-
}
1781-
int mcaps;
1782-
if (!int.TryParse(rmax, out mcaps))
1783-
{
1784-
CdMaxCaps.PrintUsage(player);
1785-
return;
1786-
}
1787-
if (rank != null)
1788-
{
1789-
rank.MaxCaps = mcaps;
1790-
player.Message("Set MaxCaps for rank ({0}&S) to {1} uppercase letters/message.", rank.ClassyName, rank.MaxCaps);
1791-
return;
1792-
}
1733+
static void MaxCapsHandler(Player player, CommandReader cmd) {
1734+
string rankName = cmd.Next();
1735+
if (!player.Info.Rank.Can(Permission.ShutdownServer) || rankName == null) {
1736+
PrintRankMaxCaps(player, player.Info.Rank);
1737+
return;
17931738
}
1794-
else
1795-
{
1796-
if (prank.MaxCaps != 0 && prank.MaxCaps != 1)
1797-
{
1798-
player.Message("Rank ({0}&S) has a max of {1} uppercase letters/message.", prank.ClassyName, prank.MaxCaps);
1799-
return;
1800-
}
1801-
else if (prank.MaxCaps == 0)
1802-
{
1803-
player.Message("Rank ({0}&S) has no max.", prank.ClassyName);
1804-
return;
1805-
}
1806-
else if (prank.MaxCaps == 1)
1807-
{
1808-
player.Message("Rank ({0}&S) has a max of (RawMessage.Length / 2) uppercase letters/message.", prank.ClassyName);
1809-
return;
1810-
}
1739+
1740+
Rank rank = RankManager.FindRank(rankName);
1741+
if (rank == null) {
1742+
player.MessageNoRank(rankName);
1743+
return;
1744+
}
1745+
1746+
if (!cmd.HasNext) {
1747+
PrintRankMaxCaps(player, rank);
1748+
return;
1749+
}
1750+
int maxCaps;
1751+
if (!cmd.NextInt(out maxCaps)) {
1752+
CdMaxCaps.PrintUsage(player);
18111753
return;
18121754
}
1755+
1756+
rank.MaxCaps = maxCaps;
1757+
Config.Save();
1758+
player.Message("Set MaxCaps for rank ({0}&S) to {1} uppercase letters/message.", rank.ClassyName, rank.MaxCaps);
1759+
return;
1760+
}
1761+
1762+
static void PrintRankMaxCaps(Player player, Rank rank) {
1763+
if (rank.MaxCaps == 0) {
1764+
player.Message("Rank ({0}&S) has no max.", rank.ClassyName);
1765+
} else if (rank.MaxCaps == 1) {
1766+
player.Message("Rank ({0}&S) has a max of (RawMessage.Length / 2) uppercase letters/message.", rank.ClassyName);
1767+
} else if (rank.MaxCaps != 0 && rank.MaxCaps != 1) {
1768+
player.Message("Rank ({0}&S) has a max of {1} uppercase letters/message.", rank.ClassyName, rank.MaxCaps);
1769+
}
18131770
}
18141771

18151772
#endregion

0 commit comments

Comments
 (0)