Максимальная производительность для ваших игровых серверов!
Заказать сейчасusing Oxide.Core;
using Oxide.Core.Plugins;
using Rust;
namespace YourPluginNamespace
{
[Info("YourPluginName", "YourName", "1.0.0")]
class YourPluginName : RustPlugin
{
void Loaded()
{
permission.RegisterPermission("yourpluginname.blockchat", this);
}
void Unload()
{
permission.UnregisterPermission("yourpluginname.blockchat");
}
[ChatCommand("blockchat")]
void BlockChatCommand(BasePlayer player, string command, string[] args)
{
if (!permission.UserHasPermission(player.UserIDString, "yourpluginname.blockchat"))
{
SendReply(player, "You don't have permission to use this command!");
return;
}
if (args.Length == 0)
{
SendReply(player, "Usage: /blockchat <on|off>");
return;
}
if (args[0].ToLower() == "on")
{
Subscribe(nameof(OnPlayerChat));
SendReply(player, "Chat blocking enabled.");
}
else if (args[0].ToLower() == "off")
{
Unsubscribe(nameof(OnPlayerChat));
SendReply(player, "Chat blocking disabled.");
}
else
{
SendReply(player, "Usage: /blockchat <on|off>");
}
}
void OnPlayerChat(BasePlayer player, string message, Chat.ChatChannel channel)
{
if (permission.UserHasPermission(player.UserIDString, "yourpluginname.blockchat"))
{
Puts($"Blocked chat message from {player.displayName}: {message}");
player.ChatMessage("Your chat message was blocked.");
// Performing additional actions with the blocked message
// ...
// To allow the message to be sent, remove the following line
return;
}
}
}
}
отменить отправку сообщений которые отправил скрипт, методом ChatMessageДа, в игре Rust есть возможность отлавливать и изменять сообщения, отправляемые игроками, с помощью хуков. Вот пример кода, который позволит вам отловить сообщение, отправленное игроком, и отменить его отправку:
C#:using Oxide.Core; using Oxide.Core.Plugins; using Rust; namespace YourPluginNamespace { [Info("YourPluginName", "YourName", "1.0.0")] class YourPluginName : RustPlugin { void Loaded() { permission.RegisterPermission("yourpluginname.blockchat", this); } void Unload() { permission.UnregisterPermission("yourpluginname.blockchat"); } [ChatCommand("blockchat")] void BlockChatCommand(BasePlayer player, string command, string[] args) { if (!permission.UserHasPermission(player.UserIDString, "yourpluginname.blockchat")) { SendReply(player, "You don't have permission to use this command!"); return; } if (args.Length == 0) { SendReply(player, "Usage: /blockchat <on|off>"); return; } if (args[0].ToLower() == "on") { Subscribe(nameof(OnPlayerChat)); SendReply(player, "Chat blocking enabled."); } else if (args[0].ToLower() == "off") { Unsubscribe(nameof(OnPlayerChat)); SendReply(player, "Chat blocking disabled."); } else { SendReply(player, "Usage: /blockchat <on|off>"); } } void OnPlayerChat(BasePlayer player, string message, Chat.ChatChannel channel) { if (permission.UserHasPermission(player.UserIDString, "yourpluginname.blockchat")) { Puts($"Blocked chat message from {player.displayName}: {message}"); player.ChatMessage("Your chat message was blocked."); // Performing additional actions with the blocked message // ... // To allow the message to be sent, remove the following line return; } } } }
В этом примере реализована команда "/blockchat", которая позволяет игроку включать и выключать блокировку чата. Если блокировка включена, все сообщения, отправленные игроком, будут отменены. Вы можете изменить или расширить этот пример под свои нужды.
Обратите внимание, что для работы этого кода вам понадобится установить и настроить плагин Oxide для вашего сервера Rust.
В игре Rust нельзя отменить отправку сообщений, которые отправляются скриптами с помощью метода ChatMessage. Когда сообщение отправляется с помощью этого метода, оно уже прошло проверку на сервере и готово к отправке всем игрокам, которые находятся в нужном диапазоне.отменить отправку сообщений которые отправил скрипт, методом ChatMessage