Example #1
0
        private CommandResult PositionCommand(ICommandSource src, ICommandArgs args, ICommand cmd)
        {
            if (args.Length == 0)
            {
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                var p = src.ToPlayer();
                EssLang.Send(src, "POSITION", p.Position.x, p.Position.y, p.Position.z);
            }
            else
            {
                if (!src.HasPermission($"{cmd.Permission}.other"))
                {
                    return(CommandResult.NoPermission($"{cmd.Permission}.other"));
                }

                if (!args[0].IsValidPlayerIdentifier)
                {
                    return(CommandResult.LangError("PLAYER_NOT_FOUND", args[0]));
                }

                var p = args[0].ToPlayer;
                EssLang.Send(src, "POSITION_OTHER", p.DisplayName, p.Position.x, p.Position.y, p.Position.z);
            }

            return(CommandResult.Success());
        }
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args.IsEmpty)
            {
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                GiveMaxSkills(src.ToPlayer(), false);
            }
            else
            {
                if (args.Length < 2 && src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                if (!args[0].IsBool)
                {
                    return(CommandResult.Lang("INVALID_BOOLEAN", args[0]));
                }

                var overpower = args[0].ToBool;

                // player or all
                if (args.Length > 1)
                {
                    if (args[1].Equals("*"))
                    {
                        if (!src.HasPermission($"{Permission}.all"))
                        {
                            return(CommandResult.NoPermission($"{Permission}.all"));
                        }
                        UServer.Players.ForEach(p => GiveMaxSkills(p, overpower));
                        EssLang.Send(src, "MAX_SKILLS_ALL");
                    }
                    else
                    {
                        if (!src.HasPermission($"{Permission}.other"))
                        {
                            return(CommandResult.NoPermission($"{Permission}.other"));
                        }
                        if (!args[1].IsValidPlayerIdentifier)
                        {
                            return(CommandResult.Lang("PLAYER_NOT_FOUND", args[1]));
                        }
                        var targetPlayer = args[1].ToPlayer;
                        GiveMaxSkills(targetPlayer, overpower);
                        EssLang.Send(src, "MAX_SKILLS_TARGET", targetPlayer.DisplayName);
                    }
                }
                else     // self (with overpower)
                {
                    GiveMaxSkills(src.ToPlayer(), overpower);
                }
            }

            return(CommandResult.Success());
        }
Example #3
0
        private void GiveExp(UPlayer player, int amount)
        {
            var playerExp = player.UnturnedPlayer.skills.experience;

            if (amount < 0)
            {
                if ((playerExp - amount) < 0)
                {
                    playerExp = 0;
                }
                else
                {
                    playerExp += (uint)amount;
                }
            }
            else
            {
                playerExp += (uint)amount;
            }

            if (amount >= 0)
            {
                EssLang.Send(player, "EXPERIENCE_RECEIVED", amount);
            }
            else
            {
                EssLang.Send(player, "EXPERIENCE_LOST", -amount);
            }

            player.Experience = playerExp;
        }
Example #4
0
        private CommandResult RespawnItemsCommand(ICommandSource src, ICommandArgs args)
        {
            for (byte x = 0; x < Regions.WORLD_SIZE; x++)
            {
                for (byte y = 0; y < Regions.WORLD_SIZE; y++)
                {
                    var itemsCount = LevelItems.spawns[x, y].Count;
                    if (itemsCount <= 0)
                    {
                        continue;
                    }

                    for (var i = 0; i < itemsCount; i++)
                    {
                        var itemSpawnpoint = LevelItems.spawns[x, y][i];
                        var itemId         = LevelItems.getItem(itemSpawnpoint);

                        if (itemId == 0)
                        {
                            continue;
                        }

                        var item = new Item(itemId, true);
                        ItemManager.dropItem(item, itemSpawnpoint.point, false, false, false);
                    }
                }
            }
            EssLang.Send(src, "RESPAWNED_ITEMS");
            return(CommandResult.Success());
        }
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args[0].Equals("*"))
            {
                UServer.Players
                .Where(player => !player.HasComponent <FrozenPlayer>())
                .ForEach(player => {
                    player.AddComponent <FrozenPlayer>();
                    EssLang.Send(player, "FROZEN_PLAYER", src.DisplayName);
                });

                EssLang.Send(src, "FROZEN_ALL");
            }
            else
            {
                if (!UPlayer.TryGet(args[0].ToString(), out var player))
                {
                    return(CommandResult.LangError("PLAYER_NOT_FOUND", args[0]));
                }

                if (player.HasComponent <FrozenPlayer>())
                {
                    EssLang.Send(src, "ALREADY_FROZEN", player.DisplayName);
                }
                else
                {
                    player.AddComponent <FrozenPlayer>();

                    EssLang.Send(src, "FROZEN_SENDER", player.DisplayName);
                    EssLang.Send(player, "FROZEN_PLAYER", src.DisplayName);
                }
            }

            return(CommandResult.Success());
        }
