Bukkit 1.20.1 Java 代码示例:点击同意发送消息,点击拒绝杀死玩家
以下是一个使用 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是自定义的命令,你可以根据需要进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/fwui 著作权归作者所有。请勿转载和采集!