Java 升级完成后,您如何运行活动?
我正在尝试编写一个插件,在这个插件中,边界跟随一个玩家,每当他们获得提升时,就会加倍。问题是我不知道如何检测某人何时获得晋升并将其保持在同一班级。这是当前的代码 生存类Java 升级完成后,您如何运行活动?,java,minecraft,bukkit,Java,Minecraft,Bukkit,我正在尝试编写一个插件,在这个插件中,边界跟随一个玩家,每当他们获得提升时,就会加倍。问题是我不知道如何检测某人何时获得晋升并将其保持在同一班级。这是当前的代码 生存类 package sc458.survivalborders; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldBorder; import org.bukkit.entity.Player; import org.bukkit.e
package sc458.survivalborders;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.WorldBorder;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerAdvancementDoneEvent;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class survivalBorders extends JavaPlugin {
public void onEnable() {
World world = Bukkit.getWorld("survival");
WorldBorder border = world.getWorldBorder();
double borderSize = border.getSize();
while(true) {
if(PlayerAdvancementDoneEvent) {
border.setSize(borderSize*2);
}
}
}
public void onDisable() {
}
}
MoveEvent.class
package sc458.survivalborders;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.WorldBorder;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class MoveEvent implements Listener {
public void onMove(PlayerMoveEvent e) {
Player p = e.getPlayer();
World world = Bukkit.getWorld("survival");
WorldBorder border = world.getWorldBorder();
int locX = p.getLocation().getBlockX();
int locZ = p.getLocation().getBlockZ();
border.setCenter(locX, locZ);
}
}
尝试使用侦听器调用PlayerMoveEvent,然后您可以在他每次移动时(事件被触发)->再次设置边框。所以基本上当他的坐标改变时,边界会立即跟随你
public class MoveEvent implements Listener {
@EventHandler
public void onMove(PlayerMoveEvent e) {
Player p = e.getPlayer();
WorldBorder border = world.getWorldBorder();
int locX = p.getLocation().getBlockX();
int locZ = p.getLocation().getBlockZ();
border.setCenter(locX, locZ);
}
}