Example #6
0
        public override CommandResult OnExecute(ICommandSource source, ICommandArgs parameters)
        {
            var kitConfig          = EssCore.Instance.Config.Kit;
            var hasEconomyProvider = UEssentials.EconomyProvider.IsPresent;

            var kits = KitModule.Instance.KitManager.Kits.Where(k => k.CanUse(source)).Select(k => {
                if (!hasEconomyProvider || !kitConfig.ShowCost || (k.Cost <= 0 && !kitConfig.ShowCostIfZero))
                {
                    return(k.Name);
                }
                return(string.Format(kitConfig.CostFormat, k.Name, k.Cost, UEssentials.EconomyProvider.Value.Currency));
            }).ToList();


            if (kits.Count == 0)
            {
                EssLang.Send(source, "KIT_NONE");
            }
            else
            {
                EssLang.Send(source, "KIT_LIST", string.Join(", ", kits.ToArray()));
            }

            return(CommandResult.Success());
        }
        private void OnCommandPosExecuted(CommandPosExecuteEvent e)
        {
            if (_cachedEconomyProvider == null ||
                e.Source.IsConsole || e.Source.HasPermission("essentials.bypass.commandcost"))
            {
                return;
            }

            var commands = EssCore.Instance.CommandsConfig.Commands;

            /*
             * He will not charge if command was not successfully executed.
             */
            if (e.Result?.Type != CommandResult.ResultType.SUCCESS ||
                !commands.ContainsKey(e.Command.Name))
            {
                return;
            }

            var cost = commands[e.Command.Name].Cost;

            if (cost <= 0)
            {
                return;
            }

            _cachedEconomyProvider.Value.Withdraw(e.Source.ToPlayer(), cost);
            EssLang.Send(e.Source, "COMMAND_PAID", cost);
        }
Example #8
0
        private CommandResult ShutdownCommand(ICommandSource src, ICommandArgs args)
        {
            int delay = 0;

            if (args.Length > 0)
            {
                if (!args[0].IsInt)
                {
                    return(CommandResult.Lang("INVALID_NUMBER", args[0]));
                }
                else if ((delay = args[0].ToInt) < 0)
                {
                    delay = 0;
                }
            }
            // Will only send the messages if delay > 0
            if (delay > 0)
            {
                if (args.Length > 1)
                {
                    UServer.Broadcast(args.Join(1)); // Broadcast <reason>
                }
                EssLang.Send(src, "SHUTDOWN_DELAY_SENDER", TimeUtil.FormatSeconds((uint)delay));
            }
            Provider.shutdown(delay);
            return(CommandResult.Success());
        }
