Exemplo n.º 1
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            switch (args.Length)
            {
            case 0:
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                var eyePos = src.ToPlayer().GetEyePosition(3000);

                if (eyePos.HasValue)
                {
                    Explode(eyePos.Value);
                }
                break;

            case 1:
                if (args[0].Is("*"))
                {
                    UPlayer caller = null;

                    if (!src.IsConsole)
                    {
                        caller = src.ToPlayer();
                    }

                    UServer.Players.Where(p => p != caller).ForEach(p => Explode(p.Position));
                }
                else
                {
                    var found = UPlayer.TryGet(args[0], player => Explode(player.Position));

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

            case 3:
                var pos = args.GetVector3(0);

                if (pos.HasValue)
                {
                    Explode(pos.Value);
                }
                else
                {
                    return(CommandResult.Lang(EssLang.INVALID_COORDS, args[0], args[1], args[2]));
                }
                break;

            default:
                return(CommandResult.ShowUsage());
            }

            return(CommandResult.Success());
        }
Exemplo n.º 2
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player     = src.ToPlayer();
            var playerMeta = player.Metadata;

            if (!playerMeta.Has(META_KEY_POS) || !playerMeta.Has(META_KEY_DELAY))
            {
                return(CommandResult.Lang("NOT_DIED_YET"));
            }

            var deathTime = playerMeta.Get <DateTime>(META_KEY_DELAY);
            var delta     = UEssentials.Config.BackDelay - (DateTime.Now - deathTime).Seconds;

            if (delta > 0 && !player.HasPermission($"essentials.bypass.backdelay"))
            {
                return(CommandResult.Lang("BACK_DELAY", TimeUtil.FormatSeconds((uint)delta)));
            }

            var backPosition = playerMeta.Get <Vector3>(META_KEY_POS);

            src.ToPlayer().Teleport(backPosition);
            EssLang.Send(src, "RETURNED");

            playerMeta.Remove(META_KEY_DELAY);
            playerMeta.Remove(META_KEY_POS);

            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());
        }
Exemplo n.º 4
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( parameters.IsEmpty )
            {
                if ( source.IsConsole )
                    ShowUsage( source );
                else
                    GiveMaxSkills( source.ToPlayer(), false );
            }
            else
            {
                if ( !parameters[0].IsBool || parameters.Length < 2 && source.IsConsole )
                {
                    ShowUsage( source );
                    return;
                }

                var overpower = parameters[0].ToBool;
                var targetPlayer = parameters.Length == 2 ? parameters[1].ToPlayer : source.ToPlayer();

                if ( targetPlayer == null )
                    EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[1] );
                else
                {
                    GiveMaxSkills( targetPlayer, overpower );

                    if ( source.IsConsole || source.ToPlayer() != targetPlayer )
                        EssLang.MAX_SKILLS_TARGET.SendTo( source, targetPlayer.DisplayName );
                }
            }
        }
Exemplo n.º 5
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());
        }
Exemplo n.º 6
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.instance.channel.send("tellVehicleLock", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, veh.vehicle.instanceID, player.CSteamId, player.UnturnedPlayer.channel.owner.playerID.group, player.CSteamId != CSteamID.Nil);
                    EssLang.Send(src, "VEHICLE_LOCK");
                    return(CommandResult.Success());
                }
                else
                {
                    return(CommandResult.LangError("VEHICLE_ALREADY_LOCKED"));
                }
            }
            else
            {
                return(CommandResult.LangError("NO_OBJECT"));
            }
        }
Exemplo n.º 7
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))
            {
                InteractableStorage storage = hit.transform.GetComponent <InteractableStorage>();

                if (storage != null)
                {
                    storage.isOpen                  = true;
                    storage.opener                  = player.UnturnedPlayer;
                    player.Inventory.isStoring      = true;
                    player.Inventory.isStorageTrunk = false;
                    player.Inventory.storage        = storage;
                    player.Inventory.updateItems(PlayerInventory.STORAGE, storage.items);
                    player.Inventory.sendStorage();

                    EssLang.Send(src, "STORAGE_OPEN");
                    return(CommandResult.Success());
                }
                else
                {
                    return(CommandResult.LangError("STORAGE_INVALID"));
                }
            }
Exemplo n.º 8
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            if (!player.Metadata.Has("back_pos"))
            {
                return(CommandResult.Lang("NOT_DIED_YET"));
            }

            var backPosition = player.Metadata.Get <Vector3>("back_pos");

            src.ToPlayer().Teleport(backPosition);
            EssLang.Send(src, "RETURNED");

            return(CommandResult.Success());
        }
Exemplo n.º 9
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            if (args.IsEmpty)
            {
                return(CommandResult.ShowUsage());
            }
            if (args[0].Is("all"))
            {
                player.RocketPlayer.Inventory.Items.ToList().ForEach(item => Repair(player, item));
                EssLang.ALL_REPAIRED.SendTo(src);
            }
            else if (args[0].Is("hand"))
            {
                Repair(player, player.Inventory.Items[0]);
                Repair(player, player.Inventory.Items[1]);

                if (player.Equipment.HoldingItemID != 0)
                {
                    player.Equipment.sendUpdateState();
                }

                EssLang.HAND_REPAIRED.SendTo(src);
            }

            return(CommandResult.Success());
        }
Exemplo n.º 10
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var playerId = src.ToPlayer().CSteamId.m_SteamID;

            if (!Conversations.ContainsKey(playerId))
            {
                return(CommandResult.Lang("NOBODY_TO_REPLY"));
            }

            var target = (
                from conversation
                in Conversations
                where conversation.Value.Equals(playerId)
                select UPlayer.From(conversation.Key)
                ).FirstOrDefault();

            if (target == null)
            {
                return(CommandResult.Lang("NO_LONGER_ONLINE"));
            }

            src.DispatchCommand($"tell \"{target.DisplayName}\" \"{args.Join(0)}\"");

            return(CommandResult.Success());
        }
