Для доработки команды, которая будет выдавать права администратора на сервере Rust через ownerid, добавим проверку на администратора, который использует эту команду, и уточним сообщения об успешной или неудачной выдаче прав. Вот обновленный код плагина:
C#:
using System;
using Oxide.Core;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("GrantAdminByOwnerID", "Your Name", "1.0.0")]
class GrantAdminByOwnerID : RustPlugin
{
private bool IsPlayerAdmin(BasePlayer player)
{
return player.IsAdmin;
}
[ChatCommand("grantadminbyownerid")]
private void cmdGrantAdminByOwnerID(BasePlayer player, string command, string[] args)
{
if (!IsPlayerAdmin(player))
{
SendReply(player, "You need to be an admin to use this command.");
return;
}
if (args.Length != 1)
{
SendReply(player, "Usage: /grantadminbyownerid <ownerID>");
return;
}
string ownerID = args[0];
BasePlayer targetPlayer = BasePlayer.Find(ownerID);
if (targetPlayer != null)
{
targetPlayer.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true);
SendReply(player, $"Admin rights granted to player with ownerID {ownerID}");
}
else
{
SendReply(player, $"Player with ownerID {ownerID} not found.");
}
}
}
}
В этом обновленном коде добавлена функция
IsPlayerAdmin
, которая проверяет, имеет ли игрок, вызывающий команду, административные права. Теперь перед выдачей прав администратора через ownerid происходит проверка на наличие администраторских прав у вызывающего игрока.
Не забудьте обновить и скомпилировать плагин, а затем загрузить его на сервер Rust. После этого вы сможете использовать команду для выдачи прав администратора на основе ownerid.
Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться! Я готов помочь.