Skip to content

Commit 69960be

Browse files
authored
Merge pull request #660 from ArikSquad/fix/remove-vibecode-slop
bedwars: de-sloppify the usage of teams
2 parents c01a98a + 541dbd9 commit 69960be

23 files changed

Lines changed: 143 additions & 194 deletions

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/TypeBedWarsGameLoader.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,6 @@ public static Game getGameById(@NotNull String gameId) {
113113
.orElse(null);
114114
}
115115

116-
public static Game getPlayerGame(@NotNull Player player) {
117-
String gameId = player.getTag(Tag.String("gameId"));
118-
if (gameId == null) return null;
119-
return getGameById(gameId);
120-
}
121-
122116
@SneakyThrows
123117
public static Game createGame(BedWarsMapsConfig.MapEntry entry) {
124118
if (games.size() >= MAX_GAMES) {
@@ -145,7 +139,8 @@ private static Component header() {
145139

146140
private static Component footer(HypixelPlayer player) {
147141
Component start = Component.empty();
148-
if (TypeBedWarsGameLoader.getPlayerGame(player) != null) {
142+
BedWarsPlayer bwPlayer = (BedWarsPlayer) player;
143+
if (bwPlayer.getGame() != null) {
149144
start = start.append(MiniMessage.miniMessage().deserialize("<aqua>Kills: <yellow>0 <aqua>Final Kills: <yellow>0 <aqua>Beds Broken: <yellow>0")).appendNewline();
150145
}
151146
return start

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/commands/ForceStartCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void registerUsage(MinestomCommand command) {
2020
command.addSyntax((sender, context) -> {
2121
if (!permissionCheck(sender)) return;
2222
BedWarsPlayer player = (BedWarsPlayer) sender;
23-
Game game = TypeBedWarsGameLoader.getPlayerGame(player);
23+
Game game = player.getGame();
2424
if (game == null) {
2525
player.sendMessage("§cYou are not in a game.");
2626
return;

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/commands/ShoutCommand.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ public void registerUsage(MinestomCommand command) {
2626
if (!permissionCheck(sender)) return;
2727

2828
BedWarsPlayer player = (BedWarsPlayer) sender;
29-
Game game = TypeBedWarsGameLoader.getPlayerGame(player);
30-
29+
Game game = player.getGame();
3130
if (game == null) {
3231
player.sendMessage("§cYou are not in a game.");
3332
return;

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/events/ActionGameBreak.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,14 @@ public void run(PlayerBlockBreakEvent event) {
3030
BedWarsPlayer player = (BedWarsPlayer) event.getPlayer();
3131
Block blockBeingBroken = event.getBlock();
3232

33-
if (!player.hasTag(Tag.String("gameId"))) {
34-
event.setCancelled(true);
35-
return;
36-
}
37-
String gameId = player.getTag(Tag.String("gameId"));
38-
Game game = TypeBedWarsGameLoader.getGameById(gameId);
33+
Game game = player.getGame();
3934
if (game == null || game.getGameStatus() != GameStatus.IN_PROGRESS) {
4035
event.setCancelled(true);
4136
return;
4237
}
4338

4439
boolean isTeamBedPart = false;
45-
String playerTeamName = player.getTag(Tag.String("team"));
40+
TeamKey playerTeamKey = player.getTeamKey();
4641
Point brokenBlockPosition = event.getBlockPosition();
4742

4843
// Check if it's a part of any team's bed first
@@ -57,7 +52,7 @@ public void run(PlayerBlockBreakEvent event) {
5752

5853
if (brokenBlockPosition.sameBlock(feetPoint) || brokenBlockPosition.sameBlock(headPoint)) {
5954
// This is team X's bed
60-
if (teamKey.getName().equalsIgnoreCase(playerTeamName)) {
55+
if (teamKey.equals(playerTeamKey)) {
6156
player.getAchievementHandler().completeAchievement("bedwars.you_cant_do_that");
6257
player.sendMessage("§cYou cannot break your own team's bed!");
6358
event.setCancelled(true);
Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package net.swofty.type.bedwarsgame.events;
22

3-
import net.minestom.server.tag.Tag;
3+
import net.swofty.commons.bedwars.map.BedWarsMapsConfig;
44
import net.swofty.pvp.events.FinalDamageEvent;
5-
import net.swofty.type.bedwarsgame.TypeBedWarsGameLoader;
65
import net.swofty.type.bedwarsgame.death.BedWarsCombatTracker;
76
import net.swofty.type.bedwarsgame.game.Game;
87
import net.swofty.type.bedwarsgame.game.GameStatus;
@@ -19,13 +18,7 @@ public void run(FinalDamageEvent event) {
1918
return;
2019
}
2120

22-
if (!victim.hasTag(Tag.String("gameId"))) {
23-
return;
24-
}
25-
26-
String gameId = victim.getTag(Tag.String("gameId"));
27-
Game game = TypeBedWarsGameLoader.getGameById(gameId);
28-
21+
Game game = victim.getGame();
2922
if (game == null || game.getGameStatus() != GameStatus.IN_PROGRESS) {
3023
return;
3124
}
@@ -37,10 +30,13 @@ public void run(FinalDamageEvent event) {
3730
}
3831
}
3932

40-
private boolean isSameTeam(BedWarsPlayer player1, BedWarsPlayer player2) {
41-
String team1 = player1.getTag(Tag.String("team"));
42-
String team2 = player2.getTag(Tag.String("team"));
43-
return team1 != null && team1.equals(team2);
33+
private boolean isSameTeam(BedWarsPlayer first, BedWarsPlayer second) {
34+
BedWarsMapsConfig.TeamKey team1 = first.getTeamKey();
35+
BedWarsMapsConfig.TeamKey team2 = second.getTeamKey();
36+
if (team1 == null || team2 == null) {
37+
return false;
38+
}
39+
return team1.equals(team2);
4440
}
4541
}
4642

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/events/ActionGameCustomItems.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
import net.minestom.server.instance.Instance;
1515
import net.minestom.server.instance.block.Block;
1616
import net.minestom.server.tag.Tag;
17+
import net.swofty.commons.bedwars.map.BedWarsMapsConfig;
1718
import net.swofty.pvp.projectile.entities.FireballProjectile;
1819
import net.swofty.type.bedwarsgame.TypeBedWarsGameLoader;
1920
import net.swofty.type.bedwarsgame.game.Game;
2021
import net.swofty.type.bedwarsgame.game.GameStatus;
22+
import net.swofty.type.bedwarsgame.user.BedWarsPlayer;
2123
import net.swofty.type.generic.event.EventNodes;
2224
import net.swofty.type.generic.event.HypixelEvent;
2325
import net.swofty.type.generic.event.HypixelEventClass;
@@ -33,14 +35,13 @@ private static void handleFireballExplosion(FireballProjectile fireball) {
3335
return;
3436
}
3537

36-
final Player shooter = (Player) fireball.getShooter();
38+
final BedWarsPlayer shooter = (BedWarsPlayer) fireball.getShooter();
3739
if (shooter == null) {
3840
fireball.remove();
3941
return;
4042
}
4143

42-
String gameId = shooter.getTag(Tag.String("gameId"));
43-
Game game = TypeBedWarsGameLoader.getGameById(gameId);
44+
Game game = shooter.getGame();
4445
if (game == null || game.getGameStatus() != GameStatus.IN_PROGRESS) {
4546
fireball.remove();
4647
return;
@@ -84,11 +85,11 @@ public void run(ProjectileCollideWithEntityEvent event) {
8485
return; // Don't explode on self
8586
}
8687

87-
if (target instanceof Player targetPlayer) {
88-
final Player shooter = (Player) fireball.getShooter();
88+
if (target instanceof BedWarsPlayer targetPlayer) {
89+
final BedWarsPlayer shooter = (BedWarsPlayer) fireball.getShooter();
8990
if (shooter != null) {
90-
String shooterTeam = shooter.getTag(Tag.String("team"));
91-
String targetTeam = targetPlayer.getTag(Tag.String("team"));
91+
BedWarsMapsConfig.TeamKey shooterTeam = shooter.getTeamKey();
92+
BedWarsMapsConfig.TeamKey targetTeam = targetPlayer.getTeamKey();
9293
if (shooterTeam != null && shooterTeam.equals(targetTeam)) {
9394
return;
9495
}

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/events/ActionGameDeath.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,7 @@ public class ActionGameDeath implements HypixelEventClass {
4545
public void run(PlayerDeathEvent event) {
4646
BedWarsPlayer player = (BedWarsPlayer) event.getPlayer();
4747

48-
if (!player.hasTag(Tag.String("gameId"))) {
49-
return;
50-
}
51-
String gameId = player.getTag(Tag.String("gameId"));
52-
Game game = TypeBedWarsGameLoader.getGameById(gameId);
53-
48+
Game game = player.getGame();
5449
if (game == null || game.getGameStatus() != GameStatus.IN_PROGRESS) {
5550
return;
5651
}

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/events/ActionGameMove.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,11 @@ public class ActionGameMove implements HypixelEventClass {
2727
public void run(PlayerMoveEvent event) {
2828
BedWarsPlayer player = (BedWarsPlayer) event.getPlayer();
2929

30-
if (!player.isOnline() || !player.hasTag(Tag.String("gameId"))) {
30+
if (!player.isOnline()) {
3131
return;
3232
}
3333

34-
String gameId = player.getTag(Tag.String("gameId"));
35-
Game game = TypeBedWarsGameLoader.getGameById(gameId);
36-
34+
Game game = player.getGame();
3735
if (game == null || game.getGameStatus() != GameStatus.IN_PROGRESS) {
3836
return;
3937
}
@@ -48,8 +46,8 @@ public void run(PlayerMoveEvent event) {
4846
return;
4947
}
5048

51-
String playerTeamName = player.getTag(Tag.String("team"));
52-
if (playerTeamName == null) {
49+
TeamKey playerTeamKey = player.getTeamKey();
50+
if (playerTeamKey == null) {
5351
return;
5452
}
5553

@@ -61,7 +59,7 @@ public void run(PlayerMoveEvent event) {
6159
MapTeam team = entry.getValue();
6260

6361
// Don't trigger own team's traps
64-
if (teamKey.getName().equals(playerTeamName)) {
62+
if (teamKey.equals(playerTeamKey)) {
6563
continue;
6664
}
6765

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/events/ActionGamePlace.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@
1919
import net.swofty.type.generic.event.HypixelEvent;
2020
import net.swofty.type.generic.event.HypixelEventClass;
2121
import net.swofty.type.generic.utility.MathUtility;
22+
import org.tinylog.Logger;
2223

2324
public class ActionGamePlace implements HypixelEventClass {
2425

2526
@HypixelEvent(node = EventNodes.PLAYER, requireDataLoaded = false)
2627
public void run(PlayerBlockPlaceEvent event) {
2728
BedWarsPlayer player = (BedWarsPlayer) event.getPlayer();
28-
if (!player.hasTag(Tag.String("gameId"))) {
29+
Game game = player.getGame();
30+
if (game == null) {
31+
Logger.info("Player {} tried to place a block but is not in a game!", player.getUsername());
2932
event.setCancelled(true); // Prevent placing if not in a game
3033
return;
3134
}
@@ -36,10 +39,7 @@ public void run(PlayerBlockPlaceEvent event) {
3639
return;
3740
}
3841

39-
String gameId = player.getTag(Tag.String("gameId"));
40-
Game game = TypeBedWarsGameLoader.getGameById(gameId);
41-
42-
if (game == null || game.getGameStatus() != GameStatus.IN_PROGRESS) {
42+
if (game.getGameStatus() != GameStatus.IN_PROGRESS) {
4343
event.setCancelled(true);
4444
return;
4545
}

0 commit comments

Comments
 (0)