C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using Oxide.Core.Libraries.Covalence;
using System.Collections.Generic;
using System.Linq;
namespace Oxide.Plugins
{
[Info("Chat Impersonator", "LaserHydra", "3.0.0")]
[Description("Allows you to impersonate another player in chat")]
public class ChatImpersonator : CovalencePlugin
{
private const string Permission = "chatimpersonator.use";
protected override void LoadDefaultMessages()
{
lang.RegisterMessages(new Dictionary<string, string>
{
["Syntax"] = "Syntax: /ci <player> <message>",
["Player Not Found"] = "The player could not be found."
}, this);
}
[Command("ci"), Permission(Permission)]
private void Cmd_Impersonate(IPlayer player, string command, string[] args)
{
if (args.Length < 2)
{
SendLocalizedReply(player, "Syntax");
return;
}
var targetPlayer = FindPlayer(args[0]);
if (targetPlayer == null)
{
SendLocalizedReply(player, "Player Not Found");
return;
}
ForcePlayerChat(targetPlayer, string.Join(" ", args.Skip(1).ToArray()));
}
private void ForcePlayerChat(BasePlayer target, string message) =>
target.SendConsoleCommand($"chat.say \"{message}\"");
private void SendLocalizedReply(IPlayer player, string key) =>
player.Reply(lang.GetMessage(key, this, player.Id));
private BasePlayer FindPlayer(string nameOrId) =>
covalence.Players.FindPlayer(nameOrId)?.Object as BasePlayer;
}
}