Example #9
0
        private void ClearInventory(UPlayer player)
        {
            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, 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 < PlayerInventory.PAGES; page++)
            {
                if (page == PlayerInventory.AREA)
                {
                    continue;
                }

                var count = playerInv.getItemCount(page);

                for (byte index = 0; index < count; index++)
                {
                    playerInv.removeItem(page, 0);
                }
            }

            // Remove clothes

            // Remove unequipped cloths
            System.Action removeUnequipped = () => {
                for (byte i = 0; i < playerInv.getItemCount(2); i++)
                {
                    playerInv.removeItem(2, 0);
                }
            };

            // Unequip & remove from inventory
            player.UnturnedPlayer.clothing.askWearBackpack(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            player.UnturnedPlayer.clothing.askWearGlasses(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            player.UnturnedPlayer.clothing.askWearHat(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            player.UnturnedPlayer.clothing.askWearPants(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            player.UnturnedPlayer.clothing.askWearMask(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            player.UnturnedPlayer.clothing.askWearShirt(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            player.UnturnedPlayer.clothing.askWearVest(0, 0, EMPTY_BYTE_ARRAY, true);
            removeUnequipped();

            EssLang.Send(player, "INVENTORY_CLEARED");
        }
Example #10
0
        private CommandResult PositionCommand(ICommandSource src, ICommandArgs args, ICommand cmd)
        {
            if (args.Length == 0)
            {
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }
                var player = src.ToPlayer();

                EssLang.Send(player,
                             "POSITION",
                             player.Position.x,
                             player.Position.y,
                             player.Position.z);
            }
            else
            {
                var found = UPlayer.TryGet(args[0], p => {
                    EssLang.Send(src, "POSITION_OTHER", p.DisplayName, p.Position.x, p.Position.y, p.Position.z);
                });

                if (!found)
                {
                    return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0]));
                }
            }

            return(CommandResult.Success());
        }
Example #11
0
        public override void Execute(ICommandContext context)
        {
            if (args[0].Equals("*"))
            {
                foreach (var player in UServer.Players.Where(player => player.HasComponent <FrozenPlayer>()))
                {
                    player.RemoveComponent <FrozenPlayer>();
                    EssLang.Send(player, "UNFROZEN_PLAYER", src.DisplayName);
                }

                context.User.SendLocalizedMessage(Translations, "UNFROZEN_ALL");
            }
            else if (args[0].IsValidPlayerIdentifier)
            {
                var target = args[0].ToPlayer;

                if (!target.HasComponent <FrozenPlayer>())
                {
                    return(CommandResult.LangError("NOT_FROZEN", target.DisplayName));
                }

                target.RemoveComponent <FrozenPlayer>();

                context.User.SendLocalizedMessage(Translations, "UNFROZEN_SENDER", target.DisplayName);
                EssLang.Send(target, "UNFROZEN_PLAYER", src.DisplayName);
            }
            else
            {
                return(CommandResult.LangError("PLAYER_NOT_FOUND", args[0]));
            }

            return(CommandResult.Success());
        }
Example #12
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            if (args[0].ToString() == "on")
            {
                player.Look.sendFreecamAllowed(true);
                player.Look.sendSpecStatsAllowed(true);

                EssLang.Send(src, "FREECAM_ON");
                return(CommandResult.Success());
            }
            else if (args[0].ToString() == "off")
            {
                player.Look.sendFreecamAllowed(false);
                player.Look.sendSpecStatsAllowed(false);

                EssLang.Send(src, "FREECAM_OFF");
                return(CommandResult.Success());
            }
            else
            {
                return(CommandResult.ShowUsage());
            }
        }
Example #13
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args[0].Equals("*"))
            {
                foreach (var player in UServer.Players.Where(player => player.HasComponent <FrozenPlayer>()))
                {
                    player.RemoveComponent <FrozenPlayer>();
                    EssLang.Send(player, "UNFROZEN_PLAYER", src.DisplayName);
                }

                EssLang.Send(src, "UNFROZEN_ALL");
            }
            else if (args[0].IsValidPlayerIdentifier)
            {
                var target = args[0].ToPlayer;

                if (!target.HasComponent <FrozenPlayer>())
                {
                    return(CommandResult.Lang("NOT_FROZEN", target.DisplayName));
                }
                target.RemoveComponent <FrozenPlayer>();

                EssLang.Send(src, "UNFROZEN_SENDER", target.DisplayName);
                EssLang.Send(target, "UNFROZEN_PLAYER", src.DisplayName);
            }
            else
            {
                return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0]));
            }
            return(CommandResult.Success());
        }
Example #14
0
        private void OnPlayerChatted(UnturnedPlayer player, ref Color c, string message,
                                     EChatMode m, ref bool cancel)
        {
            if (
                !UEssentials.Config.AntiSpam.Enabled ||
                message.StartsWith("/") ||
                player.HasPermission("essentials.bypass.antispam")
                )
            {
                return;
            }

            const string METADATA_KEY = "last_chatted";
            var          uplayer      = UPlayer.From(player);

            if (!uplayer.Metadata.Has(METADATA_KEY))
            {
                uplayer.Metadata[METADATA_KEY] = DateTime.Now;
                return;
            }

            var interval = UEssentials.Config.AntiSpam.Interval;

            if ((DateTime.Now - uplayer.Metadata.Get <DateTime>(METADATA_KEY)).TotalSeconds < interval)
            {
                EssLang.Send(uplayer, "CHAT_ANTI_SPAM");
                cancel = true;
                return;
            }

            uplayer.Metadata[METADATA_KEY] = DateTime.Now;
        }