Exemplo n.º 11
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            var player = source.ToPlayer();

            if ( parameters.Length == 0 || parameters.Length > 1 )
            {
                ShowUsage( source );
            }
            else if ( !EssProvider.WarpManager.Contains( parameters[0].ToString() ) )
            {
                EssLang.WARP_NOT_EXIST.SendTo( source, parameters[0] );
            }
            else if ( !player.HasPermission( $"essentials.warp.{parameters[0]}" ) )
            {
                EssLang.WARP_NO_PERMISSION.SendTo( source, parameters[0] );
            }
            else
            {
                var dest = EssProvider.WarpManager[parameters[0].ToString()];
                var cooldown = EssProvider.Config.WarpCooldown;

                if ( cooldown > 0 && !player.HasPermission( "essentials.warps.bypasscooldown" ) )
                {
                    EssLang.WARP_COOLDOWN.SendTo( source, cooldown );
                }

                Tasks.New( t =>
                {
                    player.Teleport( dest.Location, dest.Rotation );
                    EssLang.WARP_TELEPORTED.SendTo( source, parameters[0] );
                }).Delay( player.HasPermission( "essentials.warps.bypasscooldown" ) ? 0 : cooldown * 1000 ).Go();
            }
        }
Exemplo n.º 12
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( parameters.Length == 0 )
            {
                if ( source.IsConsole )
                {
                    ShowUsage( source );
                }
                else
                {
                    var player = source.ToPlayer();

                    EssLang.POSITION.SendTo( player,
                                          player.Position.x,
                                          player.Position.y,
                                          player.Position.z );
                }
            }
            else
            {
                var found = UPlayer.TryGet( parameters[0], p =>
                {
                    EssLang.POSITION_OTHER.SendTo( source,
                        p.DisplayName, p.Position.x, p.Position.y, p.Position.z );
                } );

                if ( !found )
                {
                    EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0] );
                }
            }
        }
Exemplo n.º 13
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());
        }
Exemplo n.º 14
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());
            }
        }
Exemplo n.º 15
0
        public void AscendCommand( ICommandSource src, ICommandArgs args, ICommand cmd )
        {
            if ( args.IsEmpty )
            {
                ShowUsage( src, cmd );
            }
            else if ( !args[0].IsFloat )
            {
                EssLang.INVALID_NUMBER.SendTo( src, args[0] );
            }
            else if ( args[0].ToFloat <= 0 )
            {
                EssLang.MUST_POSITIVE.SendTo( src, args[0] );
            }
            else
            {
                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 );
                player.SendMessage( $"You ascended {num} \"meters\"" );
            }
        }
Exemplo n.º 16
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player = src.ToPlayer();

            if (!player.HasMetadata(Consts.BACK_METADATA_KEY))
            {
                return(CommandResult.Lang("NOT_DIED_YET"));
            }

            var backPosition = player.GetMetadata <Vector3>(Consts.BACK_METADATA_KEY);

            src.ToPlayer().Teleport(backPosition);
            EssLang.Send(src, "RETURNED");

            return(CommandResult.Success());
        }
Exemplo n.º 17
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"));
            }
        }
Exemplo n.º 18
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());
        }
Exemplo n.º 19
0
        public override void OnExecute( ICommandSource src, ICommandArgs args )
        {
            var player = src.ToPlayer();
            var dist = 1000f;

            if ( args.Length == 1 )
            {
                if ( !args[0].IsDouble )
                    goto usage;
                dist = (float) args[0].ToDouble;
            }

            var eyePos = player.GetEyePosition( dist );

            if ( !eyePos.HasValue )
            {
                EssLang.JUMP_NO_POSITION.SendTo( src );
            }
            else
            {
                var point = eyePos.Value;
                point.y += 6;

                player.Teleport( point );
                EssLang.JUMPED.SendTo( src, point.x, point.y, point.z );
            }
            return;

            usage:
            ShowUsage( src );
        }
Exemplo n.º 20
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());
        }
Exemplo n.º 21
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());
        }
Exemplo n.º 22
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args.Length == 0 || (args.Length == 1 && src.IsConsole))
            {
                return(CommandResult.ShowUsage());
            }

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

            var amount = args[0].ToInt;

            if (amount > MAX || amount < -MAX)
            {
                return(CommandResult.Lang(EssLang.NUMBER_BETWEEN, -MAX, MAX));
            }

            if (args.Length == 2)
            {
                if (args[1].Is("*"))
                {
                    UServer.Players.ForEach(p => GiveExp(p, amount));

                    if (amount >= 0)
                    {
                        EssLang.EXPERIENCE_GIVEN.SendTo(src, amount, EssLang.EVERYONE);
                    }
                    else
                    {
                        EssLang.EXPERIENCE_TAKE.SendTo(src, -amount, EssLang.EVERYONE);
                    }
                }
                else if (!args[1].IsValidPlayerName)
                {
                    return(CommandResult.Lang(EssLang.PLAYER_NOT_FOUND, args[1]));
                }
                else
                {
                    var player = args[1].ToPlayer;

                    if (amount >= 0)
                    {
                        EssLang.EXPERIENCE_GIVEN.SendTo(src, amount, player.DisplayName);
                    }
                    else
                    {
                        EssLang.EXPERIENCE_TAKE.SendTo(src, -amount, player.DisplayName);
                    }
                }
            }
            else
            {
                GiveExp(src.ToPlayer(), amount);
            }

            return(CommandResult.Success());
        }
Exemplo n.º 23
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args.Length < 2)
            {
                return(CommandResult.ShowUsage());
            }

            var target = args[0].ToPlayer;

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

            var pmSettings = UEssentials.Config.PrivateMessage;
            var formatFrom = pmSettings.FormatFrom;
            var formatTo   = pmSettings.FormatTo;
            var formatSpy  = pmSettings.FormatSpy;

            var formatFromColor = ColorUtil.GetColorFromString(ref formatFrom);
            var formatToColor   = ColorUtil.GetColorFromString(ref formatTo);
            var formatSpyColor  = ColorUtil.GetColorFromString(ref formatSpy);

            var targetName = src.IsConsole ? pmSettings.ConsoleDisplayName : target.DisplayName;
            var srcName    = src.IsConsole ? pmSettings.ConsoleDisplayName : src.DisplayName;

            formatFrom = string.Format(formatFrom, srcName, args.Join(1));
            formatTo   = string.Format(formatTo, targetName, args.Join(1));
            formatSpy  = string.Format(formatSpy, srcName, targetName, args.Join(1));

            target.SendMessage(formatFrom, formatFromColor);
            src.SendMessage(formatTo, formatToColor);

            Spies.ForEach(p => {
                UPlayer.From(p).SendMessage(formatSpy, formatSpyColor);
            });

            if (src.IsConsole)
            {
                return(CommandResult.Success());
            }

            var srcPlayer = src.ToPlayer();
            var srcId     = srcPlayer.CSteamId.m_SteamID;

            if (Conversations.ContainsKey(srcId))
            {
                if (!Conversations[srcId].Equals(target.CSteamId.m_SteamID))
                {
                    Conversations[srcId] = target.CSteamId.m_SteamID;
                }
            }
            else
            {
                Conversations.Add(srcId, target.CSteamId.m_SteamID);
            }

            return(CommandResult.Success());
        }
Exemplo n.º 24
0
        CommandResult VehicleFeaturesCommand(ICommandSource src, ICommandArgs args, ICommand cmd)
        {
            if (args.Length != 2)
            {
                return(CommandResult.ShowUsage());
            }

            bool toggleValue;

            if (args[1].IsOneOf(new[] { "1", "on", "true" }))
            {
                toggleValue = true;
            }
            else if (args[1].IsOneOf(new[] { "0", "off", "false" }))
            {
                toggleValue = false;
            }
            else
            {
                return(CommandResult.ShowUsage());
            }

            var player    = src.ToPlayer();
            var component = player.GetComponent <PlayerVehicleFeatures>() ?? player.AddComponent <PlayerVehicleFeatures>();

            switch (args[0].ToLowerString)
            {
            case "autorefuel":
                if (toggleValue)
                {
                    component.AutoRefuel = true;
                    EssLang.AUTO_REFUEL_ENABLED.SendTo(src);
                }
                else
                {
                    component.AutoRefuel = false;
                    EssLang.AUTO_REFUEL_DISABLED.SendTo(src);
                }
                break;

            case "autorepair":
                if (toggleValue)
                {
                    component.AutoRepair = true;
                    EssLang.AUTO_REPAIR_ENABLED.SendTo(src);
                }
                else
                {
                    component.AutoRepair = false;
                    EssLang.AUTO_REPAIR_DISABLED.SendTo(src);
                }
                break;

            default:
                return(CommandResult.ShowUsage());
            }

            return(CommandResult.Success());
        }
Exemplo n.º 25
0
        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]));
                }

                if (args.Length == 2 && !src.HasPermission(Permission + ".other"))
                {
                    return(CommandResult.Lang("COMMAND_NO_PERMISSION"));
                }

                var overpower    = args[0].ToBool;
                var targetPlayer = args.Length == 2 ? args[1].ToPlayer : src.ToPlayer();

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

                GiveMaxSkills(targetPlayer, overpower);

                if (src.IsConsole || src.ToPlayer() != targetPlayer)
                {
                    EssLang.Send(src, "MAX_SKILLS_TARGET", targetPlayer.DisplayName);
                }
            }

            return(CommandResult.Success());
        }
Exemplo n.º 26
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var players = UServer.Players.ToList();

            if (players.Count == (src.IsConsole ? 0 : 1))
            {
                return(CommandResult.Lang(EssLang.NO_PLAYERS_FOR_TELEPORT));
            }
            switch (args.Length)
            {
            case 0:
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

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

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

                if (!found)
                {
                    return(CommandResult.Lang(EssLang.PLAYER_NOT_FOUND, args[0]));
                }
                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.TELEPORTED_ALL_COORDS.SendTo(src, x, y, z);
                }
                catch (FormatException)
                {
                    return(CommandResult.Lang(EssLang.INVALID_COORDS,
                                              src, args[0], args[1], args[2]));
                }
                break;

            default:
                return(CommandResult.ShowUsage());
            }

            return(CommandResult.Success());
        }
Exemplo n.º 27
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());
        }
Exemplo n.º 28
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var player   = src.ToPlayer();
            var playerId = player.CSteamId;

            if (Cooldown.Has(playerId))
            {
                return(CommandResult.Lang(EssLang.USE_COOLDOWN,
                                          TimeUtil.FormatSeconds((uint)Cooldown.GetRemaining(playerId))));
            }

            Vector3 position;
            byte    angle;

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

            if (!BarricadeManager.tryGetBed(player.CSteamId, out position, out angle))
            {
                return(CommandResult.Lang(EssLang.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.TELEPORT_DELAY.SendTo(src, TimeUtil.FormatSeconds((uint)delay));
            }

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

            task.Go();

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

            return(CommandResult.Success());
        }
Exemplo n.º 29
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"));
                }
            }
Exemplo n.º 30
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( parameters.IsEmpty || ( parameters.Length < 5 && source.IsConsole ) )
            {
                ShowUsage( source );
            }
            else
            {
                var rawId          = parameters[0].ToString();
                var rawAmount      = parameters.Length >= 2 ? parameters[1].ToString() : "1";
                var pos            = source.ToPlayer().Position;

                if ( parameters.Length == 5 )
                {
                    var argPos = parameters.GetVector3( 2 );

                    if ( !argPos.HasValue )
                    {
                        EssLang.INVALID_COORDS.SendTo( source, parameters[2], parameters[3], parameters[4] );
                        return;
                    }

                    pos = argPos.Value;
                }

                ushort amount;

                if ( !ushort.TryParse( rawAmount, out amount ) )
                {
                    EssLang.INVALID_NUMBER.SendTo( source, rawAmount );
                    return;
                }

                var itemAsset = ItemUtil.GetItem( rawId );

                if ( itemAsset.IsAbsent )
                {
                    EssLang.INVALID_ITEM_ID.SendTo( source, rawId );
                    return;
                }

                var item = new Item( itemAsset.Value.id, true );

                for ( var i = 0; i < amount; i++ )
                {
                    ItemManager.dropItem( item, pos, true, true, true );
                }

                if ( parameters.Length == 5 )
                    EssLang.SPAWNED_ITEM_AT.SendTo( source, amount, itemAsset.Value.Name, pos.x, pos.y, pos.z );
                else
                    EssLang.SPAWNED_ITEM.SendTo( source, amount, itemAsset.Value.Name );
            }
        }
