要实现这个功能,你可以编写一个Spigot插件,并使用NMS(net.minecraft.server)类来操作玩家的NBT标签。

首先,你需要创建一个监听器类来监听玩家移动事件,并在事件触发时检查玩家是否有isFlyingByStick标签。如果有,就让玩家一直往上移动。

import net.minecraft.server.v1_16_R3.NBTTagCompound;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;

public class FlyingPluginListener implements Listener {

    @EventHandler
    public void onPlayerMove(PlayerMoveEvent event) {
        Player player = event.getPlayer();
        if (hasIsFlyingByStickTag(player)) {
            player.setVelocity(player.getVelocity().setY(1)); // 设置玩家向上移动的速度
        }
    }

    private boolean hasIsFlyingByStickTag(Player player) {
        CraftPlayer craftPlayer = (CraftPlayer) player;
        NBTTagCompound tag = craftPlayer.getHandle().getTag();
        if (tag != null && tag.hasKey("isFlyingByStick")) {
            return tag.getBoolean("isFlyingByStick");
        }
        return false;
    }
}

接下来,你需要在插件的主类中注册监听器。

import org.bukkit.plugin.java.JavaPlugin;

public class FlyingPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new FlyingPluginListener(), this);
    }
}

最后,你需要在插件的plugin.yml文件中指定主类。

name: FlyingPlugin
main: com.example.FlyingPlugin
version: 1.0

这样,当玩家拥有isFlyingByStick标签时,他们将会在移动时一直向上移动。请确保你已经正确地安装了Spigot服务器,并将插件的jar文件放入服务器的插件文件夹中。

Minecraft Spigot插件判断玩家是否有nbt标签isFlyingByStick如果有就让他一直往上移动如果上方的方块不可移动就保持悬空api版本 116

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

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