feat(plugin): 添加玩家坐标反馈和边界限制功能
- 新增 GetLocationCommand 类,实现 /getloc 命令显示玩家坐标- 添加 X 和 Z 轴的边界限制,超出范围自动传送到 spawn 点 - 优化 Y 轴虚空限制,调整为 minY 变量 -为玩家提供友好的提示信息
This commit is contained in:
parent
c185d0d9a3
commit
f27b176096
|
|
@ -1,6 +1,8 @@
|
||||||
package com.blockfantasy;
|
package com.blockfantasy;
|
||||||
|
|
||||||
import com.loohp.limbo.Limbo;
|
import com.loohp.limbo.Limbo;
|
||||||
|
import com.loohp.limbo.commands.CommandExecutor;
|
||||||
|
import com.loohp.limbo.commands.CommandSender;
|
||||||
import com.loohp.limbo.events.EventHandler;
|
import com.loohp.limbo.events.EventHandler;
|
||||||
import com.loohp.limbo.events.Listener;
|
import com.loohp.limbo.events.Listener;
|
||||||
import com.loohp.limbo.events.player.PlayerMoveEvent;
|
import com.loohp.limbo.events.player.PlayerMoveEvent;
|
||||||
|
|
@ -11,21 +13,69 @@ import com.loohp.limbo.plugins.LimboPlugin;
|
||||||
public class LimboBackSpawn extends LimboPlugin implements Listener {
|
public class LimboBackSpawn extends LimboPlugin implements Listener {
|
||||||
public static LimboBackSpawn instance;
|
public static LimboBackSpawn instance;
|
||||||
public static Location spawn;
|
public static Location spawn;
|
||||||
|
|
||||||
|
public static int maxX = 100;
|
||||||
|
public static int minY = -10;
|
||||||
|
public static int maxZ = 100;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
instance = this;
|
instance = this;
|
||||||
spawn = instance.getServer().getServerProperties().getWorldSpawn();
|
spawn = instance.getServer().getServerProperties().getWorldSpawn();
|
||||||
Limbo.getInstance().getEventsManager().registerEvents(this,new LimboBackSpawnListener());
|
Limbo.getInstance().getEventsManager().registerEvents(this,new LimboBackSpawnListener());
|
||||||
|
Limbo.getInstance().getPluginManager().registerCommands(this,new GetLocationCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class LimboBackSpawnListener implements Listener {
|
public static class LimboBackSpawnListener implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerMove(PlayerMoveEvent event) {
|
public void onPlayerMove(PlayerMoveEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (event.getPlayer().getLocation().getY() < -10) {
|
double originX = player.getLocation().getX() - spawn.getX();
|
||||||
|
double originZ = player.getLocation().getZ() - spawn.getZ();
|
||||||
|
|
||||||
|
if (originX > maxX || originX < -maxX){
|
||||||
|
player.teleport(spawn);
|
||||||
|
player.sendMessage("§b[BlockFantasy]§c不要乱跑鸥~");
|
||||||
|
}
|
||||||
|
if (originZ > maxZ || originZ < -maxZ){
|
||||||
|
player.teleport(spawn);
|
||||||
|
player.sendMessage("§b[BlockFantasy]§c不要乱跑鸥~");
|
||||||
|
|
||||||
|
}
|
||||||
|
if (player.getLocation().getY() < minY) {
|
||||||
player.teleport(spawn);
|
player.teleport(spawn);
|
||||||
player.sendMessage("§b[BlockFantasy]§c掉虚空了?我给你拽回来~");
|
player.sendMessage("§b[BlockFantasy]§c掉虚空了?我给你拽回来~");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class GetLocationCommand implements CommandExecutor{
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, String[] args) {
|
||||||
|
if (args[0].equalsIgnoreCase("getloc")){
|
||||||
|
if (!(sender instanceof Player player)) {
|
||||||
|
sender.sendMessage("§c只有玩家可以执行此命令");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!player.hasPermission("blockfantasy.getloc")){
|
||||||
|
player.sendMessage("§c您没有权限执行此命令");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
double originX = player.getLocation().getX() - spawn.getX();
|
||||||
|
double originZ = player.getLocation().getZ() - spawn.getZ();
|
||||||
|
|
||||||
|
|
||||||
|
Location location = player.getLocation();
|
||||||
|
player.sendMessage("§b[BlockFantasy]§a您当前的坐标是: " +
|
||||||
|
"X: " + String.format("%.2f", location.getX()) +
|
||||||
|
", Y: " + String.format("%.2f", location.getY()) +
|
||||||
|
", Z: " + String.format("%.2f", location.getZ()) +
|
||||||
|
", originX: " + String.format("%.2f", originX) +
|
||||||
|
", originZ: " + String.format("%.2f", originZ)
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue