@@ -70,157 +70,48 @@ internal static void Init() {
7070 Handler = CalcHandler ,
7171 } ;
7272
73- static void CalcHandler ( Player player , CommandReader cmd )
74- {
75- string numberone = cmd . Next ( ) ;
76- string op = cmd . Next ( ) ;
77- string numbertwo = cmd . Next ( ) ;
78- double no1 = 1 ;
79- double no2 = 1 ;
73+ static void CalcHandler ( Player player , CommandReader cmd ) {
74+ string arg1 = cmd . Next ( ) , op = cmd . Next ( ) , arg2 = cmd . Next ( ) ;
75+ double n1 , n2 ;
8076
81- if ( numberone == null || op == null )
82- {
77+ if ( arg1 == null || op == null ) {
8378 CdCalculator . PrintUsage ( player ) ;
8479 return ;
8580 }
86-
87- if ( ! double . TryParse ( numberone , out no1 ) )
88- {
89- player . Message ( "Please choose from a whole number." ) ;
81+ if ( ! double . TryParse ( arg1 , out n1 ) ) {
82+ player . Message ( "{0} is not a whole number." , arg1 ) ;
9083 return ;
9184 }
92- if ( numbertwo != null )
93- {
94- if ( ! double . TryParse ( numbertwo , out no2 ) )
95- {
96- player . Message ( "Please choose from a whole number." ) ;
85+
86+ if ( op == "+" || op == "-" || op == "*" || op == "/" ) {
87+ if ( arg2 == null ) {
88+ CdCalculator . PrintUsage ( player ) ;
9789 return ;
9890 }
99- }
100-
101-
102- if ( player . Can ( Permission . Chat ) )
103- {
104-
105- if ( numberone != null || op != null )
106- {
107- if ( op == "+" | op == "-" | op == "*" | op == "/" | op == "sqrt" | op == "sqr" )
108- {
109-
110- if ( op == "+" )
111- {
112- if ( numbertwo == null )
113- {
114- player . Message ( "You must select a second number!" ) ;
115- return ;
116- }
117- double add = no1 + no2 ;
118- if ( add < 0 | no1 < 0 | no2 < 0 )
119- {
120- player . Message ( "Negative Number Detected, please choose from a whole number." ) ;
121- return ;
122- }
123- else
124- {
125- player . Message ( "&0Calculator&f: {0} + {1} = {2}" , no1 , no2 , add ) ;
126- }
127- }
128- if ( op == "-" )
129- {
130- if ( numbertwo == null )
131- {
132- player . Message ( "You must select a second number!" ) ;
133- return ;
134- }
135- double subtr = no1 - no2 ;
136- if ( subtr < 0 | no1 < 0 | no2 < 0 )
137- {
138- player . Message ( "Negative Number Detected, please choose from a whole number." ) ;
139- return ;
140- }
141- else
142- {
143- player . Message ( "&0Calculator&f: {0} - {1} = {2}" , no1 , no2 , subtr ) ;
144- }
145- }
146- if ( op == "*" )
147- {
148- if ( numbertwo == null )
149- {
150- player . Message ( "You must select a second number!" ) ;
151- return ;
152- }
153- double mult = no1 * no2 ;
154- if ( mult < 0 | no1 < 0 | no2 < 0 )
155- {
156- player . Message ( "Negative Number Detected, please choose from a whole number." ) ;
157- return ;
158- }
159- else
160- {
161- player . Message ( "&0Calculator&f: {0} * {1} = {2}" , no1 , no2 , mult ) ;
162- }
163- }
164- if ( op == "/" )
165- {
166- if ( numbertwo == null )
167- {
168- player . Message ( "You must select a second number!" ) ;
169- return ;
170- }
171- double div = no1 / no2 ;
172- if ( div < 0 | no1 < 0 | no2 < 0 )
173- {
174- player . Message ( "Negative Number Detected, please choose from a whole number." ) ;
175- return ;
176- }
177- else
178- {
179- player . Message ( "&0Calculator&f: {0} / {1} = {2}" , no1 , no2 , div ) ;
180- return ;
181- }
182- }
183- if ( op == "sqrt" )
184- {
185- double sqrt = Math . Round ( Math . Sqrt ( no1 ) , 2 ) ;
186- if ( no1 < 0 )
187- {
188- player . Message ( "Negative Number Detected, please choose from a whole number." ) ;
189- return ;
190- }
191- else
192- {
193- player . Message ( "&0Calculator&f: Square Root of {0} = {1}" , no1 , sqrt ) ;
194- return ;
195- }
196- }
197- if ( op == "sqr" )
198- {
199- double sqr = no1 * no1 ;
200- if ( no1 < 0 )
201- {
202- player . Message ( "Negative Number Detected, please choose from a whole number." ) ;
203- return ;
204- }
205- else
206- {
207- player . Message ( "&0Calculator&f: Square of {0} = {1}" , no1 , sqr ) ;
208- return ;
209- }
210- }
211- }
212- else
213- {
214- player . Message ( "&cInvalid Operator. Please choose from '+' , '-' , '*' , '/' , 'sqrt' , or 'sqr'" ) ;
215- return ;
216- }
91+ if ( ! double . TryParse ( arg2 , out n2 ) ) {
92+ player . Message ( "{0} is not a whole number." , arg2 ) ;
93+ return ;
21794 }
218- else
219- {
220- CdCalculator . PrintUsage ( player ) ;
95+
96+ double result = 0 ;
97+ if ( op == "+" ) { result = n1 + n2 ; }
98+ if ( op == "-" ) { result = n1 - n2 ; }
99+ if ( op == "*" ) { result = n1 * n2 ; }
100+ if ( op == "/" ) { result = n1 / n2 ; }
101+
102+ player . Message ( "&0Calculator&f: {0} {1} {2} = {3}" , n1 , op , n2 , result ) ;
103+ } else if ( op == "sqrt" ) {
104+ if ( n1 < 0 ) {
105+ player . Message ( "&0Calculator&f: Can only square root non-negative numbers." ) ;
106+ } else {
107+ double sqrt = Math . Round ( Math . Sqrt ( n1 ) , 2 ) ;
108+ player . Message ( "&0Calculator&f: Square Root of {0} = {1}" , n1 , sqrt ) ;
221109 }
110+ } else if ( op == "sqr" ) {
111+ player . Message ( "&0Calculator&f: Square of {0} = {1}" , n1 , n1 * n1 ) ;
112+ } else {
113+ player . Message ( "&cOnly supported operators are: +, -, *, /, sqrt, or sqr" ) ;
222114 }
223-
224115 }
225116 #endregion
226117 #region Sudo
0 commit comments