diff --git a/src/Api/Command/EssCommand.cs b/src/Api/Command/EssCommand.cs index 8d0479e2..86d2483a 100644 --- a/src/Api/Command/EssCommand.cs +++ b/src/Api/Command/EssCommand.cs @@ -21,7 +21,6 @@ using System; using Essentials.Api.Command.Source; -using Essentials.Common; using Essentials.Common.Util; using Essentials.Core; diff --git a/src/Commands/CommandClearInventory.cs b/src/Commands/CommandClearInventory.cs index 20ad6c00..73a97144 100644 --- a/src/Commands/CommandClearInventory.cs +++ b/src/Commands/CommandClearInventory.cs @@ -34,12 +34,14 @@ namespace Essentials.Commands { )] public class CommandClearInventory : EssCommand { + public readonly byte[] EMPTY_BYTE_ARRAY = new byte[0]; + public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { - if (args.IsEmpty) { - if (src.IsConsole) { - return CommandResult.ShowUsage(); - } - } else if (!src.HasPermission(Permission + ".other")) { + if (args.IsEmpty && src.IsConsole) { + return CommandResult.ShowUsage(); + } + + if (!args.IsEmpty && !src.HasPermission(Permission + ".other")) { return CommandResult.NoPermission($"{Permission}.other"); } @@ -49,20 +51,20 @@ public class CommandClearInventory : EssCommand { return CommandResult.Lang("PLAYER_NOT_FOUND", args[0]); } - var playerInventory = player.Inventory; + var playerInv = player.Inventory; // "Remove "models" of items from player "body"" - player.Channel.send("tellSlot", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, (byte) 0, (byte) 0, - new byte[0]); - player.Channel.send("tellSlot", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, (byte) 1, (byte) 0, - new byte[0]); + player.Channel.send("tellSlot", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, + (byte) 0, (byte) 0, EMPTY_BYTE_ARRAY); + player.Channel.send("tellSlot", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, + (byte) 1, (byte) 0, EMPTY_BYTE_ARRAY); // Remove items for (byte page = 0; page < 8; page++) { - var count = playerInventory.getItemCount(page); + var count = playerInv.getItemCount(page); for (byte index = 0; index < count; index++) { - playerInventory.removeItem(page, 0); + playerInv.removeItem(page, 0); } } @@ -70,31 +72,31 @@ public class CommandClearInventory : EssCommand { // Remove unequipped cloths System.Action removeUnequipped = () => { - for (byte i = 0; i < playerInventory.getItemCount(2); i++) { - playerInventory.removeItem(2, 0); + for (byte i = 0; i < playerInv.getItemCount(2); i++) { //TODO isso é necessario? + playerInv.removeItem(2, 0); } }; // Unequip & remove from inventory - player.UnturnedPlayer.clothing.askWearBackpack(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearBackpack(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); - player.UnturnedPlayer.clothing.askWearGlasses(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearGlasses(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); - player.UnturnedPlayer.clothing.askWearHat(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearHat(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); - player.UnturnedPlayer.clothing.askWearPants(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearPants(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); - player.UnturnedPlayer.clothing.askWearMask(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearMask(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); - player.UnturnedPlayer.clothing.askWearShirt(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearShirt(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); - player.UnturnedPlayer.clothing.askWearVest(0, 0, new byte[0], true); + player.UnturnedPlayer.clothing.askWearVest(0, 0, EMPTY_BYTE_ARRAY, true); removeUnequipped(); EssLang.Send(player, "INVENTORY_CLEAN"); diff --git a/src/Commands/CommandExperience.cs b/src/Commands/CommandExperience.cs index 1cb78ce2..437da8af 100644 --- a/src/Commands/CommandExperience.cs +++ b/src/Commands/CommandExperience.cs @@ -93,10 +93,11 @@ public class CommandExperience : EssCommand { playerExp += (uint) amount; } - if (amount >= 0) + if (amount >= 0) { EssLang.Send(player, "EXPERIENCE_RECEIVED", amount); - else + } else { EssLang.Send(player, "EXPERIENCE_LOST", -amount); + } player.UnturnedPlayer.skills.Experience = playerExp; player.UnturnedPlayer.skills.askSkills(player.CSteamId); diff --git a/src/Commands/CommandFreeze.cs b/src/Commands/CommandFreeze.cs index 2b8ebded..f7cfcd89 100644 --- a/src/Commands/CommandFreeze.cs +++ b/src/Commands/CommandFreeze.cs @@ -34,14 +34,13 @@ namespace Essentials.Commands { [CommandInfo( Name = "freeze", Usage = "[player/*]", - Description = "Freeze a player/everyone" + Description = "Freeze a player/everyone", + MinArgs = 1, + MaxArgs = 1 )] public class CommandFreeze : EssCommand { public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { - if (args.Length == 0) { - return CommandResult.ShowUsage(); - } if (args[0].Is("*")) { UServer.Players .Where(player => !player.HasComponent()) diff --git a/src/Commands/CommandKickAll.cs b/src/Commands/CommandKickAll.cs index 04e4ac97..170961f0 100644 --- a/src/Commands/CommandKickAll.cs +++ b/src/Commands/CommandKickAll.cs @@ -41,12 +41,12 @@ public class CommandKickAll : EssCommand { return CommandResult.Lang("NO_PLAYERS_FOR_KICK"); } - var noReasonMessage = EssLang.Translate("KICK_NO_SPECIFIED_REASON"); + var reason = args.IsEmpty + ? EssLang.Translate("KICK_NO_SPECIFIED_REASON") + : args.Join(0); players.ForEach(player => { - player.Kick(args.IsEmpty - ? noReasonMessage - : args.Join(0)); + player.Kick(reason); }); EssLang.Send(src, "KICKED_ALL", players.Count); diff --git a/src/Commands/CommandKill.cs b/src/Commands/CommandKill.cs index 3b9db3df..3d99f920 100644 --- a/src/Commands/CommandKill.cs +++ b/src/Commands/CommandKill.cs @@ -30,28 +30,28 @@ namespace Essentials.Commands { [CommandInfo( Name = "kill", Description = "Kill an player", - Usage = "[player/*]" + Usage = "[player/*]", + MinArgs = 1, + MaxArgs = 1 )] public class CommandKill : EssCommand { public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { - if (args.IsEmpty) { - return CommandResult.ShowUsage(); - } - if (args[0].Is("*")) { UServer.Players.ForEach(p => p.Kill()); EssLang.Send(src, "KILL_ALL"); - } else if (args[0].IsValidPlayerName) { - var target = args[0].ToPlayer; - target.Kill(); + return CommandResult.Success(); + } - EssLang.Send(src, "KILL_PLAYER", target.DisplayName); - } else { - EssLang.Send(src, "PLAYER_NOT_FOUND", args[0]); + if (!args[0].IsValidPlayerName) { + return CommandResult.Lang("PLAYER_NOT_FOUND", args[0]); } + var target = args[0].ToPlayer; + target.Kill(); + + EssLang.Send(src, "KILL_PLAYER", target.DisplayName); return CommandResult.Success(); } diff --git a/src/Commands/CommandKillAnimals.cs b/src/Commands/CommandKillAnimals.cs index 6bb9de6c..998b075e 100644 --- a/src/Commands/CommandKillAnimals.cs +++ b/src/Commands/CommandKillAnimals.cs @@ -20,7 +20,6 @@ */ -using System.Linq; using Essentials.Api.Command; using Essentials.Api.Command.Source; using Essentials.Api.Unturned; @@ -41,7 +40,7 @@ public class CommandKillAnimals : EssCommand { public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var killedCount = 0; - UWorld.Animals.Where(animal => !animal.isDead).ForEach(animal => { + UWorld.Animals.WhereNot(animal => animal.isDead).ForEach(animal => { AnimalManager.sendAnimalDead(animal, Vector3.zero); killedCount++; }); diff --git a/src/Commands/CommandKillZombies.cs b/src/Commands/CommandKillZombies.cs index 065c43e6..f6e6db10 100644 --- a/src/Commands/CommandKillZombies.cs +++ b/src/Commands/CommandKillZombies.cs @@ -20,7 +20,6 @@ */ -using System.Linq; using Essentials.Api.Command; using Essentials.Api.Command.Source; using Essentials.Api.Unturned; @@ -41,7 +40,7 @@ public class CommandKillZombies : EssCommand { public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var killedCount = 0; - UWorld.Zombies.Where(zombie => !zombie.isDead).ForEach(zombie => { + UWorld.Zombies.WhereNot(zombie => zombie.isDead).ForEach(zombie => { ZombieManager.sendZombieDead(zombie, Vector3.zero); killedCount++; }); diff --git a/src/Commands/CommandMaxSkills.cs b/src/Commands/CommandMaxSkills.cs index e4904973..2d212438 100644 --- a/src/Commands/CommandMaxSkills.cs +++ b/src/Commands/CommandMaxSkills.cs @@ -21,7 +21,6 @@ using System.Linq; using Essentials.I18n; -using System; using Essentials.Api.Command; using Essentials.Api.Command.Source; using Essentials.Api.Unturned; @@ -35,17 +34,6 @@ namespace Essentials.Commands { )] public class CommandMaxSkills : EssCommand { - private static readonly Action GiveMaxSkills = (player, overpower) => { - var pSkills = player.UnturnedPlayer.skills; - - foreach (var skill in pSkills.skills.SelectMany(skArr => skArr)) { - skill.level = overpower ? byte.MaxValue : skill.max; - } - - pSkills.askSkills(player.CSteamId); - EssLang.Send(player, "MAX_SKILLS"); - }; - public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.IsEmpty) { if (src.IsConsole) { @@ -83,6 +71,17 @@ public class CommandMaxSkills : EssCommand { return CommandResult.Success(); } + private void GiveMaxSkills(UPlayer player, bool overpower) { + var pSkills = player.UnturnedPlayer.skills; + + foreach (var skill in pSkills.skills.SelectMany(skArr => skArr)) { + skill.level = overpower ? byte.MaxValue : skill.max; + } + + pSkills.askSkills(player.CSteamId); + EssLang.Send(player, "MAX_SKILLS"); + } + } } \ No newline at end of file diff --git a/src/Commands/CommandRefuelVehicle.cs b/src/Commands/CommandRefuelVehicle.cs index a4c26dc5..5d2f506f 100644 --- a/src/Commands/CommandRefuelVehicle.cs +++ b/src/Commands/CommandRefuelVehicle.cs @@ -19,22 +19,21 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -using System.Linq; using Essentials.Api.Command; using Essentials.Api.Command.Source; using Essentials.Api.Unturned; +using Essentials.Common; using Essentials.I18n; using SDG.Unturned; -// ReSharper disable InconsistentNaming - namespace Essentials.Commands { [CommandInfo( Name = "refuelvehicle", Aliases = new[] { "refuel" }, Description = "Refuel current/all vehicles", - Usage = "" + Usage = "", + MaxArgs = 1 )] public class CommandRefuelVehicle : EssCommand { @@ -53,14 +52,13 @@ public class CommandRefuelVehicle : EssCommand { return CommandResult.Lang("NOT_IN_VEHICLE"); } } else if (args[0].Is("all")) { - if (!src.HasPermission(Permission + ".all")) { - return CommandResult.Lang("COMMAND_NO_PERMISSION"); + if (!src.HasPermission($"{Permission}.all")) { + return CommandResult.NoPermission($"{Permission}.all"); } lock (UWorld.Vehicles) { UWorld.Vehicles - .Where(veh => !veh.isExploded && !veh.isUnderwater) - .ToList() + .WhereNot(veh => veh.isExploded || veh.isUnderwater) .ForEach(RefuelVehicle); EssLang.Send(src, "VEHICLE_REFUELED_ALL"); diff --git a/src/Commands/CommandRepairVehicle.cs b/src/Commands/CommandRepairVehicle.cs index d41a8863..c476f814 100644 --- a/src/Commands/CommandRepairVehicle.cs +++ b/src/Commands/CommandRepairVehicle.cs @@ -25,9 +25,7 @@ using SDG.Unturned; using Essentials.Api.Command.Source; using Essentials.Api.Unturned; - - -// ReSharper disable InconsistentNaming +using Essentials.Common; namespace Essentials.Commands { @@ -55,13 +53,13 @@ public class CommandRepairVehicle : EssCommand { return CommandResult.Lang("NOT_IN_VEHICLE"); } } else if (args[0].Is("all")) { - if (!src.HasPermission(Permission + ".all")) { - return CommandResult.Lang("COMMAND_NO_PERMISSION"); + if (!src.HasPermission($"{Permission}.all")) { + return CommandResult.NoPermission($"{Permission}.all"); } lock (UWorld.Vehicles) { UWorld.Vehicles - .Where(veh => !veh.isExploded && !veh.isUnderwater) + .WhereNot(veh => veh.isExploded || veh.isUnderwater) .ToList() .ForEach(vehicle => { VehicleManager.sendVehicleHealth(vehicle, vehicle.asset.health); diff --git a/src/Commands/CommandReply.cs b/src/Commands/CommandReply.cs index 6d4e9ad8..ea778fbf 100644 --- a/src/Commands/CommandReply.cs +++ b/src/Commands/CommandReply.cs @@ -24,7 +24,6 @@ using Essentials.Api.Command; using Essentials.Api.Command.Source; using Essentials.Api.Unturned; -using Essentials.I18n; using static Essentials.Commands.CommandTell; namespace Essentials.Commands { diff --git a/src/Commands/CommandTell.cs b/src/Commands/CommandTell.cs index 4ab1d891..cd7b5dcc 100644 --- a/src/Commands/CommandTell.cs +++ b/src/Commands/CommandTell.cs @@ -26,8 +26,6 @@ using Essentials.Api.Unturned; using Essentials.Common; using Essentials.Common.Util; -using Essentials.I18n; -using Steamworks; using UnityEngine; using static Essentials.Commands.MiscCommands; diff --git a/src/Commands/CommandTpAll.cs b/src/Commands/CommandTpAll.cs index 7578d326..0327f905 100644 --- a/src/Commands/CommandTpAll.cs +++ b/src/Commands/CommandTpAll.cs @@ -70,19 +70,16 @@ public class CommandTpAll : EssCommand { break; case 3: - try { - var x = (float) args[0].ToDouble; - var y = (float) args[1].ToDouble; - var z = (float) args[2].ToDouble; - - var pos = new Vector3(x, y, z); - - TeleportAll(pos, players); - EssLang.Send(src, "TELEPORTED_ALL_COORDS", x, y, z); - } catch (FormatException) { - return CommandResult.Lang("INVALID_COORDS", - src, args[0], args[1], args[2]); + var vec3 = args.GetVector3(0); + + if (!vec3.HasValue) { + return CommandResult.Lang("INVALID_COORDS", src, args[0], args[1], args[2]); } + + var pos = vec3.Value; + + TeleportAll(pos, players); + EssLang.Send(src, "TELEPORTED_ALL_COORDS", pos.x); break; default: diff --git a/src/Event/EssentialsEvents.cs b/src/Event/EssentialsEvents.cs index 98f40ef5..456e400d 100644 --- a/src/Event/EssentialsEvents.cs +++ b/src/Event/EssentialsEvents.cs @@ -19,7 +19,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -using System; using Essentials.Api.Command; using Essentials.Api.Command.Source; using Essentials.Api.Events; diff --git a/src/I18n/EssLang.cs b/src/I18n/EssLang.cs index e00a89d2..0a2f60f6 100644 --- a/src/I18n/EssLang.cs +++ b/src/I18n/EssLang.cs @@ -20,7 +20,6 @@ */ using Newtonsoft.Json.Linq; -using System; using System.Collections.Generic; using System.IO; using System.Linq; diff --git a/src/NativeModules/Kit/Commands/CommandEditKit.cs b/src/NativeModules/Kit/Commands/CommandEditKit.cs index 522f2213..8a4ec5b7 100644 --- a/src/NativeModules/Kit/Commands/CommandEditKit.cs +++ b/src/NativeModules/Kit/Commands/CommandEditKit.cs @@ -21,7 +21,6 @@ using Essentials.Api.Command; using Essentials.Api.Command.Source; -using Essentials.I18n; using Essentials.Common.Util; using Essentials.NativeModules.Kit.Item; using SDG.Unturned; diff --git a/src/NativeModules/Kit/Data/KitData.cs b/src/NativeModules/Kit/Data/KitData.cs index 4403f028..f2dfdfc3 100644 --- a/src/NativeModules/Kit/Data/KitData.cs +++ b/src/NativeModules/Kit/Data/KitData.cs @@ -32,7 +32,6 @@ using Essentials.Core; using Essentials.Compatibility.Hooks; using Essentials.NativeModules.Kit.Item; -using Newtonsoft.Json.Schema; namespace Essentials.NativeModules.Kit.Data { diff --git a/src/NativeModules/Warp/Warp.cs b/src/NativeModules/Warp/Warp.cs index df1d6f01..f7ab5ce5 100644 --- a/src/NativeModules/Warp/Warp.cs +++ b/src/NativeModules/Warp/Warp.cs @@ -21,7 +21,6 @@ using Essentials.Api.Command.Source; using Essentials.CodeAnalysis; -using Essentials.Common; using Essentials.Json.Converters; using Newtonsoft.Json; using UnityEngine;