Example #15
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args.IsEmpty || args.Length > 1)
            {
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                EssLang.Send(src, "PING", src.ToPlayer().Ping);
            }
            else
            {
                var target = args[0].ToPlayer;

                if (target == null)
                {
                    return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0]));
                }

                EssLang.Send(src, "PING_OTHER", target.DisplayName, target.Ping);
            }

            return(CommandResult.Success());
        }
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var message = args[1].ToString();
            var url     = args[2].ToString();

            if (args[0].Equals("*"))
            {
                UServer.Players.ForEach(p => {
                    p.UnturnedPlayer.sendBrowserRequest(message, url);
                });
                EssLang.Send(src, "REQUEST_URL_SUCCESS", EssLang.Translate("EVERYONE"), url);
            }
            else if (args[0].IsValidPlayerIdentifier)
            {
                var target = args[0].ToPlayer;
                target.UnturnedPlayer.sendBrowserRequest(message, url);
                EssLang.Send(src, "REQUEST_URL_SUCCESS", target.DisplayName, url);
            }
            else
            {
                return(CommandResult.LangError("PLAYER_NOT_FOUND", args[0]));
            }

            return(CommandResult.Success());
        }
Example #17
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();
            var dist   = 1000f;

            if (args.Length == 1)
            {
                if (!args[0].IsDouble)
                {
                    return(CommandResult.ShowUsage());
                }

                dist = (float)args[0].ToDouble;
            }

            var eyePos = player.GetEyePosition(dist);

            if (!eyePos.HasValue)
            {
                return(CommandResult.Lang("JUMP_NO_POSITION"));
            }

            var point = eyePos.Value;

            point.y += 6;

            player.Teleport(point);
            EssLang.Send(src, "JUMPED", point.x, point.y, point.z);

            return(CommandResult.Success());
        }
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args.IsEmpty || args.Length > 1)
            {
                return(CommandResult.ShowUsage());
            }

            try {
                var steamId = new CSteamID(ulong.Parse(args[0].ToString()));

                if (!steamId.IsValid())
                {
                    return(CommandResult.LangError("INVALID_STEAMID", steamId.m_SteamID));
                }

                ResetPlayer(steamId.m_SteamID);
                EssLang.Send(src, "PLAYER_RESET");
            } catch (FormatException) {
                var target = args[0].ToPlayer;

                if (target == null)
                {
                    return(CommandResult.LangError("PLAYER_NOT_FOUND", args[0]));
                }

                target.Kick(EssLang.Translate("PLAYER_RESET_KICK"));
                ResetPlayer(target.CSteamId.m_SteamID);

                EssLang.Send(src, "PLAYER_RESET");
            }

            return(CommandResult.Success());
        }
        private void OnPlayerChatted(UnturnedPlayer player, ref Color color, string message,
                                     EChatMode mode, ref bool cancel)
        {
            if (!UEssentials.Config.AntiSpam.Enabled || message.StartsWith("/") ||
                player.HasPermission("essentials.bypass.antispam"))
            {
                return;
            }

            var playerId = player.CSteamID.m_SteamID;

            if (!LastChatted.ContainsKey(playerId))
            {
                LastChatted.Add(playerId, DateTime.Now);
                return;
            }

            var interval = UEssentials.Config.AntiSpam.Interval;

            if ((DateTime.Now - LastChatted[playerId]).TotalSeconds < interval)
            {
                EssLang.Send(UPlayer.From(playerId), "CHAT_ANTI_SPAM");
                cancel = true;
                return;
            }

            LastChatted[playerId] = DateTime.Now;
        }
Example #20
0
        private CommandResult PvpCommand(ICommandSource src, ICommandArgs args)
        {
            if (args.IsEmpty)
            {
                return(CommandResult.ShowUsage());
            }

            var toggleVal = GetToggleValue(args[0]);

            if (!toggleVal.HasValue)
            {
                return(CommandResult.ShowUsage());
            }
            if (toggleVal.Value)
            {
                Provider.isPvP = true;
                EssLang.Send(src, "PVP_ENABLED");
            }
            else
            {
                Provider.isPvP = false;
                EssLang.Send(src, "PVP_DISABLED");
            }
            return(CommandResult.Success());
        }
