Skip to content

Commit a259ae8

Browse files
committed
[update] ボーダーとの距離をアクションバーに表示する
1 parent 9a44ccf commit a259ae8

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/main/java/com/github/elic0de/hungergames/game/GameBorder.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.github.elic0de.hungergames.game;
22

33
import com.github.elic0de.hungergames.HungerGames;
4+
import net.md_5.bungee.api.ChatMessageType;
5+
import net.md_5.bungee.api.chat.TextComponent;
46
import org.bukkit.Bukkit;
57
import org.bukkit.WorldBorder;
8+
import org.bukkit.entity.Player;
69
import org.bukkit.scheduler.BukkitRunnable;
710
import org.bukkit.scheduler.BukkitTask;
811

@@ -45,7 +48,8 @@ public void run() {
4548
return;
4649
}
4750
game.getBossBar().setBossBar("残りのプレイヤー数: &6" + game.getAlivePlayersSize());
48-
game.getBossBar().setProgress((double) Math.max(timeInSeconds - borderTicks.get(), 0)/timeInSeconds);
51+
game.getBossBar().setProgress((double) Math.max(timeInSeconds - borderTicks.get(), 0) / timeInSeconds);
52+
game.getPlayers().forEach(player -> player.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(String.format("ボーダーとの距離: §a%d§rブロック", (int) getDistanceToBorder(player.getPlayer(), border)))));
4953
}
5054
}.runTaskTimer(HungerGames.getInstance(), 0, PERIOD);
5155
}
@@ -60,4 +64,12 @@ public void reset() {
6064
borderTicks.set(0);
6165
game.getBossBar().hide();
6266
}
67+
68+
private double getDistanceToBorder(Player player, WorldBorder border) {
69+
final double borderSize = border.getSize();
70+
return Math.min(
71+
borderSize - Math.abs(player.getLocation().getX() - border.getCenter().getX()),
72+
borderSize - Math.abs(player.getLocation().getZ() - border.getCenter().getZ())
73+
);
74+
}
6375
}

0 commit comments

Comments
 (0)