Чтобы исправить ошибку CS0246, связанную с тем, что тип или пространство именИсправь код Error while compiling: AutoEmojis.cs(100,72): error CS0246: The type or namespace name `Chat' could not be found. Are you missing `ConVar' using directive?
Chat
не может быть найдено, нужно добавить правильное пространство имен для использования класса Chat. В коде Rust плагина, класс Chat находится в пространстве имен Oxide.Core.Libraries.Covalence
. Для использования класса Chat, необходимо добавить правильное пространство имен в ваш код.Вот обновленный код плагина AutoEmojis с правильным пространством имен для Chat:
C#:
using System.Collections.Generic;
using UnityEngine;
using Oxide.Core.Libraries.Covalence;
namespace Oxide.Plugins
{
[Info("AutoEmojis", "YaMang -w-", "1.0.1")]
[Description("Automatically replaces configurable words with Emojis")]
class AutoEmojis : RustPlugin
{
[PluginReference]
Plugin IQChat;
private class GeneralSettings
{
public bool autoreg { get; set; }
public List<string> customEmoji { get; set; }
public List<string> withoutEmoji { get; set; }
public Dictionary<string, string> itemsEmoji { get; set; }
}
private GeneralSettings _config;
void OnServerInitialized(bool initial)
{
if (IQChat != null)
{
Unsubscribe(nameof(OnPlayerChat));
}
if (_config.generalSettings.autoreg)
{
string[] files = System.IO.Directory.GetFiles(ConVar.Server.GetServerFolder("serveremoji"));
foreach (string filePath in files)
{
string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(filePath);
if (!_config.generalSettings.customEmoji.Contains(fileNameWithoutExtension))
{
if (!_config.generalSettings.withoutEmoji.Contains(fileNameWithoutExtension))
{
_config.generalSettings.customEmoji.Add(fileNameWithoutExtension);
}
}
}
SaveConfig();
}
}
private string HandleMessage(string message)
{
bool find = false;
Dictionary<string, string> containMsg = new Dictionary<string, string>();
foreach (var item in _config.generalSettings.itemsEmoji)
{
if (message.Contains(item.Key) && !message.Contains(":"))
{
if (!containMsg.ContainsKey(item.Key))
containMsg.Add(item.Key, item.Value);
find = true;
}
}
foreach (var item in _config.generalSettings.customEmoji)
{
if (message.Contains(item) && !message.Contains(":"))
{
if (!containMsg.ContainsKey(item))
containMsg.Add(item, item);
find = true;
}
}
foreach (var item in containMsg)
{
message = message.Replace(item.Key, $":{item.Value}:");
}
if (find)
return message;
else
return null;
}
private object OnPlayerChat(IPlayer player, string message)
{
if (IQChat == null)
{
string msg = HandleMessage(message);
bool find = !string.IsNullOrEmpty(msg);
if (find)
{
player.Message(msg);
return false;
}
}
return null;
}
protected override void LoadDefaultConfig() => _config = GetBaseConfig();
private GeneralSettings GetBaseConfig()
{
return new GeneralSettings
{
autoreg = true,
customEmoji = new List<string>(),
withoutEmoji = new List<string>(),
itemsEmoji = new Dictionary<string, string>
{
{ "wood", "wood" }
}
};
}
protected override void SaveConfig() => Config.WriteObject(_config, true);
}
}
Попробуйте использовать этот обновленный код на сервере Rust. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться!