你可以使用以下代码来实现你的需求:

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.util.ArrayList;
import java.util.List;

public class GamemodeCommand implements CommandExecutor {

    private List<String> playerList; // 存储玩家名字的列表

    public GamemodeCommand() {
        playerList = new ArrayList<>();
        playerList.add('Player1');
        playerList.add('Player2');
        // 添加更多玩家名字到列表
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase('gamemode')) {
            if (!(sender instanceof Player)) {
                sender.sendMessage('该命令只能由玩家执行!');
                return true;
            }

            Player player = (Player) sender;

            // 检查玩家是否在列表中
            if (!playerList.contains(player.getName())) {
                // 执行请求
                // 这里可以根据需要来执行你的gamemode代码,例如:
                player.setGameMode(GameMode.CREATIVE);
                sender.sendMessage('已切换到创造模式!');
            } else {
                // 驳回请求
                sender.sendMessage('你不能执行该命令!');
            }
        }
        return true;
    }
}

这个代码是一个自定义的命令执行器,用于处理/gamemode命令。在该代码中,你需要将玩家名字添加到playerList列表中。

然后,你可以在插件的主类中注册这个命令执行器:

import org.bukkit.plugin.java.JavaPlugin;

public class YourPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        // 注册gamemode命令
        getCommand('gamemode').setExecutor(new GamemodeCommand());
    }
}

这样,当玩家执行/gamemode命令时,将会根据玩家是否在playerList列表中来决定是否执行请求。如果玩家在列表中,将会驳回请求;否则,将会执行gamemode切换代码。

Minecraft Spigot 插件:限制特定玩家执行游戏模式命令

原文地址: https://www.cveoy.top/t/topic/qqOo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录