From ebe5bb209dd595d72150b72d050ad295b8d1cfad Mon Sep 17 00:00:00 2001 From: linmeideli <2558527373@qq.com> Date: Sun, 17 May 2026 18:15:10 +0800 Subject: [PATCH] PlayerChannel Plugin --- .../Impostor.Plugins.PlayerChannel.dll | Bin 0 -> 11776 bytes marketplace/plugins.json | 13 ++ .../packages.lock.json | 3 +- src/Impostor.Api/packages.lock.json | 9 +- .../Impostor.Plugins.PlayerChannel.csproj | 10 ++ .../PlayerChannelCommand.cs | 68 +++++++++ .../PlayerChannelConfig.cs | 26 ++++ .../PlayerChannelPlugin.cs | 24 +++ .../PlayerChannelStartup.cs | 24 +++ .../packages.lock.json | 137 ++++++++++++++++++ src/Impostor.Server/packages.lock.json | 6 + src/Impostor.sln | 7 + 12 files changed, 325 insertions(+), 2 deletions(-) create mode 100644 marketplace/Impostor.Plugins.PlayerChannel.dll create mode 100644 src/Impostor.Plugins.PlayerChannel/Impostor.Plugins.PlayerChannel.csproj create mode 100644 src/Impostor.Plugins.PlayerChannel/PlayerChannelCommand.cs create mode 100644 src/Impostor.Plugins.PlayerChannel/PlayerChannelConfig.cs create mode 100644 src/Impostor.Plugins.PlayerChannel/PlayerChannelPlugin.cs create mode 100644 src/Impostor.Plugins.PlayerChannel/PlayerChannelStartup.cs create mode 100644 src/Impostor.Plugins.PlayerChannel/packages.lock.json diff --git a/marketplace/Impostor.Plugins.PlayerChannel.dll b/marketplace/Impostor.Plugins.PlayerChannel.dll new file mode 100644 index 0000000000000000000000000000000000000000..d94b46667811e9076c9e199415c41f0ced684ca3 GIT binary patch literal 11776 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 UbpFikkDGrToc)cDzv>A5AG~j##Q*>R literal 0 HcmV?d00001 diff --git a/marketplace/plugins.json b/marketplace/plugins.json index 178b932..8e04ca7 100644 --- a/marketplace/plugins.json +++ b/marketplace/plugins.json @@ -89,6 +89,19 @@ "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/master/marketplace/Impostor.Plugins.Titles.dll" } ] + }, + { + "id": "cn.hayashiume.playerchannel", + "name": "Player Channel", + "description": "using /s to send an only channel message by friendcode", + "author": "HayashiUme", + "versions": [ + { + "version": "1.0.0", + "impostor_version": "2.0.0", + "download_url": "https://raw.githubusercontent.com/Empostor/Empostor/master/marketplace/Impostor.Plugins.PlayerChannel.dll" + } + ] }, { "id": "cn.hayashiume.qqverify", diff --git a/src/Impostor.Api.Innersloth.Generator/packages.lock.json b/src/Impostor.Api.Innersloth.Generator/packages.lock.json index fb68fad..aedf17e 100644 --- a/src/Impostor.Api.Innersloth.Generator/packages.lock.json +++ b/src/Impostor.Api.Innersloth.Generator/packages.lock.json @@ -150,6 +150,7 @@ "System.Runtime.CompilerServices.Unsafe": "4.5.3" } } - } + }, + ".NETStandard,Version=v2.0/linux-x64": {} } } \ No newline at end of file diff --git a/src/Impostor.Api/packages.lock.json b/src/Impostor.Api/packages.lock.json index 9d991b4..9c8d1b7 100644 --- a/src/Impostor.Api/packages.lock.json +++ b/src/Impostor.Api/packages.lock.json @@ -34,6 +34,12 @@ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, + "Microsoft.NET.ILLink.Tasks": { + "type": "Direct", + "requested": "[8.0.27, )", + "resolved": "8.0.27", + "contentHash": "rQi9TxifHRnXP7lVRZH05DxD2/XGbJp12q0ozcbrlBlBnyyzssFTH/2vLhtKWUp2CT1qVscTrcYTFiwTyKPKRg==" + }, "StyleCop.Analyzers": { "type": "Direct", "requested": "[1.2.0-beta.556, )", @@ -139,6 +145,7 @@ "NextFast.Hazel.Abstractions": { "type": "Project" } - } + }, + "net8.0/linux-x64": {} } } \ No newline at end of file diff --git a/src/Impostor.Plugins.PlayerChannel/Impostor.Plugins.PlayerChannel.csproj b/src/Impostor.Plugins.PlayerChannel/Impostor.Plugins.PlayerChannel.csproj new file mode 100644 index 0000000..a35718e --- /dev/null +++ b/src/Impostor.Plugins.PlayerChannel/Impostor.Plugins.PlayerChannel.csproj @@ -0,0 +1,10 @@ + + + net8.0 + Impostor.Plugins.PlayerChannel + enable + + + + + diff --git a/src/Impostor.Plugins.PlayerChannel/PlayerChannelCommand.cs b/src/Impostor.Plugins.PlayerChannel/PlayerChannelCommand.cs new file mode 100644 index 0000000..8f57b1b --- /dev/null +++ b/src/Impostor.Plugins.PlayerChannel/PlayerChannelCommand.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Impostor.Api.Commands; + +namespace Impostor.Plugins.PlayerChannel; + +public sealed class PlayerChannelCommand : ICommand +{ + private readonly Dictionary _fcToChannel; + + public PlayerChannelCommand(PlayerChannelConfig config) + { + _fcToChannel = new Dictionary(StringComparer.OrdinalIgnoreCase); + foreach (var channel in config.Channels) + { + foreach (var fc in channel.FriendCodes) + { + if (!string.IsNullOrWhiteSpace(fc)) + _fcToChannel[fc] = channel; + } + } + } + + public string Name => "s"; + + public string Description => "Send a message to your player channel."; + + public string Usage => "s "; + + public async ValueTask ExecuteAsync(CommandContext ctx) + { + var text = ctx.RawArgs; + if (string.IsNullOrWhiteSpace(text)) + return false; + + var senderFc = ctx.Sender.Client.FriendCode; + if (string.IsNullOrEmpty(senderFc)) + { + await ctx.PlayerControl.SendChatToPlayerAsync( + "[Refuse Channel] Unnkown Friendcode", ctx.PlayerControl); + return true; + } + + if (!_fcToChannel.TryGetValue(senderFc, out var channel)) + { + await ctx.PlayerControl.SendChatToPlayerAsync( + "[Refuse Channel] No exsit in any Channnel", ctx.PlayerControl); + return true; + } + + var prefixed = $"[{channel.Name}] {text}"; + + foreach (var player in ctx.Game.Players) + { + var fc = player.Client.FriendCode; + if (string.IsNullOrEmpty(fc)) continue; + if (!channel.FriendCodes.Contains(fc)) continue; + + var targetCtrl = player.Character; + if (targetCtrl == null) continue; + + await ctx.PlayerControl.SendChatToPlayerAsync(prefixed, targetCtrl); + } + + return true; + } +} diff --git a/src/Impostor.Plugins.PlayerChannel/PlayerChannelConfig.cs b/src/Impostor.Plugins.PlayerChannel/PlayerChannelConfig.cs new file mode 100644 index 0000000..7169ddd --- /dev/null +++ b/src/Impostor.Plugins.PlayerChannel/PlayerChannelConfig.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.Text.Json.Serialization; + +namespace Impostor.Plugins.PlayerChannel; + +public sealed class PlayerChannelConfig +{ + [JsonPropertyName("channels")] + public List Channels { get; set; } = new() + { + new ChannelEntry + { + Name = "Example Channel", + FriendCodes = new List { "kami#1337", "nofinalsus#8469" }, + }, + }; +} + +public sealed class ChannelEntry +{ + [JsonPropertyName("name")] + public string Name { get; set; } = string.Empty; + + [JsonPropertyName("friendCodes")] + public List FriendCodes { get; set; } = new(); +} diff --git a/src/Impostor.Plugins.PlayerChannel/PlayerChannelPlugin.cs b/src/Impostor.Plugins.PlayerChannel/PlayerChannelPlugin.cs new file mode 100644 index 0000000..1f1a4d7 --- /dev/null +++ b/src/Impostor.Plugins.PlayerChannel/PlayerChannelPlugin.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Impostor.Api.Plugins; +using Microsoft.Extensions.Logging; + +namespace Impostor.Plugins.PlayerChannel; + +[ImpostorPlugin("cn.hayashiume.playerchannel", "Player Channel", "HayashiUme", "1.0.0")] +public sealed class PlayerChannelPlugin : PluginBase +{ + private readonly ILogger _logger; + + public PlayerChannelPlugin(ILogger logger) + { + _logger = logger; + } + + public override ValueTask EnableAsync() + { + _logger.LogInformation("[PlayerChannel] Enabled."); + return default; + } + + public override ValueTask DisableAsync() => default; +} diff --git a/src/Impostor.Plugins.PlayerChannel/PlayerChannelStartup.cs b/src/Impostor.Plugins.PlayerChannel/PlayerChannelStartup.cs new file mode 100644 index 0000000..98b863c --- /dev/null +++ b/src/Impostor.Plugins.PlayerChannel/PlayerChannelStartup.cs @@ -0,0 +1,24 @@ +using Impostor.Api.Commands; +using Impostor.Api.Plugins; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +namespace Impostor.Plugins.PlayerChannel; + +public sealed class PlayerChannelStartup : IPluginStartup +{ + private string _configPath = "[Player Channel]Config.json"; + + public void SetConfigPath(string configPath) => _configPath = configPath; + + public void ConfigureHost(IHostBuilder host) { } + + public void ConfigureServices(IServiceCollection services) + { + var config = PluginConfigLoader.Load(_configPath); + services.AddSingleton(config); + services.AddSingleton(); + services.AddSingleton( + sp => sp.GetRequiredService()); + } +} diff --git a/src/Impostor.Plugins.PlayerChannel/packages.lock.json b/src/Impostor.Plugins.PlayerChannel/packages.lock.json new file mode 100644 index 0000000..8e2baba --- /dev/null +++ b/src/Impostor.Plugins.PlayerChannel/packages.lock.json @@ -0,0 +1,137 @@ +{ + "version": 1, + "dependencies": { + "net8.0": { + "BouncyCastle.Cryptography": { + "type": "Transitive", + "resolved": "2.6.1", + "contentHash": "vZsG2YILhthgRqO+ZVgRff4ZFKKTl0v7kqaVBLCtRvpREhfBP33pcWrdA3PRYgWuFL1RxiUFvjMUHTdBZlJcoA==" + }, + "Microsoft.AspNetCore.Http.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.2.0", + "System.Text.Encodings.Web": "4.5.0" + } + }, + "Microsoft.AspNetCore.Http.Features": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "9.0.6", + "contentHash": "0Zn6nR/6g+90MxskZyOOMPQvnPnrrGu6bytPwkV+azDcTtCSuQ1+GJUrg8Klmnrjk1i6zMpw2lXijl+tw7Q3kA==" + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Hosting.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.ObjectPool": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "X21b8D6z58EG34OMLH955750mFaEaGs5xLGe9Vyi3059Cgb3sk+p2k/JlQXaieEBRrk+SVlFzDei3Q6PdVzJOA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + }, + "Serilog": { + "type": "Transitive", + "resolved": "4.3.1-dev-02373", + "contentHash": "f0HNPaleOox5++8zqxAdi9afnUUkoznLOmd0ur/UnLbzl8bIaPyyBGOpbIJmC1kz2vHfkQ0fXh6KXMdlz7bcLQ==" + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==" + }, + "impostor.api": { + "type": "Project", + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "[2.2.0, )", + "Microsoft.Extensions.Hosting.Abstractions": "[8.0.0, )", + "Microsoft.Extensions.Logging.Abstractions": "[8.0.0, )", + "NextFast.Hazel": "[1.0.2-dev, )", + "NextFast.Hazel.Abstractions": "[1.0.2-dev, )" + } + }, + "NextFast.Hazel": { + "type": "Project", + "dependencies": { + "BouncyCastle.Cryptography": "[2.6.1, )", + "Microsoft.Extensions.DependencyInjection.Abstractions": "[9.0.6, )", + "Microsoft.Extensions.ObjectPool": "[8.0.1, )", + "NextFast.Hazel.Abstractions": "[1.0.2-dev, )", + "Serilog": "[4.3.1-dev-02373, )" + } + }, + "NextFast.Hazel.Abstractions": { + "type": "Project" + } + } + } +} \ No newline at end of file diff --git a/src/Impostor.Server/packages.lock.json b/src/Impostor.Server/packages.lock.json index d4e3919..249a849 100644 --- a/src/Impostor.Server/packages.lock.json +++ b/src/Impostor.Server/packages.lock.json @@ -58,6 +58,12 @@ "resolved": "8.0.1", "contentHash": "X21b8D6z58EG34OMLH955750mFaEaGs5xLGe9Vyi3059Cgb3sk+p2k/JlQXaieEBRrk+SVlFzDei3Q6PdVzJOA==" }, + "Microsoft.NET.ILLink.Tasks": { + "type": "Direct", + "requested": "[8.0.27, )", + "resolved": "8.0.27", + "contentHash": "rQi9TxifHRnXP7lVRZH05DxD2/XGbJp12q0ozcbrlBlBnyyzssFTH/2vLhtKWUp2CT1qVscTrcYTFiwTyKPKRg==" + }, "Serilog.Extensions.Hosting": { "type": "Direct", "requested": "[8.0.0, )", diff --git a/src/Impostor.sln b/src/Impostor.sln index 3212414..63546fa 100644 --- a/src/Impostor.sln +++ b/src/Impostor.sln @@ -28,6 +28,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Impostor.Plugins.Titles", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Impostor.Plugins.QqVerify", "Impostor.Plugins.QqVerify\Impostor.Plugins.QqVerify.csproj", "{B8A5D7C3-1F4E-4A2B-9C6D-8E3F5A7B1D2E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Impostor.Plugins.PlayerChannel", "Impostor.Plugins.PlayerChannel\Impostor.Plugins.PlayerChannel.csproj", "{D4B6C8A2-5F3E-4C1D-9B7A-6E2F8A4C1D3F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -78,6 +80,10 @@ Global {B8A5D7C3-1F4E-4A2B-9C6D-8E3F5A7B1D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU {B8A5D7C3-1F4E-4A2B-9C6D-8E3F5A7B1D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {B8A5D7C3-1F4E-4A2B-9C6D-8E3F5A7B1D2E}.Release|Any CPU.Build.0 = Release|Any CPU + {D4B6C8A2-5F3E-4C1D-9B7A-6E2F8A4C1D3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4B6C8A2-5F3E-4C1D-9B7A-6E2F8A4C1D3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4B6C8A2-5F3E-4C1D-9B7A-6E2F8A4C1D3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4B6C8A2-5F3E-4C1D-9B7A-6E2F8A4C1D3F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -91,6 +97,7 @@ Global {70CD7AC9-1DE3-CD23-602A-EFD504B91450} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} {3038597E-E1A1-2958-1CF7-C4203A85F424} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} {B8A5D7C3-1F4E-4A2B-9C6D-8E3F5A7B1D2E} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} + {D4B6C8A2-5F3E-4C1D-9B7A-6E2F8A4C1D3F} = {E0009DCB-32A6-45C4-A06C-7F62D4091A29} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DAF5625C-7E46-4DCC-AF2C-11D20D965454}