用Java写一个 Bukkit120的back功能
以下是一个使用Java编写的Bukkit 1.20版本的back功能的示例代码:
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.HashMap;
import java.util.Map;
public class BackPlugin extends JavaPlugin implements CommandExecutor {
private Map<Player, Location> backLocations;
@Override
public void onEnable() {
// 注册命令和监听器
getCommand("back").setExecutor(this);
backLocations = new HashMap<>();
}
@Override
public void onDisable() {
// 清理资源
backLocations.clear();
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("Only players can use this command.");
return true;
}
Player player = (Player) sender;
if (command.getName().equalsIgnoreCase("back")) {
if (backLocations.containsKey(player)) {
Location backLocation = backLocations.get(player);
player.teleport(backLocation);
backLocations.remove(player);
player.sendMessage("Teleported back.");
} else {
player.sendMessage("No previous location saved.");
}
return true;
}
return false;
}
public void saveBackLocation(Player player) {
backLocations.put(player, player.getLocation());
}
}
要使用这个插件,你需要在Bukkit服务器上编译并加载它。然后,玩家可以使用/back命令来返回到他们上一个位置。你还可以在其他插件或事件处理程序中调用saveBackLocation(Player player)方法来保存玩家的当前位置。
原文地址: https://www.cveoy.top/t/topic/idRA 著作权归作者所有。请勿转载和采集!