profile picture

Rust プラグインに権限を設定する

Published on 2024/08/14
Tags game rust mod plugin oxide

概要

Rust プラグインに権限を設定し、権限のあるユーザーのみがプラグインを使用できるようにします。

参考情報

関連情報

権限の設定

Rust プラグインのチャットコマンドを実装する で作成した ActivePlayers.cs ファイルに権限を設定します。

  1. プロパティ Permission で実装する権限を指定します。

            private const string Permission = "activeplayers.allow";
    
  2. Init メソッドで権限を追加します。

            void Init()
            {
                permission.RegisterPermission(Permission, this);
            }
    
  3. チャットコマンドを実行する前に権限があるかチェックします。権限がない場合はチャットにメッセージを表示して権限がないことをユーザーに伝えます。

                if (!permission.UserHasPermission(player.UserIDString, Permission))
                {
                    PrintToChat(player, "You don't have permission to use this command!");
                    return;
                }
    
  4. 全てのソースコードは次の通りです。

    namespace Oxide.Plugins
    {
        [Info("Active Players", "Unknown Author", "0.1.0")]
        [Description("This plugin displays all active usernames in the chat.")]
        class ActivePlayers : RustPlugin
        {
            private const string Permission = "activeplayers.allow";
    
            void Init()
            {
                permission.RegisterPermission(Permission, this);
            }
    
            [ChatCommand("activeplayers")]
            void ActivePlayersCommand(BasePlayer player, string command, string[] args)
            {
                if (!permission.UserHasPermission(player.UserIDString, Permission))
                {
                    PrintToChat(player, "You don't have permission to use this command!");
                    return;
                }
                foreach (BasePlayer activePlayer in BasePlayer.activePlayerList)
                {
                    PrintToChat(player, $"Active Player: {activePlayer.displayName}");
                }
            }
        }
    }
    

権限の動作確認

  1. ActivePlayers.cs ファイルをサーバーの oxide/plugins フォルダにコピーします。

  2. サーバーを起動します。

  3. Rust を起動してサーバーに接続します。

  4. Rust のチャットに /activeplayers を入力すると、権限がないため次のメッセージが表示されます。

    You don't have permission to use this command!
    
  5. サーバー側で次のコマンドを実行し権限を付与します。

    oxide.grant user {USER_ID} activeplayers.allow
    
  6. Rust のチャットに /activeplayers を入力すると、権限があるためアクティブユーザーの名前が表示されます。