Exemplo n.º 31
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());
        }
Exemplo n.º 32
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());
        }
Exemplo n.º 33
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (args.Length < 2)
            {
                return(CommandResult.ShowUsage());
            }

            var target = args[0].ToPlayer;

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

            var formatFrom      = UEssentials.Config.PMFormatFrom;
            var formatTo        = UEssentials.Config.PMFormatTo;
            var formatFromColor = ColorUtil.GetColorFromString(ref formatFrom);
            var formatToColor   = ColorUtil.GetColorFromString(ref formatTo);

            var message  = string.Format(formatFrom, src.DisplayName, args.Join(1));
            var message2 = string.Format(formatTo, target.DisplayName, args.Join(1));

            target.SendMessage(message, formatFromColor);
            src.SendMessage(message2, formatToColor);

            Spies.ForEach(p => {
                UPlayer.From(p).SendMessage($"Spy: ({src.DisplayName} -> " +
                                            $"{target.CharacterName}): {args.Join(1)}", Color.gray);
            });

            if (src.IsConsole)
            {
                return(CommandResult.Success());
            }

            var srcPlayer = src.ToPlayer();
            var srcId     = srcPlayer.CSteamId.m_SteamID;

            if (Conversations.ContainsKey(srcId))
            {
                if (!Conversations[srcId].Equals(target.CSteamId.m_SteamID))
                {
                    Conversations[srcId] = target.CSteamId.m_SteamID;
                }
            }
            else
            {
                Conversations.Add(srcId, target.CSteamId.m_SteamID);
            }

            return(CommandResult.Success());
        }
Exemplo n.º 34
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            switch (args.Length)
            {
            case 1:
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                DropKit(src, args[0], src.ToPlayer().Position);
                EssLang.Send(src, "DROPKIT_SENDER", args[0]);
                break;

            case 2:
                if (!src.HasPermission($"{Permission}.other"))
                {
                    return(CommandResult.Lang("COMMAND_NO_PERMISSION"));
                }

                var found = UPlayer.TryGet(args[1], player => {
                    DropKit(src, args[0], player.Position);
                    EssLang.Send(src, "DROPKIT_PLAYER", args[0], player.DisplayName);
                });

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

            case 4:
                var pos = args.GetVector3(1);

                if (pos.HasValue)
                {
                    DropKit(src, args[0], pos.Value);
                    EssLang.Send(src, "DROPKIT_LOCATION", args[1], args[2], args[3]);
                }
                else
                {
                    return(CommandResult.Lang("INVALID_COORDS", args[1], args[2], args[3]));
                }
                break;

            default:
                return(CommandResult.ShowUsage());
            }

            return(CommandResult.Success());
        }
Exemplo n.º 35
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            if (!float.TryParse(args[0].ToString(), out var amount))
            {
                return(CommandResult.LangError("INVALID_NUMBER", amount));
            }

            var player = src.ToPlayer();

            player.Movement.sendPluginSpeedMultiplier(amount);

            EssLang.Send(src, "JUMP_CHANGED", amount);
            return(CommandResult.Success());
        }
Exemplo n.º 36
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            switch (args.Length)
            {
            case 1:
                if (src.IsConsole)
                {
                    return(CommandResult.ShowUsage());
                }

                if (WarpModule.Instance.WarpManager.Contains(args[0].ToString()))
                {
                    return(CommandResult.Lang("WARP_ALREADY_EXISTS"));
                }

                var player = src.ToPlayer();
                var warp   = new Warp(args[0].ToString(), player.Position, player.Rotation);

                WarpModule.Instance.WarpManager.Add(warp);
                EssLang.Send(src, "WARP_SET", args[0]);
                break;

            case 4:
                var pos = args.GetVector3(1);

                if (pos.HasValue)
                {
                    warp = new Warp(args[0].ToString(), pos.Value, 0.0F);

                    if (WarpModule.Instance.WarpManager.Contains(args[0].ToString()))
                    {
                        return(CommandResult.Lang("WARP_ALREADY_EXISTS"));
                    }

                    WarpModule.Instance.WarpManager.Add(warp);

                    EssLang.Send(src, "WARP_SET", args[0]);
                }
                else
                {
                    return(CommandResult.Lang("INVALID_COORDS", args[1], args[2], args[3]));
                }
                break;

            default:
                return(CommandResult.ShowUsage());
            }

            return(CommandResult.Success());
        }
Exemplo n.º 37
0
        public override void OnExecute( ICommandSource src, ICommandArgs args )
        {
            switch ( args.Length )
            {
                case 0:
                    if ( src.IsConsole )
                    {
                        ShowUsage( src );
                        return;
                    }

                    var eyePos = src.ToPlayer().GetEyePosition( 3000 );

                    if ( eyePos.HasValue )
                    {
                        Explode( eyePos.Value );
                    }
                    break;

                case 1:
                    var found = UPlayer.TryGet( args[0], player =>
                        Explode( player.Position )
                    );

                    if ( !found )
                    {
                        EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] );
                    }
                    break;

                case 3:
                    var pos = args.GetVector3( 0 );

                    if ( pos.HasValue )
                    {
                        Explode( pos.Value );
                    }
                    else
                    {
                        EssLang.INVALID_COORDS.SendTo( src, args[0], args[1], args[2] );
                    }
                    break;

                default:
                    ShowUsage( src );
                    return;
            }
        }
