@@ -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