用Java写一个Bukkit 1201 适配BungeeCord与Spigot联动的 玩家在A服务器可以tpa到B服务器好友身边
以下是一个使用Java编写的Bukkit插件,适配BungeeCord与Spigot联动,允许玩家在A服务器上通过tpa命令传送到B服务器好友身边。
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.messaging.PluginMessageListener;
public class MyPlugin extends JavaPlugin implements PluginMessageListener {
@Override
public void onEnable() {
Bukkit.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this);
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
}
@Override
public void onDisable() {
Bukkit.getServer().getMessenger().unregisterIncomingPluginChannel(this);
Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(this);
}
@Override
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
// 不需要处理接收的消息
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("tpa")) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "该命令只能由玩家执行!");
return true;
}
Player player = (Player) sender;
if (args.length != 1) {
player.sendMessage(ChatColor.RED + "正确用法:/tpa <玩家名>");
return true;
}
String targetPlayerName = args[0];
Player targetPlayer = Bukkit.getPlayer(targetPlayerName);
if (targetPlayer == null) {
player.sendMessage(ChatColor.RED + "无法找到玩家 " + targetPlayerName);
return true;
}
sendBungeeCordMessage(player, targetPlayer);
player.sendMessage(ChatColor.GREEN + "已发送传送请求给 " + targetPlayer.getName());
return true;
}
return false;
}
private void sendBungeeCordMessage(Player player, Player targetPlayer) {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("ConnectOther");
out.writeUTF(player.getName());
out.writeUTF(targetPlayer.getServer().getInfo().getName());
player.sendPluginMessage(this, "BungeeCord", out.toByteArray());
}
}
请注意,这只是一个基本的插件框架,你可能需要根据你的具体需求进行修改和完善。此外,你还需要在插件的plugin.yml文件中添加以下内容,以确保你的插件能够正常工作:
name: MyPlugin
version: 1.0
main: com.example.MyPlugin
author: YourName
description: A plugin for Bukkit 1.20.1 that allows players to teleport to their friends on other servers using BungeeCord and Spigot.
api-version: 1.20.1-R0.1-SNAPSHOT
请将com.example.MyPlugin替换为你的插件类的完整路径
原文地址: https://www.cveoy.top/t/topic/ipFb 著作权归作者所有。请勿转载和采集!