Exemplo n.º 38
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            var displayName = source.DisplayName;

            if ( BackDict.ContainsKey( displayName ) )
            {
                source.ToPlayer().Teleport( BackDict[displayName] );

                BackDict.Remove( displayName );

                EssLang.RETURNED.SendTo( source );
            }
            else
            {
                EssLang.NOT_DIED_YET.SendTo( source );
            }
        }
Exemplo n.º 39
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            var player = source.ToPlayer();

            if ( parameters.IsEmpty )
            {
                ShowUsage( source );
            }
            else if ( parameters[0].Is( "all" ) )
            {
                player.RocketPlayer.Inventory.Items.ToList().ForEach( item => Repair( player, item ) );
                EssLang.ALL_REPAIRED.SendTo( source );
            }
            else if ( parameters[0].Is( "hand" ) )
            {
                Repair( player, player.RocketPlayer.Inventory.Items[0] );
                EssLang.HAND_REPAIRED.SendTo( source );
            }
        }
Exemplo n.º 40
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( parameters.IsEmpty || parameters.Length > 1 )
            {
                if ( source.IsConsole )
                    source.SendMessage( "Use /ping [player]" );
                else
                    EssLang.PING.SendTo( source, source.ToPlayer().Ping );
            }
            else
            {
                var target = parameters[0].ToPlayer;

                if ( target == null )
                    EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0] );
                else
                    EssLang.PING_OTHER.SendTo( source, target.DisplayName, target.Ping );
            }
        }
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( parameters.IsEmpty )
            {
                if ( source.IsConsole )
                {
                    ShowUsage( source );
                    return;
                }

                var currentVeh = source.ToPlayer().CurrentVehicle;

                if ( currentVeh != null )
                {
                    VehicleManager.sendVehicleFuel( currentVeh, currentVeh.asset.fuel );

                    EssLang.VEHICLE_REFUELED.SendTo( source );
                }
                else
                {
                    EssLang.NOT_IN_VEHICLE.SendTo( source );
                }
            }
            else if ( parameters[0].Is( "all" ) )
            {
                var allVehicles = UWorld.Vehicles;

                lock ( allVehicles )
                {
                    allVehicles
                    .Where( veh => !veh.isExploded && !veh.isUnderwater)
                    .ToList()
                    .ForEach( vehicle =>
                    {
                        VehicleManager.sendVehicleFuel( vehicle, vehicle.asset.fuel );
                    });

                    EssLang.VEHICLE_REFUELED_ALL.SendTo( source );
                }
            }
        }
Exemplo n.º 42
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            switch ( parameters.Length )
            {
                case 1:
                    if ( source.IsConsole )
                    {
                        ShowUsage( source );
                        break;
                    }

                    var player = source.ToPlayer();
                    var warp = new Warp( parameters[0].ToString(),  player.Position, player.Rotation );
                    EssProvider.WarpManager.Add( warp );
                    EssLang.WARP_SET.SendTo( source, parameters[0] );
                    break;

                case 4:
                    var pos = parameters.GetVector3( 1 );

                    if ( pos.HasValue )
                    {
                        warp = new Warp( parameters[0].ToString(), pos.Value, 0.0F );

                        EssProvider.WarpManager.Add( warp );

                        EssLang.WARP_SET.SendTo( source, parameters[0] );
                    }
                    else
                    {
                        EssLang.INVALID_COORDS.SendTo( source, parameters[1], parameters[2], parameters[3] );
                    }
                    break;

                default:
                    ShowUsage( source );
                    break;
            }
        }
Exemplo n.º 43
0
    public override void OnExecute( ICommandSource source, ICommandArgs parameters )
    {
        var players = UServer.Players.ToList();

            if ( players.Count == ( source.IsConsole ? 0 : 1) )
            {
                EssLang.NO_PLAYERS_FOR_TELEPORT.SendTo( source );
            }
            else
            {
                switch ( parameters.Length )
                {
                    case 0:
                        if ( source.IsConsole )
                        {
                            source.SendMessage( "Use /tpall [player/position[x, y, z]]" );
                        }
                        else
                        {
                            TeleportAll( source.ToPlayer().RocketPlayer.Position, players );
                            EssLang.TELEPORTED_ALL_YOU.SendTo( source );
                        }
                        break;
                    case 1:
                        var found = UPlayer.TryGet( parameters[0], player => {
                            TeleportAll( player.Position, players );
                            EssLang.TELEPORTED_ALL_PLAYER.SendTo( source, player.DisplayName );
                        } );

                        if ( !found )
                        {
                            EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0].ToString() );
                        }
                        break;
                    case 3:
                        try
                        {
                            var x = (float) parameters[0].ToDouble;
                            var y = (float) parameters[1].ToDouble;
                            var z = (float) parameters[2].ToDouble;

                            var pos = new Vector3( x, y, z );

                            TeleportAll( pos, players );
                            EssLang.TELEPORTED_ALL_COORDS.SendTo( source, x, y, z );
                        }
                        catch ( FormatException )
                        {
                            EssLang.INVALID_COORDS.SendTo(
                                source,
                                parameters[0],
                                parameters[1],
                                parameters[2]
                            );
                        }
                        break;

                    default:
                        source.SendMessage( "Use /tpall [player/position[x, y, z]]" );
                        break;
                }
            }
    }
