以下是一个使用Bukkit API编写的Java代码示例,可以实现当玩家点击"同意"时发送一条消息,点击"拒绝"时杀死玩家:

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.TextComponent;

public class ExamplePlugin extends JavaPlugin implements Listener, CommandExecutor {
    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        getCommand("example").setExecutor(this);
    }

    @Override
    public void onDisable() {
        // 插件禁用时执行的代码
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("example")) {
            if (sender instanceof Player) {
                Player player = (Player) sender;

                // 创建一个包含同意和拒绝的文字组件
                TextComponent message = new TextComponent("点击");
                message.setColor(ChatColor.YELLOW);
                message.setBold(true);

                TextComponent agree = new TextComponent("同意");
                agree.setColor(ChatColor.GREEN);
                agree.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/agree"));

                TextComponent deny = new TextComponent("拒绝");
                deny.setColor(ChatColor.RED);
                deny.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/deny"));

                message.addExtra(agree);
                message.addExtra("或");
                message.addExtra(deny);
                player.spigot().sendMessage(message);
            }
        }
        return true;
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        Player player = event.getPlayer();
        player.sendMessage("欢迎加入服务器,请输入/example来同意或拒绝");
    }

    @EventHandler
    public void onPlayerQuit(PlayerQuitEvent event) {
        Player player = event.getPlayer();
        player.setHealth(0); // 杀死玩家
    }
}

请注意,这段代码使用了Spigot API中的SpigotPlayer#spigot().sendMessage()方法来发送包含点击事件的文字消息。另外,/agree/deny是自定义的命令,你可以根据需要进行修改和扩展。

用Java写一个Bukkit1201 一段文字内 包含 同意 拒绝文字如何让他点击同意字样发送一条消息点击拒绝杀死玩家TextComponent方法

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

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