Skip to content

Commit c9535e4

Browse files
committed
Added fireworks for the arena winner
1 parent 3be40b4 commit c9535e4

File tree

6 files changed

+37
-0
lines changed

6 files changed

+37
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
- Blind effect can now be given in game 3
1313
- Games are now deactivatable by setting their game time to -1
1414
- Added an option to send the user to the lobby when they join the server.
15+
- Added fireworks for the arena winner.
1516

1617
### Fixed
1718

src/main/java/dev/_2lstudios/jelly/player/PluginPlayer.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package dev._2lstudios.jelly.player;
22

3+
import org.bukkit.Color;
4+
import org.bukkit.FireworkEffect;
35
import org.bukkit.Location;
46
import org.bukkit.Sound;
7+
import org.bukkit.entity.EntityType;
8+
import org.bukkit.entity.Firework;
59
import org.bukkit.entity.Player;
10+
import org.bukkit.inventory.meta.FireworkMeta;
611

712
import dev._2lstudios.jelly.utils.ServerUtils;
813

@@ -31,6 +36,21 @@ public void sendTitle(final String title, final String subtitle, final int durat
3136
this.sendTitle(title, subtitle, 2, duration * 20, 2);
3237
}
3338

39+
public void spawnFirework(final int amount, final int power, final Color color, final boolean flicker) {
40+
final Location loc = this.getBukkitPlayer().getLocation().clone().add(0, 1, 0);
41+
42+
final Firework firework = (Firework) loc.getWorld().spawnEntity(loc, EntityType.FIREWORK);
43+
final FireworkMeta meta = firework.getFireworkMeta();
44+
meta.setPower(power);
45+
meta.addEffect(FireworkEffect.builder().withColor(color).flicker(flicker).withTrail().build());
46+
firework.setFireworkMeta(meta);
47+
48+
for (int i = 1; i < amount; i++) {
49+
final Firework fireworkCopy = (Firework) loc.getWorld().spawnEntity(loc, EntityType.FIREWORK);
50+
fireworkCopy.setFireworkMeta(meta);
51+
}
52+
}
53+
3454
@SuppressWarnings("deprecation")
3555
public void sendTitle(final String title, final String subtitle, final int fadeInTime, final int showTime,
3656
final int fadeOutTime) {

src/main/java/dev/_2lstudios/squidgame/arena/ArenaHandler.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.List;
55

66
import org.bukkit.Bukkit;
7+
import org.bukkit.Color;
78

89
import dev._2lstudios.jelly.config.Configuration;
910
import dev._2lstudios.squidgame.SquidGame;
@@ -108,6 +109,11 @@ else if (arena.getState() == ArenaState.INTERMISSION) {
108109
}
109110

110111
else if (arena.getState() == ArenaState.FINISHING_ARENA) {
112+
final SquidPlayer winner = this.arena.calculateWinner();
113+
if (winner != null && this.mainConfig.getBoolean("game-settings.spawn-fireworks-on-win", true)) {
114+
winner.spawnFirework(1, 1, Color.RED, true);
115+
}
116+
111117
if (arena.getInternalTime() == 0) {
112118
arena.resetArena();
113119
}

src/main/java/dev/_2lstudios/squidgame/arena/games/G7SquidGame.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,9 @@ public void onStart() {
1616
public void onTimeUp() {
1717
this.getArena().killAllPlayers();
1818
}
19+
20+
@Override
21+
public void onStop() {
22+
this.getArena().setPvPAllowed(false);
23+
}
1924
}

src/main/java/dev/_2lstudios/squidgame/listeners/EntityDamageListener.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public void onEntityDamage(final EntityDamageEvent e) {
3636
e.setCancelled(true);
3737
}
3838

39+
if (e.getCause() == DamageCause.ENTITY_EXPLOSION) {
40+
e.setCancelled(true);
41+
}
42+
3943
if (!e.isCancelled() && player.getBukkitPlayer().getHealth() - e.getDamage() <= 0
4044
&& !player.isSpectator()) {
4145
arena.killPlayer(player);

src/main/resources/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ game-settings:
22
allow-victory-before-completing-game: false
33
give-blindness-in-game-3: true
44
send-player-to-lobby-on-join: true
5+
spawn-fireworks-on-win: true
56
min-players: 2
67
max-players: 12
78
starting-time: 30

0 commit comments

Comments
 (0)