Exemplo n.º 44
0
        public void VehicleFeaturesCommand( ICommandSource src, ICommandArgs args, ICommand cmd )
        {
            if ( args.Length != 2 )
            {
                goto usage;
            }

            bool toggleValue;

            if ( args[1].IsOneOf( new[] { "1", "on", "true" } ) )
            {
                toggleValue = true;
            }
            else if ( args[1].IsOneOf( new[] { "0", "off", "false" } ) )
            {
                toggleValue = false;
            }
            else
            {
                goto usage;
            }

            var player = src.ToPlayer();
            var component = player.GetComponent<PlayerVehicleFeatures>() ?? player.AddComponent<PlayerVehicleFeatures>();

            switch (args[0].ToLowerString)
            {
                case "autorefuel":
                    if ( toggleValue )
                    {
                        component.AutoRefuel = true;
                        EssLang.AUTO_REFUEL_ENABLED.SendTo( src );
                    }
                    else
                    {
                        component.AutoRefuel = false;
                        EssLang.AUTO_REFUEL_DISABLED.SendTo( src );
                    }
                    return;

                case "autorepair":
                    if ( toggleValue )
                    {
                        component.AutoRepair = true;
                        EssLang.AUTO_REPAIR_ENABLED.SendTo( src );
                    }
                    else
                    {
                        component.AutoRepair = false;
                        EssLang.AUTO_REPAIR_DISABLED.SendTo( src );
                    }
                    return;

                default:
                    goto usage;
            }

            usage:
            ShowUsage( src, cmd );
        }
Exemplo n.º 45
0
        public void ItemInfoCommand( ICommandSource src, ICommandArgs args, ICommand cmd )
        {
            if ( src.IsConsole && args.Length != 1 )
            {
                ShowUsage( src, cmd );
                return;
            }

            ItemAsset asset;

            if ( args.Length == 0 )
            {
                var equipament = src.ToPlayer().Equipment;

                if ( equipament.HoldingItemID == 0 )
                {
                    EssLang.EMPTY_HANDS.SendTo( src );
                }

                asset = equipament.asset;
            }
            else
            {
                if ( !args[0].IsUshort ||
                    (asset = Assets.find( EAssetType.ITEM, args[0].ToUshort ) as ItemAsset) == null)
                {
                    EssLang.INVALID_ITEM_ID.SendTo( src, args[0] );
                    return;
                }
            }

            var color       = Color.yellow;
            var name        = WrapMessage( src, asset.name );
            var description = WrapMessage( src, asset.Description );
            var type        = WrapMessage( src, asset.ItemType.ToString() );
            var isPro       = WrapMessage( src, asset.isPro.ToString() );

            src.SendMessage( $"Name: {name}", color );
            src.SendMessage( $"Description: {description}", color );
            src.SendMessage( $"Id: {asset.id}", color );
            src.SendMessage( $"Type: {type}", color );
            src.SendMessage( $"IsPro: {isPro}", color );
        }
Exemplo n.º 46
0
        public override void OnExecute( ICommandSource src, ICommandArgs args )
        {
            if ( src.IsConsole && (args.Length == 1 || args.Length == 3) )
                goto usage;

            switch ( args.Length )
            {
                /*
                    /tp player  -> sender to player
                    /tp place   -> sender to place
                */
                case 1:
                    var data            = FindPlaceOrPlayer( args[0].ToString() );
                    var dataFound       = (bool) data[0];
                    var dataPosition    = (Vector3) data[1];
                    var dataName        = (string) data[2];

                    if ( !dataFound )
                    {
                        EssLang.FAILED_FIND_PLACE_OR_PLAYER.SendTo( src, args[0] );
                    }
                    else
                    {
                        src.ToPlayer().Teleport( dataPosition );
                        EssLang.TELEPORTED.SendTo( src, dataName );
                    }
                    return;

                /*
                    /tp player other   -> player to other
                    /tp player place   -> player to place
                */
                case 2:
                    var found = UPlayer.TryGet( args[0], p =>
                    {
                        data            = FindPlaceOrPlayer( args[1].ToString() );
                        dataFound       = (bool) data[0];
                        dataPosition    = (Vector3) data[1];
                        dataName        = (string) data[2];

                        if ( !dataFound )
                        {
                            EssLang.FAILED_FIND_PLACE_OR_PLAYER.SendTo( src, args[0] );
                        }
                        else
                        {
                            p.Teleport( dataPosition );
                            EssLang.TELEPORTED.SendTo( p, dataName );
                            EssLang.TELEPORTED_SENDER.SendTo( src, p, dataName );
                        }
                    } );

                    if ( !found )
                    {
                        EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] );
                    }
                    return;

                /*
                    /tp x y z          -> sender to x,y,z
                */
                case 3:
                    var location = args.GetVector3( 0 );

                    if ( location.HasValue )
                    {
                        src.ToPlayer().Teleport( location.Value );
                        EssLang.TELEPORTED.SendTo( src, location );
                    }
                    else
                    {
                        EssLang.INVALID_COORDS.SendTo( src, args[0], args[1], args[2] );
                    }
                    return;

                /*
                    /tp player x y z   -> player to x, y, z
                */
                case 4:
                    found = UPlayer.TryGet( args[0], p =>
                    {
                        location = args.GetVector3( 1 );

                        if ( location.HasValue )
                        {
                            p.Teleport( location.Value );
                            EssLang.TELEPORTED.SendTo( p, location );
                            EssLang.TELEPORTED_SENDER.SendTo( src, p, location );
                        }
                        else
                        {
                            EssLang.INVALID_COORDS.SendTo( src, args[1], args[2], args[3] );
                        }
                    } );

                    if ( !found )
                    {
                        EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] );
                    }
                    return;

                default:
                    goto usage;
            }

            usage:
            ShowUsage( src );
        }
Exemplo n.º 47
0
        public void ItemCommand( ICommandSource src, ICommandArgs args, ICommand cmd )
        {
            switch (args.Length)
            {
                /*
                    /i [item]
                 */
                case 1:
                    if ( src.IsConsole )
                    {
                        goto usage;
                    }
                    GiveItem( src, src.ToPlayer(), args[0], One );
                    return;

                /*
                    /i [item] [amount]
                    /i [player] [item]
                    /i all [item]
                 */
                case 2:
                    if ( args[1].IsInt )
                    {
                        if ( src.IsConsole )
                        {
                            goto usage;
                        }
                        GiveItem( src, src.ToPlayer(), args[0], args[1] );
                    }
                    else if ( args[0].Is( "all" ) )
                    {
                        GiveItem( src, null, args[1], One, true );
                    }
                    else if ( !args[0].IsValidPlayerName )
                    {
                        EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] );
                    }
                    else
                    {
                        GiveItem( src, UPlayer.From( args[0].ToString() ), args[1], One );
                    }
                    return;

                /*
                    /i [player] [item] [amount]
                    /i all [item] [amount]
                 */
                case 3:
                    if ( args[0].Is( "all" ) )
                    {
                        GiveItem( src, null, args[1], args[2], true );
                    }
                    else if ( !args[0].IsValidPlayerName )
                    {
                        EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] );
                    }
                    else
                    {
                        GiveItem( src, UPlayer.From( args[0].ToString() ), args[1], args[2] );
                    }
                    return;

                default:
                    goto usage;
            }

            usage:
            ShowUsage( src, cmd );
        }
Exemplo n.º 48
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( parameters.Length == 0 || ( parameters.Length == 1 && source.IsConsole ) )
            {
                source.SendMessage( source.IsAdmin ? 
                    UsageMessage : "Use /kit [kit_name]" );
            }
            else if ( parameters.Length == 1 )
            {
                var player = source.ToPlayer();

                if ( EssProvider.KitManager.Contains( parameters[0].ToString() ) )
                {
                    var kitName = parameters[0].ToLowerString;
                    var requestedKit = EssProvider.KitManager.GetByName(kitName);

                    if ( !requestedKit.CanUse( player ) )
                    {
                        EssLang.KIT_NO_PERMISSION.SendTo( player );
                    }
                    else
                    {
                        var steamPlayerId    = player.CSteamId.m_SteamID;
                        var kitCooldown      = requestedKit.Cooldown;

                        if ( !source.HasPermission("essentials.kits.bypasscooldown") )
                        {
                            if ( !Cooldowns.ContainsKey( steamPlayerId ) )
                            {
                                Cooldowns.Add( steamPlayerId, new Dictionary<string, DateTime>() );
                            }
                            if ( Cooldowns[steamPlayerId].ContainsKey( kitName ) )
                            {
                                var remainingTime = DateTime.Now - Cooldowns[steamPlayerId][kitName];
                                if ( remainingTime.TotalSeconds > kitCooldown )
                                {
                                    Console.WriteLine( "3" );
                                    Cooldowns[steamPlayerId][kitName] = DateTime.Now;
                                }
                                else
                                {
                                    EssLang.KIT_COOLDOWN.SendTo( source, FormatSeconds(
                                        (uint) (kitCooldown - remainingTime.TotalSeconds)
                                    ));
                                    return;
                                }
                            }
                            else
                            {
                                Cooldowns[steamPlayerId].Add( kitName, DateTime.Now );
                            }
                        }
                        EssProvider.KitManager.GetByName( kitName ).GiveTo( player );
                    }
                }
                else
                {
                    EssLang.KIT_NOT_EXIST.SendTo( player, parameters[0] );
                }
            }
            else if ( parameters.Length == 2 )
            {
                var kitName = parameters[0].ToString();

                if ( !source.HasPermission( $"essentials.kit.{kitName}.other" ) )
                {
                    return;
                }

                var target = parameters[1].ToPlayer;

                if ( target == null )
                {
                    EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[1] );
                }
                else if ( EssProvider.KitManager.Contains( kitName ) )
                {
                    EssProvider.KitManager.GetByName(kitName).GiveTo( target );
                    EssLang.KIT_GIVEN_SENDER.SendTo( source, kitName, target );
                }
                else
                {
                    EssLang.KIT_NOT_EXIST.SendTo( source, kitName );
                }
            }
        }
Exemplo n.º 49
0
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            var player = source.ToPlayer();
            var p = player.UnturnedPlayer;

              //  Console.WriteLine( p.GetComponent<CharacterController>() == null );
            //   p.movement.GetComponent<CharacterController>().attachedRigidbody.constraints = RigidbodyConstraints.FreezePositionX;

            return;

            RaycastHit hit;

            Physics.Raycast(p.look.aim.position, p.look.aim.forward, out hit, 114f, RayMasks.PLAYER_INTERACT);

            var barricade = hit.transform?.GetComponent<InteractableDoor>();

            byte b;
            byte b2;
            ushort num;
            ushort num2;
            BarricadeRegion barricadeRegion;
            if ( BarricadeManager.tryGetInfo( barricade.transform, out b, out b2, out num, out num2, out barricadeRegion ) )
            {
                Console.WriteLine( b + " " +b2 + " " + num + " " + num2) ;
            }

            return;
            var animalManager = typeof( AnimalManager ).GetField( "manager", BindingFlags.NonPublic | BindingFlags.Static ).GetValue( null ) as AnimalManager;

            typeof( AnimalManager ).GetMethod( "addAnimal", BindingFlags.NonPublic | BindingFlags.Instance )
            .Invoke( animalManager, new object[] { (byte) 3, player.Position + new Vector3( 2, 0, 0 ), 0.0f, false } );

            animalManager.askAnimals( player.CSteamId );

            return;

            //var animalManager = typeof( AnimalManager ).GetField( "manager", BindingFlags.NonPublic | BindingFlags.Static ).GetValue( null ) as AnimalManager;
            //animalManager.askAnimals( player.CSteamId );
            //var animals = typeof( AnimalManager ).GetField( "_animals", BindingFlags.NonPublic | BindingFlags.Static ).GetValue( null ) as List<Animal>;

            //typeof( AnimalManager ).GetMethod( "addAnimal", BindingFlags.NonPublic | BindingFlags.Instance )
            //.Invoke( animalManager, new object[] { (byte) 3, player.GetPosition() + new Vector3( 2, 0, 0 ), 0.0f, false } );

            //animalManager.channel.openWrite();
            //animalManager.channel.write( (ushort) AnimalManager.animals.Count );
            //Animal animal = AnimalManager.animals[AnimalManager.animals.Count - 1];
            //animalManager.channel.write( new object[]
            //{
            //        animal.id,
            //        animal.transform.position,
            //        MeasurementTool.angleToByte(animal.transform.rotation.eulerAngles.y),
            //        animal.isDead
            //} );
            //     animalManager.channel.closeWrite( "tellAnimals", player.GetCSteamId, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER );

            //   animalManager.askAnimals(player.GetCSteamId);

            //  source.SendMessage();

            return;
            //  var barel = new Attachment(7, 100);
            //   var grip = new Attachment(8, 100);
            //   var sight = new Attachment(146, 100);

            //     UnturnedItems.AssembleItem(4,20, sight, null, grip, barel, new Attachment(17, 100));
        }
