示例#1
0
        static string TranslateLimb(ELimb limb)
        {
            switch (limb)
            {
            case ELimb.SKULL:
                return(EssLang.Translate("LIMB_HEAD"));

            case ELimb.LEFT_HAND:
            case ELimb.RIGHT_HAND:
            case ELimb.LEFT_ARM:
            case ELimb.RIGHT_ARM:
                return(EssLang.Translate("LIMB_ARM"));

            case ELimb.LEFT_FOOT:
            case ELimb.RIGHT_FOOT:
            case ELimb.LEFT_LEG:
            case ELimb.RIGHT_LEG:
                return(EssLang.Translate("LIMB_LEG"));

            case ELimb.SPINE:
                return(EssLang.Translate("LIMB_TORSO"));

            //TODO: Add
            case ELimb.LEFT_BACK:
            case ELimb.RIGHT_BACK:
            case ELimb.LEFT_FRONT:
            case ELimb.RIGHT_FRONT:
                return("?");

            default:
                return("?");
            }
        }
        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.Lang("PLAYER_NOT_FOUND", args[0]));
            }

            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());
        }
示例#4
0
        public KitItem(ushort id, byte durability, byte amount)
        {
            Preconditions.CheckState(
                Assets.find(EAssetType.ITEM, id) != null, EssLang.Translate("INVALID_ITEM_ID", id));

            Id         = id;
            Durability = durability;
            Amount     = amount;

            ItemUtil.GetItem(id).IfPresent(ass => Metadata = ass.getState());
        }
示例#5
0
        private void DeathMessages(UnturnedPlayer player, EDeathCause cause, ELimb limb, CSteamID killer)
        {
            if (!(EssLang.GetEntry($"DEATH_{cause}") is string message))
            {
                return;
            }

            var hasKiller = killer != CSteamID.Nil;
            var arguments = new object[hasKiller ? 3 : 2];
            var color     = ColorUtil.GetColorFromString(ref message);

            arguments[0] = player.CharacterName;
            arguments[1] = EssLang.Translate($"LIMB_{limb}") ?? "?";
            if (hasKiller)
            {
                arguments[2] = UPlayer.From(killer)?.CharacterName ?? "?";
            }

            UServer.Broadcast(string.Format(message, arguments), color);
        }
示例#6
0
        public override CommandResult OnExecute(ICommandSource src, ICommandArgs args)
        {
            var players = new List <UPlayer>(UServer.Players);

            if (players.Count == 0)
            {
                return(CommandResult.Lang("NO_PLAYERS_FOR_KICK"));
            }

            var reason = args.IsEmpty
                ? EssLang.Translate("KICK_NO_SPECIFIED_REASON")
                : args.Join(0);

            players.ForEach(player => {
                player.Kick(reason);
            });

            EssLang.Send(src, "KICKED_ALL", players.Count);

            return(CommandResult.Success());
        }
示例#7
0
        public static string FormatSeconds(uint seconds)
        {
            var msgSecond  = EssLang.Translate("SECOND");
            var msgSeconds = EssLang.Translate("SECONDS");

            if (seconds < 60)
            {
                return($"{seconds} {(seconds == 1 ? msgSecond : msgSeconds )}");
            }

            const uint MIN  = 60;
            const uint HOUR = MIN * MIN;
            const uint DAY  = HOUR * 24;

            var days = seconds / DAY;

            seconds -= days * DAY;

            var hours = seconds / HOUR;

            seconds -= hours * HOUR;

            var minutes = seconds / MIN;

            seconds -= minutes * MIN;

            var sb = new StringBuilder();

            if (days > 0)
            {
                var msgDay  = EssLang.Translate("DAY");
                var msgDays = EssLang.Translate("DAYS");

                sb.Append(days)
                .Append(" ")
                .Append(days == 1 ? msgDay : msgDays)
                .Append(", ");
            }

            if (hours > 0)
            {
                var msgHour  = EssLang.Translate("HOUR");
                var msgHours = EssLang.Translate("HOURS");

                sb.Append(hours)
                .Append(" ")
                .Append(hours == 1 ? msgHour : msgHours)
                .Append(", ");
            }

            if (minutes > 0)
            {
                var msgMinute  = EssLang.Translate("MINUTE");
                var msgMinutes = EssLang.Translate("MINUTES");

                sb.Append(minutes)
                .Append(" ")
                .Append(minutes == 1 ? msgMinute : msgMinutes)
                .Append(", ");
            }

            sb.Append(seconds)
            .Append(" ")
            .Append(seconds == 1 ? msgSecond : msgSeconds)
            .Append(", ");

            return(sb.ToString().Substring(0, sb.Length - 2));
        }
示例#8
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("INVALID_NUMBER", args[0]));
            }

            var amount = args[0].ToInt;

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

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

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

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

                    GiveExp(player, amount);
                }
            }
            else
            {
                GiveExp(src.ToPlayer(), amount);
            }

            return(CommandResult.Success());
        }
示例#9
0
 /// <summary>
 /// Commonly indicate that an given argument is invalid, and send the
 /// give <paramref name="key"/> to sender.
 /// </summary>
 /// <param name="key">Translation entry</param>
 /// <param name="args">Arguments of translation entry</param>
 /// <returns></returns>
 public static CommandResult Lang(string key, params object[] args)
 {
     return(new CommandResult(EssLang.Translate(key, args), ResultType.LANG));
 }