Skip to content

Commit 430a1f2

Browse files
Make /calc code much better
1 parent ece144e commit 430a1f2

File tree

1 file changed

+31
-140
lines changed

1 file changed

+31
-140
lines changed

fCraft/Commands/ModerationCommands.cs

Lines changed: 31 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)