Example #21
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            float       dist = 2048f;
            RaycastInfo veh  = TraceRay(player, dist, RayMasks.VEHICLE);

            if (veh.vehicle != null)
            {
                if (veh.vehicle.isLocked)
                {
                    VehicleManager.unlockVehicle(veh.vehicle, player.UnturnedPlayer);
                    EssLang.Send(src, "VEHICLE_UNLOCK");
                    return(CommandResult.Success());
                }
                else
                {
                    return(CommandResult.LangError("VEHICLE_NOT_LOCKED"));
                }
            }
            else
            {
                return(CommandResult.LangError("NO_OBJECT"));
            }
        }
Example #22
0
        private CommandResult DescendCommand(ICommandSource src, ICommandArgs args, ICommand cmd)
        {
            if (args.IsEmpty)
            {
                return(CommandResult.ShowUsage());
            }

            if (!args[0].IsFloat)
            {
                return(CommandResult.Lang("INVALID_NUMBER", args[0]));
            }

            if (args[0].ToFloat <= 0)
            {
                return(CommandResult.Lang("MUST_POSITIVE", args[0]));
            }

            var player = src.ToPlayer();
            var pos    = new Vector3(player.Position.x, player.Position.y, player.Position.z);
            var num    = args[0].ToFloat;

            pos.y -= num;

            player.Teleport(pos);
            EssLang.Send(src, "DESCENDED", num);

            return(CommandResult.Success());
        }
Example #23
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            player.Inventory.items.ForEach(item => Repair(player, item));
            EssLang.Send(src, "ALL_REPAIRED");

            return(CommandResult.Success());
        }
Example #24
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();
            var look   = player.Look;

            if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE | RayMasks.STRUCTURE))
            {
                Interactable2SalvageBarricade barri = hit.transform.GetComponent <Interactable2SalvageBarricade>();
                Interactable2SalvageStructure struc = hit.transform.GetComponent <Interactable2SalvageStructure>();

                if (barri != null)
                {
                    BarricadeManager.tryGetInfo(barri.root, out byte x, out byte y, out ushort plant, out ushort index, out BarricadeRegion region);

                    region.barricades.RemoveAt(index);

                    BarricadeManager manager = (BarricadeManager)typeof(BarricadeManager).GetField("manager", BindingFlags.NonPublic |
                                                                                                   BindingFlags.Static).GetValue(null);

                    manager.channel.send("tellTakeBarricade", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
                    {
                        x,
                        y,
                        plant,
                        index
                    });

                    EssLang.Send(src, "BARRICADE_REMOVED");
                    return(CommandResult.Success());
                }
                else if (struc != null)
                {
                    StructureManager.tryGetInfo(struc.transform, out byte x, out byte y, out ushort index, out StructureRegion region);

                    region.structures.RemoveAt(index);

                    StructureManager manager = (StructureManager)typeof(StructureManager).GetField("manager", BindingFlags.NonPublic |
                                                                                                   BindingFlags.Static).GetValue(null);

                    manager.channel.send("tellTakeStructure", ESteamCall.ALL, x, y, StructureManager.STRUCTURE_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[]
                    {
                        x,
                        y,
                        index,
                        (region.drops[index].model.position - player.UnturnedPlayer.transform.position).normalized * 100f
                    });

                    EssLang.Send(src, "STRUCTURE_REMOVED");
                    return(CommandResult.Success());
                }
                else
                {
                    return(CommandResult.LangError("DESTROY_INVALID"));
                }
            }
Example #25
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var players = UServer.Players.ToList();

            if (players.Count == (src.IsConsole ? 0 : 1))
            {
                return(CommandResult.Lang("NO_PLAYERS_FOR_TELEPORT"));
            }

            switch (args.Length)
            {
            case 0:
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                TeleportAll(src.ToPlayer().RocketPlayer.Position, players);
                EssLang.Send(src, "TELEPORTED_ALL_YOU");
                break;

            case 1:
                var found = UPlayer.TryGet(args[0], player => {
                    TeleportAll(player.Position, players);
                    EssLang.Send(src, "TELEPORTED_ALL_PLAYER", player.DisplayName);
                });

                if (!found)
                {
                    return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0]));
                }
                break;

            case 3:
                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:
                return(CommandResult.ShowUsage());
            }

            return(CommandResult.Success());
        }
        private void TpaPlayerMove(UnturnedPlayer player, Vector3 newPosition)
        {
            Task task;

            if (UEssentials.Config.Tpa.TeleportDelay > 0 && UEssentials.Config.Tpa.CancelTeleportWhenMove &&
                CommandTpa.WaitingToTeleport.TryGetValue(player.CSteamID.m_SteamID, out task))
            {
                task.Cancel();
                CommandTpa.WaitingToTeleport.Remove(player.CSteamID.m_SteamID);
                UPlayer.TryGet(player, p => EssLang.Send(p, "TELEPORT_CANCELLED_MOVED"));
            }
        }
        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");
        }
