From 21ea77eba90105033c79dc2776dbc20a9a8678e6 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Mon, 14 Mar 2016 16:23:14 +1100 Subject: [PATCH] Cleanup /pay. --- Commands/Economy/CmdPay.cs | 95 +++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 53 deletions(-) diff --git a/Commands/Economy/CmdPay.cs b/Commands/Economy/CmdPay.cs index a0aed97d1..6e2a7bc07 100644 --- a/Commands/Economy/CmdPay.cs +++ b/Commands/Economy/CmdPay.cs @@ -1,20 +1,20 @@ /* - Copyright 2011 MCForge - - Dual-licensed under the Educational Community License, Version 2.0 and - the GNU General Public License, Version 3 (the "Licenses"); you may - not use this file except in compliance with the Licenses. You may - obtain a copy of the Licenses at - - http://www.opensource.org/licenses/ecl2.php - http://www.gnu.org/licenses/gpl-3.0.html - - Unless required by applicable law or agreed to in writing, - software distributed under the Licenses are distributed on an "AS IS" - 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. -*/ + Copyright 2011 MCForge + + Dual-licensed under the Educational Community License, Version 2.0 and + the GNU General Public License, Version 3 (the "Licenses"); you may + not use this file except in compliance with the Licenses. You may + obtain a copy of the Licenses at + + http://www.opensource.org/licenses/ecl2.php + http://www.gnu.org/licenses/gpl-3.0.html + + Unless required by applicable law or agreed to in writing, + software distributed under the Licenses are distributed on an "AS IS" + 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. + */ using System; using System.Globalization; namespace MCGalaxy.Commands @@ -41,49 +41,37 @@ namespace MCGalaxy.Commands Player.SendMessage(p, "Amount must be an integer."); return; } if (amount < 0) { Player.SendMessage(p, "Cannot pay negative %3" + Server.moneys); return; } + if (p != null && p == who) { Player.SendMessage(p, "You cannot pay yourself %3" + Server.moneys); return; } + string target = null; - if (who == null) - { //player is offline - OfflinePlayer off = PlayerInfo.FindOffline(message.Split()[0]); - if (off == null) { Player.SendMessage(p, "%cThe player %f" + message.Split()[0] + Server.DefaultColor + "(offline)%c does not exist or has never logged on to this server"); return; } - + if (who == null) { + OfflinePlayer off = PlayerInfo.FindOffline(args[0]); + if (off == null) { Player.SendMessage(p, "The player \"&a" + args[0] + "%S\" was not found at all."); return; } payer = Economy.RetrieveEcoStats(p.name); - receiver = Economy.RetrieveEcoStats(message.Split()[0]); + receiver = Economy.RetrieveEcoStats(args[0]); if (!IsLegalPayment(p, payer.money, receiver.money, amount)) return; - - p.money -= amount; - - payer.money = p.money; - receiver.money += amount; - - payer.payment = "%f" + amount + " %3" + Server.moneys + " to " + off.color + off.name + "%3 on %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); - receiver.salary = "%f" + amount + " %3" + Server.moneys + " by " + p.color + p.name + "%3 on %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); - - Economy.UpdateEcoStats(payer); - Economy.UpdateEcoStats(receiver); - + + target = off.color + off.name; Player.GlobalMessage(p.FullName + " %Spaid %f" + off.color + off.name + "%S(offline) %f" + amount + " %3" + Server.moneys); - return; + } else { + payer = Economy.RetrieveEcoStats(p.name); + receiver = Economy.RetrieveEcoStats(who.name); + if (!IsLegalPayment(p, payer.money, receiver.money, amount)) return; + + receiver.money = who.money; + who.money += amount; + target = who.color + who.name; + Player.GlobalMessage(p.FullName + " %Spaid " + who.FullName + " %f" + amount + " %3" + Server.moneys); } - if (who == p) { Player.SendMessage(p, "%cYou can't pay yourself %3" + Server.moneys); return; } - - payer = Economy.RetrieveEcoStats(p.name); - receiver = Economy.RetrieveEcoStats(who.name); - if (!IsLegalPayment(p, payer.money, receiver.money, amount)) return; - - p.money -= amount; - who.money += amount; - - payer.money = p.money; - receiver.money = who.money; - - payer.payment = "%f" + amount + " %3" + Server.moneys + " to " + who.color + who.name + "%3 on %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); + + payer.payment = "%f" + amount + " %3" + Server.moneys + " to " + target + "%3 on %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); receiver.salary = "%f" + amount + " %3" + Server.moneys + " by " + p.color + p.name + "%3 on %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); - + receiver.money += amount; + p.money -= amount; + payer.money = p.money; Economy.UpdateEcoStats(payer); - Economy.UpdateEcoStats(receiver); - Player.GlobalMessage(p.FullName + " %Spaid " + who.FullName + " %f" + amount + " %3" + Server.moneys); - } + Economy.UpdateEcoStats(receiver); + } bool IsLegalPayment(Player p, int payer, int receiver, int amount) { if (receiver + amount > 16777215) { Player.SendMessage(p, "%cPlayers cannot have over %f16777215 %3" + Server.moneys); return false; } @@ -92,7 +80,8 @@ namespace MCGalaxy.Commands } public override void Help(Player p) { - Player.SendMessage(p, "%f/pay [player] " + Server.DefaultColor + "- Pays " + Server.moneys + " to [player]"); + Player.SendMessage(p, "%T/pay [player] [amount] "); + Player.SendMessage(p, "%HPays %3" + Server.moneys + " %Hto [player]"); } } }