1- package com .github .elic0de .hungergames .game ;
1+ package com .github .elic0de .battleroyale .game ;
22
33import com .github .elic0de .eliccommon .game .AbstractGame ;
44import com .github .elic0de .eliccommon .game .phase .Phase ;
55import com .github .elic0de .eliccommon .user .OnlineUser ;
66import com .github .elic0de .eliccommon .util .ItemBuilder ;
7- import com .github .elic0de .hungergames .HungerGames ;
8- import com .github .elic0de .hungergames .chest .DeathChest ;
9- import com .github .elic0de .hungergames .dragon .DragonTrait ;
10- import com .github .elic0de .hungergames .game .phase .InGamePhase ;
11- import com .github .elic0de .hungergames .game .phase .WaitingPhase ;
12- import com .github .elic0de .hungergames .modifier .ModifierManager ;
13- import com .github .elic0de .hungergames .user .GameUser ;
14- import com .github .elic0de .hungergames .user .GameUserManager ;
7+ import com .github .elic0de .battleroyale .BattleRoyale ;
8+ import com .github .elic0de .battleroyale .chest .DeathChest ;
9+ import com .github .elic0de .battleroyale .dragon .DragonTrait ;
10+ import com .github .elic0de .battleroyale .event .GamePlayerKillEvent ;
11+ import com .github .elic0de .battleroyale .game .phase .InGamePhase ;
12+ import com .github .elic0de .battleroyale .game .phase .WaitingPhase ;
13+ import com .github .elic0de .battleroyale .modifier .ModifierManager ;
14+ import com .github .elic0de .battleroyale .user .GameUser ;
15+ import com .github .elic0de .battleroyale .user .GameUserManager ;
1516import de .themoep .minedown .MineDown ;
1617import lombok .Getter ;
1718import net .citizensnpcs .api .CitizensAPI ;
3031import java .util .concurrent .atomic .AtomicInteger ;
3132import java .util .stream .Collectors ;
3233
33- public class HungerGame extends AbstractGame {
34+ public class Game extends AbstractGame {
3435
3536 private final Scoreboard scoreboard ;
3637
@@ -58,7 +59,7 @@ public class HungerGame extends AbstractGame {
5859 private GameRecords records ;
5960 private BukkitTask borderTask ;
6061
61- public HungerGame () {
62+ public Game () {
6263 scoreboard = Bukkit .getScoreboardManager ().getMainScoreboard ();
6364 border = new GameBorder (this );
6465 deathChest = new DeathChest ();
@@ -105,28 +106,35 @@ public void teleportStartLocation(Player player) {
105106 player .teleport (start );
106107 }
107108
108- public void startGame (Player player , boolean modifier ) {
109+ public void startGame (Player player , GameType type , boolean modifier ) {
109110 if (getPhase () instanceof WaitingPhase ) {
110111 final WorldBorder border = player .getWorld ().getWorldBorder ();
111112 final Location start = border .getCenter ().clone ().add ((border .getSize () / 2 ) - 2 , 130 , (border .getSize () / 2 ) - 2 );
112- // modifierが有効の場合、ランダムにmodifierを加える
113- // if (modifier) modifierManager.modify();
114113
115- getPlayers (GameUser .class ).forEach (user -> {
116- // プレイヤーが所属しているチームを生存しているチームとして登録
117- // チームに所属していなかったら観戦者とする
118- getUserTeam (user ).ifPresentOrElse (aliveTeams ::add , () -> deadPlayers .add (user .getUsername ()));
119- user .clearEffectAndHeal ();
120-
121- user .getPlayer ().getInventory ().clear ();
122- user .getPlayer ().teleport (start );
123- user .getPlayer ().setGameMode (GameMode .SPECTATOR );
124-
125- // 10秒のクールダウン
126- user .getPlayer ().setCooldown (Material .COMMAND_BLOCK , 10 * 20 );
114+ Bukkit .getScheduler ().runTask (BattleRoyale .getInstance (), () -> {
115+ if (type == GameType .SOLO ) {
116+ createTeams (1 );
117+ randomTeam ();
118+ }
119+ // modifierが有効の場合、ランダムにmodifierを加える
120+ if (modifier ) modifierManager .modify ();
121+
122+ getPlayers (GameUser .class ).forEach (user -> {
123+ // プレイヤーが所属しているチームを生存しているチームとして登録
124+ // チームに所属していなかったら観戦者とする
125+ getUserTeam (user ).ifPresentOrElse (aliveTeams ::add , () -> deadPlayers .add (user .getUsername ()));
126+ user .clearEffectAndHeal ();
127+
128+ user .getPlayer ().getInventory ().clear ();
129+ user .getPlayer ().teleport (start );
130+ user .getPlayer ().setGameMode (GameMode .SPECTATOR );
131+
132+ // 10秒のクールダウン
133+ user .getPlayer ().setCooldown (Material .COMMAND_BLOCK , 10 * 20 );
134+ });
135+ nextPhase ();
136+ spawnEnderDragon (player );
127137 });
128- nextPhase ();
129- spawnEnderDragon (player );
130138 }
131139 }
132140
@@ -142,10 +150,10 @@ public void spawnEnderDragon(Player player) {
142150 final Location start = border .getCenter ().clone ().add (border .getSize () / 2 , 130 , border .getSize () / 2 );
143151 final Location end = border .getCenter ().clone ().subtract (border .getSize () / 2 , -130 , border .getSize () / 2 );
144152
145- borderTask = Bukkit .getScheduler ().runTaskLater (HungerGames .getInstance (), this ::startBorder , (long ) ((start .distance (end ) / 10 ) * 20 ));
153+ borderTask = Bukkit .getScheduler ().runTaskLater (BattleRoyale .getInstance (), this ::startBorder , (long ) ((start .distance (end ) / 10 ) * 20 ));
146154
147155 dragonTrait = new DragonTrait (border );
148- Bukkit .getScheduler ().runTaskTimer (HungerGames .getInstance (), task -> {
156+ Bukkit .getScheduler ().runTaskTimer (BattleRoyale .getInstance (), task -> {
149157 CitizensNPC dragon = new CitizensNPC (UUID .randomUUID (), 1 , "" , EntityControllers .createForType (EntityType .ENDER_DRAGON ), CitizensAPI .getNPCRegistry ());
150158 dragon .spawn (player .getLocation ());
151159 dragon .addTrait (dragonTrait );
@@ -158,7 +166,7 @@ public void spawnEnderDragon(Player player) {
158166 }
159167
160168 public void dismountWithTeam (GameUser user ) {
161- Bukkit .getScheduler ().runTask (HungerGames .getInstance (), () -> getTeamUsers (user ).stream ().filter (user1 -> user1 != user ).forEach (user1 -> user .getPlayer ().addPassenger (user1 .getPlayer ())));
169+ Bukkit .getScheduler ().runTask (BattleRoyale .getInstance (), () -> getTeamUsers (user ).stream ().filter (user1 -> user1 != user ).forEach (user1 -> user .getPlayer ().addPassenger (user1 .getPlayer ())));
162170 }
163171
164172 public void onDeath (GameUser user ) {
@@ -175,7 +183,9 @@ public void onDeath(GameUser user) {
175183 });
176184
177185 if (user .getPlayer ().getKiller () != null ) {
178- records .addKill (GameUserManager .getGameUser (user .getPlayer ().getKiller ()));
186+ final GameUser killer = GameUserManager .getGameUser (user .getPlayer ().getKiller ());
187+ Bukkit .getPluginManager ().callEvent (new GamePlayerKillEvent (killer , user ));
188+ records .addKill (killer );
179189 }
180190
181191 deathChest .generateChest (user );
0 commit comments