This commit is contained in:
Juzlus 2025-09-24 03:18:32 +02:00
parent 04a4fdce0d
commit ac53655184
129 changed files with 1087 additions and 978 deletions

View file

@ -1,8 +1,8 @@
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using static jRandomSkills.jRandomSkills;
using static src.jRandomSkills;
namespace jRandomSkills
namespace src.utils
{
public static class Config
{

View file

@ -1,68 +1,68 @@
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Commands.Targeting;
using jRandomSkills.src.utils;
using static jRandomSkills.jRandomSkills;
using static src.jRandomSkills;
namespace jRandomSkills;
public class FindTarget
namespace src.utils
{
public static (List<CCSPlayerController> players, string targetname) Find
(
CommandInfo command,
int minArgCount,
bool singletarget,
bool ignoreMessage = false
)
public class FindTarget
{
if (command.ArgCount < minArgCount)
public static (List<CCSPlayerController> players, string targetname) Find
(
CommandInfo command,
int minArgCount,
bool singletarget,
bool ignoreMessage = false
)
{
return (new List<CCSPlayerController>(), string.Empty);
}
TargetResult targetresult = command.GetArgTargetResult(1);
if (targetresult.Players.Count == 0)
{
if (!ignoreMessage && command.CallingPlayer != null)
command.ReplyToCommand(command.CallingPlayer.GetTranslation("no_player"));
return (new List<CCSPlayerController>(), string.Empty);
}
else if (singletarget && targetresult.Players.Count > 1)
{
if (command.CallingPlayer != null)
command.ReplyToCommand(command.CallingPlayer.GetTranslation("duplicate_player"));
return (new List<CCSPlayerController>(), string.Empty);
}
string targetname;
if (targetresult.Players.Count == 1)
{
targetname = targetresult.Players.Single().PlayerName;
}
else
{
Target.TargetTypeMap.TryGetValue(command.GetArg(1), out TargetType type);
targetname = type switch
if (command.ArgCount < minArgCount)
{
TargetType.GroupAll => Instance.Localizer["all"],
TargetType.GroupBots => Instance.Localizer["bots"],
TargetType.GroupHumans => Instance.Localizer["humans"],
TargetType.GroupAlive => Instance.Localizer["alive"],
TargetType.GroupDead => Instance.Localizer["dead"],
TargetType.GroupNotMe => Instance.Localizer["notme"],
TargetType.PlayerMe => targetresult.Players.First().PlayerName,
TargetType.TeamCt => Instance.Localizer["ct"],
TargetType.TeamT => Instance.Localizer["t"],
TargetType.TeamSpec => Instance.Localizer["spec"],
_ => targetresult.Players.First().PlayerName
};
}
return (new List<CCSPlayerController>(), string.Empty);
}
return (targetresult.Players, targetname);
TargetResult targetresult = command.GetArgTargetResult(1);
if (targetresult.Players.Count == 0)
{
if (!ignoreMessage && command.CallingPlayer != null)
command.ReplyToCommand(command.CallingPlayer.GetTranslation("no_player"));
return (new List<CCSPlayerController>(), string.Empty);
}
else if (singletarget && targetresult.Players.Count > 1)
{
if (command.CallingPlayer != null)
command.ReplyToCommand(command.CallingPlayer.GetTranslation("duplicate_player"));
return (new List<CCSPlayerController>(), string.Empty);
}
string targetname;
if (targetresult.Players.Count == 1)
{
targetname = targetresult.Players.Single().PlayerName;
}
else
{
Target.TargetTypeMap.TryGetValue(command.GetArg(1), out TargetType type);
targetname = type switch
{
TargetType.GroupAll => Instance.Localizer["all"],
TargetType.GroupBots => Instance.Localizer["bots"],
TargetType.GroupHumans => Instance.Localizer["humans"],
TargetType.GroupAlive => Instance.Localizer["alive"],
TargetType.GroupDead => Instance.Localizer["dead"],
TargetType.GroupNotMe => Instance.Localizer["notme"],
TargetType.PlayerMe => targetresult.Players.First().PlayerName,
TargetType.TeamCt => Instance.Localizer["ct"],
TargetType.TeamT => Instance.Localizer["t"],
TargetType.TeamSpec => Instance.Localizer["spec"],
_ => targetresult.Players.First().PlayerName
};
}
return (targetresult.Players, targetname);
}
}
}