Example #28
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) {
            var killedCount = 0;

            UWorld.Zombies.Where(zombie => !zombie.isDead).ForEach(zombie => {
                ZombieManager.sendZombieDead(zombie, Vector3.zero);
                killedCount++;
            });

            EssLang.Send(src, "KILLED_ZOMBIES", killedCount);

            return CommandResult.Success();
        }
Example #29
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player   = src.ToPlayer();
            var playerId = player.CSteamId;

            if (Cooldown.HasEntry(playerId))
            {
                return(CommandResult.Lang("USE_COOLDOWN",
                                          TimeUtil.FormatSeconds((uint)Cooldown.GetRemainingTime(playerId))));
            }

            Vector3 position;
            byte    angle;

            if (player.RocketPlayer.Stance == EPlayerStance.DRIVING ||
                player.RocketPlayer.Stance == EPlayerStance.SITTING)
            {
                return(CommandResult.Lang("CANNOT_TELEPORT_DRIVING"));
            }

            if (!BarricadeManager.tryGetBed(player.CSteamId, out position, out angle))
            {
                return(CommandResult.Lang("WITHOUT_BED"));
            }

            var homeCommand = UEssentials.Config.HomeCommand;
            var delay       = homeCommand.Delay;
            var cooldown    = homeCommand.Cooldown;

            if (player.HasPermission("essentials.bypass.homecooldown"))
            {
                delay    = 0;
                cooldown = 0;
            }

            if (delay > 0)
            {
                EssLang.Send(src, "TELEPORT_DELAY", TimeUtil.FormatSeconds((uint)delay));
            }

            var task = Tasks.New(t => {
                Delay.Remove(playerId.m_SteamID);
                player.Teleport(position, angle);
                EssLang.Send(src, "TELEPORTED_BED");
            }).Delay(delay * 1000);

            task.Go();

            Delay.Add(playerId.m_SteamID, task);
            Cooldown.AddEntry(playerId, cooldown);

            return(CommandResult.Success());
        }
Example #30
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            if (args.Length == 0 || args.Length > 1)
            {
                return(CommandResult.ShowUsage());
            }

            if (!WarpModule.Instance.WarpManager.Contains(args[0].ToString()))
            {
                return(CommandResult.LangError("WARP_NOT_EXIST", args[0]));
            }

            if (player.Stance == EPlayerStance.DRIVING ||
                player.Stance == EPlayerStance.SITTING)
            {
                return(CommandResult.LangError("CANNOT_TELEPORT_DRIVING"));
            }

            if (Delay.ContainsKey(player.CSteamId.m_SteamID))
            {
                return(CommandResult.LangError("ALREADY_WAITING"));
            }

            var targetWarp = WarpModule.Instance.WarpManager.GetByName(args[0].ToString());
            var cooldown   = UEssentials.Config.Warp.TeleportDelay;

            if (!targetWarp.CanBeUsedBy(src))
            {
                return(CommandResult.LangError("WARP_NO_PERMISSION", args[0]));
            }

            if (cooldown > 0 && !player.HasPermission("essentials.bypass.warpcooldown"))
            {
                EssLang.Send(src, "WARP_COOLDOWN", cooldown);
            }

            var task = Task.Create()
                       .Id($"Warp teleport '{player.DisplayName}'")
                       .Delay(player.HasPermission("essentials.bypass.warpcooldown") ? 0 : cooldown * 1000)
                       .Action(t => {
                Delay.Remove(player.CSteamId.m_SteamID);
                player.Teleport(targetWarp.Location, targetWarp.Rotation);
                EssLang.Send(src, "WARP_TELEPORTED", args[0]);
            })
                       .Submit();

            Delay.Add(player.CSteamId.m_SteamID, task);

            return(CommandResult.Success());
        }