|
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.eliccommon.util.ItemBuilder; |
5 | 6 | import com.github.elic0de.hungergames.HungerGames; |
6 | 7 | import com.github.elic0de.hungergames.chest.DeathChest; |
7 | 8 | import com.github.elic0de.hungergames.dragon.DragonTrait; |
|
18 | 19 | import org.bukkit.entity.EntityType; |
19 | 20 | import org.bukkit.entity.Player; |
20 | 21 | import org.bukkit.event.player.PlayerTeleportEvent; |
| 22 | +import org.bukkit.inventory.ItemStack; |
21 | 23 | import org.bukkit.scoreboard.Scoreboard; |
22 | 24 | import org.bukkit.scoreboard.Team; |
23 | 25 | import org.jetbrains.annotations.NotNull; |
@@ -174,6 +176,28 @@ public boolean isSpectator(GameUser user) { |
174 | 176 | return deadPlayers.contains(user.getUsername()); |
175 | 177 | } |
176 | 178 |
|
| 179 | + public void rejoin(GameUser user) { |
| 180 | + if (getPhase() instanceof InGamePhase) { |
| 181 | + if (rejoinPlayers.contains(user.getUniqueId())) { |
| 182 | + final Player player = user.getPlayer(); |
| 183 | + final ItemStack chestPlate = player.getInventory().getChestplate(); |
| 184 | + if (chestPlate == null) return; |
| 185 | + if (chestPlate.getType() == Material.ELYTRA) { |
| 186 | + player.getInventory().setChestplate(null); |
| 187 | + player.getInventory().addItem(ItemBuilder.of(Material.BREAD).amount(20).build()); |
| 188 | + player.getPassengers().forEach(player::removePassenger); |
| 189 | + } |
| 190 | + rejoinPlayers.remove(user.getUniqueId()); |
| 191 | + } |
| 192 | + } |
| 193 | + } |
| 194 | + |
| 195 | + public void addRejoinPlayer(GameUser user) { |
| 196 | + // 死んでいる場合は再参加無効に |
| 197 | + if (deadPlayers.contains(user.getUsername())) return; |
| 198 | + rejoinPlayers.add(user.getUniqueId()); |
| 199 | + } |
| 200 | + |
177 | 201 | public boolean checkTeamDead(GameUser user) { |
178 | 202 | if (getUserTeam(user).isPresent()) { |
179 | 203 | final Team team = getUserTeam(user).get(); |
|
0 commit comments