|
2 | 2 |
|
3 | 3 | import com.github.elic0de.eliccommon.game.AbstractGame; |
4 | 4 | import com.github.elic0de.eliccommon.game.phase.Phase; |
| 5 | +import com.github.elic0de.hungergames.HungerGames; |
5 | 6 | import com.github.elic0de.hungergames.chest.DeathChest; |
6 | 7 | import com.github.elic0de.hungergames.dragon.DragonTrait; |
7 | 8 | import com.github.elic0de.hungergames.game.phase.InGamePhase; |
@@ -40,6 +41,8 @@ public class HungerGame extends AbstractGame { |
40 | 41 | @Getter |
41 | 42 | private final Set<String> deadPlayers = new HashSet<>(); |
42 | 43 |
|
| 44 | + private DragonTrait dragonTrait; |
| 45 | + |
43 | 46 | public HungerGame() { |
44 | 47 | scoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); |
45 | 48 | border = new GameBorder(this); |
@@ -71,14 +74,21 @@ public void spawnEnderDragon(World world) { |
71 | 74 | final WorldBorder border = world.getWorldBorder(); |
72 | 75 | final Location start = border.getCenter().clone().add(border.getSize() / 2, 130, border.getSize() / 2); |
73 | 76 | getPlayers().forEach(onlineUser -> { |
74 | | - onlineUser.getPlayer().setGameMode(GameMode.SPECTATOR); |
75 | 77 | onlineUser.getPlayer().teleport(start); |
| 78 | + onlineUser.getPlayer().setGameMode(GameMode.SPECTATOR); |
76 | 79 | }); |
77 | 80 |
|
| 81 | + dragonTrait = new DragonTrait(border); |
| 82 | + |
78 | 83 | CitizensNPC dragon = new CitizensNPC(UUID.randomUUID(), 1, "", EntityControllers.createForType(EntityType.ENDER_DRAGON), CitizensAPI.getNPCRegistry()); |
79 | 84 | dragon.spawn(start); |
80 | | - dragon.addTrait(new DragonTrait(border)); |
81 | | - getPlayers().forEach(onlineUser -> dragon.getEntity().addPassenger(onlineUser.getPlayer())); |
| 85 | + dragon.addTrait(dragonTrait); |
| 86 | + Bukkit.getScheduler().runTask(HungerGames.getInstance(), () -> { |
| 87 | + getPlayers().forEach(onlineUser -> { |
| 88 | + |
| 89 | + dragon.getEntity().addPassenger(onlineUser.getPlayer()); |
| 90 | + }); |
| 91 | + }); |
82 | 92 | } |
83 | 93 |
|
84 | 94 | public void dismountWithTeam(GameUser user) { |
@@ -118,6 +128,7 @@ public void wonGame() { |
118 | 128 | @Override |
119 | 129 | public void reset() { |
120 | 130 | border.reset(); |
| 131 | + if (dragonTrait != null) dragonTrait.reset(); |
121 | 132 | } |
122 | 133 |
|
123 | 134 | public void sendMessageSpectators(GameUser user, String message) { |
|
0 commit comments