Exemplo n.º 50
0
        public override void OnExecute( ICommandSource src, ICommandArgs args )
        {
            if ( (!src.IsConsole && args.Length < 2) || (src.IsConsole && args.Length < 3) )
                goto usage;

            UPlayer target;

            if ( args.Length == 3 )
            {
                target = args[2].ToPlayer;
            }
            else if ( src.IsConsole )
            {
                goto usage;
            }
            else
            {
                target = src.ToPlayer();
            }

            if ( target == null )
            {
                EssLang.PLAYER_NOT_FOUND.SendTo( src, args[2] );
            }
            else if ( !args[1].IsInt )
            {
                EssLang.INVALID_NUMBER.SendTo( src, args[1] );
            }
            else if ( args[1].ToInt < 0 )
            {
                EssLang.NEGATIVE_OR_LARGE.SendTo( src );
            }
            else
            {
                var amount = (uint) args[1].ToInt;
                var playerExp = target.UnturnedPlayer.skills.Experience;

                switch (args[0].ToLowerString)
                {
                    case "take":
                        playerExp -= playerExp < amount ? playerExp : amount;

                        if ( target != src )
                            EssLang.EXPERIENCE_TAKE.SendTo( src, amount, target.DisplayName );
                        EssLang.EXPERIENCE_LOST.SendTo( target, amount );
                        break;

                    case "give":
                        playerExp += amount;

                        if ( target != src )
                            EssLang.EXPERIENCE_GIVEN.SendTo( src, amount, target.DisplayName );
                        EssLang.EXPERIENCE_RECEIVED.SendTo( target, amount );
                        break;

                    default:
                        ShowUsage( src );
                        return;
                }

                target.UnturnedPlayer.skills.Experience = playerExp;
                target.UnturnedPlayer.skills.askSkills( target.CSteamId );
            }

            return;
            usage:
            ShowUsage( src );
        }
        // https://github.com/Zamirathe/ZaupClearInventoryLib
        public override void OnExecute( ICommandSource source, ICommandArgs parameters )
        {
            if ( source.IsConsole && parameters.IsEmpty )
            {
                ShowUsage( source );

                return;
            }

            var player = parameters.Length > 0 ? parameters[0].ToPlayer : source.ToPlayer();

            if ( player == null )
            {
                EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0] );
            }
            else
            {
                var playerInventory = 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] );

                // Remove items
                for ( byte page = 0; page < PlayerInventory.PAGES; page++ )
                {
                    var count = playerInventory.getItemCount( page );

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

                // Remove clothes

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

                // Unequip & remove from inventory
                player.UnturnedPlayer.clothing.askWearBackpack( 0, 0, new byte[0], true );
                removeUnequipped();

                player.UnturnedPlayer.clothing.askWearGlasses( 0, 0, new byte[0], true  );
                removeUnequipped();

                player.UnturnedPlayer.clothing.askWearHat( 0, 0, new byte[0], true  );
                removeUnequipped();

                player.UnturnedPlayer.clothing.askWearPants( 0, 0, new byte[0], true  );
                removeUnequipped();

                player.UnturnedPlayer.clothing.askWearMask( 0, 0, new byte[0], true  );
                removeUnequipped();

                player.UnturnedPlayer.clothing.askWearShirt( 0, 0, new byte[0], true  );
                removeUnequipped();

                player.UnturnedPlayer.clothing.askWearVest( 0, 0, new byte[0], true  );
                removeUnequipped();

                EssLang.INVENTORY_CLEAN.SendTo( player );
            }
        }
Exemplo n.º 52
0
        private static void GiveItem( ICommandSource src, UPlayer target, ICommandArgument itemArg, 
                                      ICommandArgument amountArg, bool allPlayers = false )
        {
            ItemAsset asset;

            if ( itemArg.IsUshort )
            {
                var id = itemArg.ToUshort;
                asset = (ItemAsset) Assets.find( EAssetType.ITEM, id );
            }
            else
            {
                asset = UnturnedItems.GetItemAssetByName( itemArg.ToLowerString );
            }

            if ( asset == null )
            {
                src.SendMessage( $"Could not find an item with this name or id: {itemArg}" );
                return;
            }

            ushort amt = 1;

            if ( amountArg != null )
            {
                if ( !amountArg.IsShort )
                {
                    EssLang.INVALID_NUMBER.SendTo( src, amountArg );
                }
                else if ( amountArg.ToUshort <= 0 )
                {
                    EssLang.MUST_POSITIVE.SendTo( src );
                }
                else
                {
                    amt = amountArg.ToUshort;
                    goto give;
                }
                return;
            }

            give:
            var playersToReceive = new List<UPlayer>();
            var item = new Item( asset.id, true );

            if ( allPlayers )
            {
                UServer.Players.ForEach( playersToReceive.Add );
                EssLang.GIVEN_ITEM_ALL.SendTo( src, amt, asset.Name );
            }
            else
            {
                playersToReceive.Add( target );

                if ( !src.IsConsole && src.ToPlayer() != target )
                {
                    EssLang.GIVEN_ITEM.SendTo( src, amt, asset.Name, target.CharacterName );
                }
            }

            playersToReceive.ForEach( p =>
            {
                var success = p.GiveItem( item, amt, true );

                EssLang.RECEIVED_ITEM.SendTo( p, amt, asset.Name );

                if ( !success )
                {
                    EssLang.INVENTORY_FULL.SendTo( p );
                }
            } );
        }