View file

@ -1,14 +1,13 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Utils;
using jRandomSkills.src.player;
using MaxMind.Db;
using Newtonsoft.Json;
using System.Net;
using System.Collections.Concurrent;
using System.Text.RegularExpressions;
using src.player;
namespace jRandomSkills.src.utils
namespace src.utils
{
public static class Localization
{
@ -109,7 +108,7 @@ namespace jRandomSkills.src.utils
var skilLDescription = desc2 == skillName
? player.GetTranslation($"{skill.ToString().ToLower()}_desc")
: (desc2.Contains('%') ? desc2.Replace(value.ToString(), Math.Round(value * 100, 0).ToString()) : desc2);
: desc2.Contains('%') ? desc2.Replace(value.ToString(), Math.Round(value * 100, 0).ToString()) : desc2;
return skilLDescription;
}
@ -124,14 +123,14 @@ namespace jRandomSkills.src.utils
return;
}
List<string> translations = [];
ConcurrentBag<string> translations = [];
for (int i = 0; i < key.Length; i++)
{
object[] currentArgs = (args != null && i < args.Length) ? args[i] : [];
object[] currentArgs = args != null && i < args.Length ? args[i] : [];
string translation = GetTranslation(key[i], langCode, currentArgs);
translations.Add(translation);
}
player.PrintToChat(string.Format(message, translations.ToArray()));
player.PrintToChat(string.Format(message, [.. translations]));
}
}

View file

@ -5,18 +5,14 @@ using CounterStrikeSharp.API.Modules.Entities.Constants;
using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions;
using CounterStrikeSharp.API.Modules.Utils;
using jRandomSkills.src.player;
using jRandomSkills.src.utils;
using System.Runtime.InteropServices;
using WASDMenuAPI.Classes;
using WASDSharedAPI;
using static CounterStrikeSharp.API.Core.Listeners;
using System.Collections.Concurrent;
using System;
using static System.Net.Mime.MediaTypeNames;
using System.Drawing;
using src.player;
namespace jRandomSkills
namespace src.utils
{
public static class SkillUtils
{
@ -150,15 +146,6 @@ namespace jRandomSkills
return designerName;
}
public static void EnableTransmit()
{
if (!Event.isTransmitRegistered)
{
jRandomSkills.Instance?.RegisterListener<CheckTransmit>(Event.CheckTransmit);
Event.isTransmitRegistered = true;
}
}
private static IWasdMenuManager? GetMenuManager()
{
if (jRandomSkills.Instance.MenuManager == null)

View file

@ -1,13 +1,13 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Modules.Utils;
using jRandomSkills.src.player;
using CounterStrikeSharp.API.Modules.Utils;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using src.player;
using System.Collections.Concurrent;
using System.Reflection;
using static jRandomSkills.jRandomSkills;
using static src.jRandomSkills;
namespace jRandomSkills
namespace src.utils
{
public static class SkillsInfo
{
@ -106,11 +106,11 @@ namespace jRandomSkills
return default!;
}
public class SkillsInfoModel : List<DefaultSkillInfo>
public class SkillsInfoModel : ConcurrentBag<DefaultSkillInfo>
{
public SkillsInfoModel()
{
AddRange(
foreach (var skill in
Assembly.GetExecutingAssembly().GetTypes()
.Where(t => typeof(DefaultSkillInfo).IsAssignableFrom(t) && t.Name == "SkillConfig")
.Select(t =>
@ -121,9 +121,9 @@ namespace jRandomSkills
return ctor.Invoke(args) as DefaultSkillInfo;
})
.Where(instance => instance != null)
.Cast<DefaultSkillInfo>()
);
}
.Cast<DefaultSkillInfo>())
Add(skill);
}
}
public class DefaultSkillInfo(Skills skill, bool active = true, string color = "#ffffff", CsTeam onlyTeam = CsTeam.None, bool disableOnFreezeTime = false, bool needsTeammates = false)