Skip to content

Commit

Permalink
Merge remote-tracking branch 'green/dev' into paperMerged2
Browse files Browse the repository at this point in the history
# Conflicts:
#	Minigames/src/main/java/au/com/mineauz/minigames/Events.java
#	Minigames/src/main/java/au/com/mineauz/minigames/MinigameUtils.java
#	Minigames/src/main/java/au/com/mineauz/minigames/commands/JoinCommand.java
#	Minigames/src/main/java/au/com/mineauz/minigames/commands/SpectateCommand.java
#	Minigames/src/main/java/au/com/mineauz/minigames/managers/MinigamePlayerManager.java
#	Minigames/src/main/java/au/com/mineauz/minigames/managers/ResourcePackManager.java
#	Minigames/src/main/java/au/com/mineauz/minigames/objects/MinigamePlayer.java
#	Minigames/src/main/java/au/com/mineauz/minigames/objects/OfflineMinigamePlayer.java
#	Minigames/src/main/java/au/com/mineauz/minigames/signs/BetSign.java
#	Minigames/src/main/java/au/com/mineauz/minigames/signs/JoinSign.java
#	Minigames/src/main/java/au/com/mineauz/minigames/signs/SpectateSign.java
#	Minigames/src/test/java/au/com/mineauz/minigames/MinigamePlayerManagerTest.java
#	Minigames/src/test/java/au/com/mineauz/minigames/MinigamesTest.java
  • Loading branch information
FireInstall committed Oct 11, 2024
2 parents 0042f1b + 0b24cc0 commit f47055c
Show file tree
Hide file tree
Showing 10 changed files with 123 additions and 99 deletions.
16 changes: 9 additions & 7 deletions Minigames/src/main/java/au/com/mineauz/minigames/Events.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@
import java.util.stream.Collectors;

public class Events implements Listener {
private static final Minigames plugin = Minigames.getPlugin();
private final MinigamePlayerManager pdata = plugin.getPlayerManager();
private final MinigameManager mdata = plugin.getMinigameManager();
private static final @NotNull Minigames plugin = Minigames.getPlugin();
private final @NotNull MinigamePlayerManager pdata = plugin.getPlayerManager();
private final @NotNull MinigameManager mdata = plugin.getMinigameManager();

@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerResourcePack(@NotNull PlayerResourcePackStatusEvent event) { //todo 1.20.3 + add ressource pack not set (redo with multible Ressoucepacks in mind.)
Expand Down Expand Up @@ -192,7 +192,9 @@ private void itemPickup(@NotNull EntityPickupItemEvent event) {
}
}

@EventHandler
// the priority was changed to lowest, since having it to normal would mean worldguard
// would be served first unload the player and didn't allow them to teleport to the quit location inside a region. (pdata.quitMinigame)
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerDisconnect(@NotNull PlayerQuitEvent event) {
MinigamePlayer mgPlayer = pdata.getMinigamePlayer(event.getPlayer());
if (mgPlayer.isInMinigame()) {
Expand Down Expand Up @@ -221,21 +223,21 @@ public void onPlayerDisconnect(@NotNull PlayerQuitEvent event) {
}

@EventHandler(priority = EventPriority.HIGHEST)
private void onPlayerConnect(@NotNull PlayerJoinEvent event) {
private void onPlayerConnect(final @NotNull PlayerJoinEvent event) {
pdata.addMinigamePlayer(event.getPlayer());

File pldata = new File(plugin.getDataFolder() + File.separator + "playerdata " + File.separator +
"inventories" + File.separator + event.getPlayer().getUniqueId() + ".yml");
final MinigamePlayer mgPlayer = pdata.getMinigamePlayer(event.getPlayer());
if (pldata.exists()) {
mgPlayer.setOfflineMinigamePlayer(new OfflineMinigamePlayer(event.getPlayer().getUniqueId()));
Location floc = mgPlayer.getOfflineMinigamePlayer().getLoginLocation();
final Location floc = mgPlayer.getOfflineMinigamePlayer().getLoginLocation();
mgPlayer.setRequiredQuit(true);
mgPlayer.setQuitPos(floc);

if (!mgPlayer.getPlayer().isDead() && mgPlayer.isRequiredQuit()) {
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, mgPlayer::restorePlayerData);
mgPlayer.teleport(mgPlayer.getQuitPos());
mgPlayer.teleport(floc);

mgPlayer.setRequiredQuit(false);
mgPlayer.setQuitPos(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull String @NotNull

MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.SUCCESS, MgMiscLangKey.PLAYER_JOIN_JOINING,
Placeholder.component(MinigamePlaceHolderKey.MINIGAME.getKey(), mgm.getDisplayName()));
PLUGIN.getPlayerManager().joinMinigame(PLUGIN.getPlayerManager().getMinigamePlayer(player), mgm, false, 0.0);
PLUGIN.getPlayerManager().joinMinigame(mgm, PLUGIN.getPlayerManager().getMinigamePlayer(player), false, 0.0);
} else {
MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgMiscLangKey.MINIGAME_JOIN_ERROR_ALREADYPLAYING);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public boolean onCommand(@NotNull CommandSender sender,
Minigame mgm = PLUGIN.getMinigameManager().getMinigame(args[0]);
if (mgm != null) {
MinigamePlayer mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(player);
PLUGIN.getPlayerManager().spectateMinigame(mgPlayer, mgm);
PLUGIN.getPlayerManager().spectateMinigame(mgm, mgPlayer);
return true;
} else {
MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgMiscLangKey.MINIGAME_ERROR_NOMINIGAME,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public void needsResourcePack(@NotNull MinigamePlayer mgPlayer) {
applyingPack.add(mgPlayer);
}

public void joinMinigame(@NotNull MinigamePlayer mgPlayer, @NotNull Minigame minigame, boolean isBetting, @NotNull Double betAmount) {
public void joinMinigame(@NotNull Minigame minigame, @NotNull MinigamePlayer mgPlayer, boolean isBetting, double betAmount) {
MinigameType type = minigame.getType();
JoinMinigameEvent event = new JoinMinigameEvent(mgPlayer, minigame);
Bukkit.getServer().getPluginManager().callEvent(event);
Expand All @@ -79,7 +79,7 @@ public void joinMinigame(@NotNull MinigamePlayer mgPlayer, @NotNull Minigame min
}
if (!mgManager.minigameStartStateCheck(minigame, mgPlayer)) return;
//Do betting stuff
if (isBetting && !handleBets(minigame, mgPlayer, betAmount)) {
if (isBetting && !handleMoneyBet(minigame, mgPlayer, betAmount)) {
return;
}
//Try to apply ressource pack
Expand Down Expand Up @@ -178,7 +178,7 @@ public void joinMinigame(@NotNull MinigamePlayer mgPlayer, @NotNull Minigame min
* @param betAmount the amount in economy money. might be 0, if the player was betting an item
* @return true if the player could successfully bet
*/
private boolean handleBets(@NotNull Minigame minigame, @NotNull MinigamePlayer mgPlayer, @NotNull Double betAmount) {
private boolean handleMoneyBet(@NotNull Minigame minigame, @NotNull MinigamePlayer mgPlayer, double betAmount) {
if (minigame.getMpBets() == null && (mgPlayer.getPlayer().getInventory().getItemInMainHand().getType() != Material.AIR || betAmount != 0)) {
minigame.setMpBets(new MultiplayerBets());
}
Expand Down Expand Up @@ -245,7 +245,7 @@ private boolean handleBets(@NotNull Minigame minigame, @NotNull MinigamePlayer m
}
}

public void spectateMinigame(@NotNull MinigamePlayer mgPlayer, @NotNull Minigame minigame) {
public void spectateMinigame(@NotNull Minigame minigame, @NotNull MinigamePlayer mgPlayer) {
SpectateMinigameEvent event = new SpectateMinigameEvent(mgPlayer, minigame);
Bukkit.getServer().getPluginManager().callEvent(event);

Expand Down Expand Up @@ -970,11 +970,6 @@ public void broadcastEndGame(@NotNull List<@NotNull MinigamePlayer> winners, @No
}
}

@Deprecated
public boolean playerInMinigame(@NotNull Player player) {
return minigamePlayers.get(player.getUniqueId()).isInMinigame();
}

@Deprecated
public @NotNull List<@NotNull Player> playersInMinigame() {
List<Player> players = new ArrayList<>();
Expand Down Expand Up @@ -1012,16 +1007,17 @@ public void removeMinigamePlayer(@NotNull Player player) {

public @Nullable MinigamePlayer getMinigamePlayer(@NotNull UUID uuid) {
MinigamePlayer mgPlayer = minigamePlayers.get(uuid);

if (mgPlayer != null) {
return mgPlayer;
}

return getMinigamePlayer(Bukkit.getPlayer(uuid));
}


/**
* @see #getMinigamePlayer(UUID)
* @see #getMinigamePlayer(UUID)
*/
public @Nullable MinigamePlayer getMinigamePlayer(@NotNull String playerName) {
return getMinigamePlayer(plugin.getServer().getPlayer(playerName));
Expand Down Expand Up @@ -1086,19 +1082,13 @@ public void partyMode(@NotNull MinigamePlayer player) {
}
}

public void partyMode(MinigamePlayer player, int amount, long delay) {
if (!onPartyMode()) return;
final int fcount = amount;
final MinigamePlayer fplayer = player;
final long fdelay = delay;
partyMode(fplayer);
public void partyMode(final @NotNull MinigamePlayer player, final int amount, final long delay) {
if (!onPartyMode()) {
return;
}
partyMode(player);
if (amount == 1) return;
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
if (fplayer != null) {
partyMode(fplayer, fcount - 1, fdelay);
}

}, delay);
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> partyMode(player, amount - 1, delay), delay);
}

public @NotNull List<@NotNull String> getDeniedCommands() {
Expand All @@ -1109,11 +1099,11 @@ public void setDeniedCommands(@NotNull List<@NotNull String> deniedCommands) {
this.deniedCommands = deniedCommands;
}

public void addDeniedCommand(String command) {
public void addDeniedCommand(@NotNull String command) {
deniedCommands.add(command);
}

public void removeDeniedCommand(String command) {
public void removeDeniedCommand(@NotNull String command) {
deniedCommands.remove(command);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public ResourcePackManager() {

private boolean loadEmptyPack() {
try {
URL url = new URI("https://github.com/AddstarMC/Minigames/raw/master/Minigames/src/main/resources/resourcepack/emptyResourcePack.zip").toURL();
URL url = new URI("https://github.com/AddstarMC/Minigames/blob/master/Minigames/src/main/resources/resourcepack/emptyResourcePack.zip").toURL();
ResourcePack empty = new ResourcePack(MinigameMessageManager.getMgMessage(MgMiscLangKey.MINIGAME_RESSOURCEPACK_EMPTY_NAME), url);
addResourcePack(empty);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,12 @@
import java.io.File;
import java.util.*;

/**
* wrapper class to keep track of players with additional information.
* A MinigamePlayer does NOT have to be in a Minigame to be valid!
*/
public class MinigamePlayer implements ScriptObject {
private final Player player;
private final @NotNull Player player;
private final @NotNull List<@NotNull String> singlePlayerFlags = new ArrayList<>();
private final @NotNull List<@NotNull String> tempClaimedRewards = new ArrayList<>();
private final @NotNull List<@NotNull ItemStack> tempRewardItems = new ArrayList<>();
Expand All @@ -46,7 +50,7 @@ public class MinigamePlayer implements ScriptObject {
private boolean allowTP;
private boolean allowGMChange;
private boolean canFly;
private Scoreboard lastScoreboard;
private @Nullable Scoreboard lastScoreboard;
private @Nullable Minigame minigame;
private @Nullable PlayerLoadout loadout;
private boolean requiredQuit;
Expand Down Expand Up @@ -74,10 +78,10 @@ public class MinigamePlayer implements ScriptObject {
private @Nullable Location selection2;
private @Nullable DisplayCuboid selectionDisplay;
private OfflineMinigamePlayer offlineMinigamePlayer;
private @NotNull List<String> claimedRewards = new ArrayList<>();
private @NotNull List<@NotNull String> claimedRewards = new ArrayList<>();
private int lateJoinTimer = -1;

public MinigamePlayer(final Player player) {
public MinigamePlayer(final @NotNull Player player) {
this.player = player;
this.spc = new StoredPlayerCheckpoints(this.getUUID().toString());

Expand All @@ -92,7 +96,7 @@ public MinigamePlayer(final Player player) {
return this.startPos;
}

public void setStartPos(final Location startPos) {
public void setStartPos(final @Nullable Location startPos) {
this.startPos = startPos;
}

Expand All @@ -108,12 +112,12 @@ public void setStartPos(final Location startPos) {
* @deprecated use {@link #displayName()} if possible
*/
@Deprecated
public String getDisplayName() {
public @NotNull String getDisplayName() {
return this.getDisplayName(true);
}

@Deprecated
public String getDisplayName(final @NotNull Boolean displayName) {
public @NotNull String getDisplayName(final @NotNull Boolean displayName) {
if (displayName) {
return ChatColor.stripColor(this.player.getDisplayName());
} else {
Expand Down Expand Up @@ -168,10 +172,11 @@ public void restorePlayerData() {
this.player.getInventory().setContents(this.offlineMinigamePlayer.getStoredItems());
this.player.getInventory().setArmorContents(this.offlineMinigamePlayer.getStoredArmour());
this.player.setFoodLevel(this.offlineMinigamePlayer.getFood());
if (this.offlineMinigamePlayer.getHealth() > 20)
if (this.offlineMinigamePlayer.getHealth() > 20) { // todo don't hardcode. use attributes!
this.player.setHealth(20);
else
} else {
this.player.setHealth(this.offlineMinigamePlayer.getHealth());
}
this.player.setSaturation(this.offlineMinigamePlayer.getSaturation());
this.player.setScoreboard(Objects.requireNonNullElseGet(this.lastScoreboard, () -> this.player.getServer().getScoreboardManager().getMainScoreboard()));

Expand Down Expand Up @@ -247,23 +252,37 @@ public void setQuitPos(final @Nullable Location quitPos) {
this.quitPos = quitPos;
}

/**
* will return null, if the player is NOT in a Minigame
*/
public @Nullable PlayerLoadout getLoadout() {
LoadoutModule loadoutModule = LoadoutModule.getMinigameModule(minigame);
if (this.minigame != null) {
LoadoutModule loadoutModule = LoadoutModule.getMinigameModule(minigame);

if (this.loadout != null) {
return this.loadout;
} else if (this.team != null && loadoutModule.hasLoadout(this.team.getColor().toString().toLowerCase())) {
return loadoutModule.getLoadout(this.team.getColor().toString().toLowerCase());
if (this.loadout != null) {
return this.loadout;
} else if (this.team != null && loadoutModule.hasLoadout(this.team.getColor().toString().toLowerCase())) {
return loadoutModule.getLoadout(this.team.getColor().toString().toLowerCase());
}
return loadoutModule.getLoadout("default");
} else {
return null;
}
return loadoutModule.getLoadout("default");
}

public PlayerLoadout getDefaultLoadout() {
LoadoutModule loadoutModule = LoadoutModule.getMinigameModule(minigame);
if (this.team != null && loadoutModule.hasLoadout(this.team.getColor().toString().toLowerCase())) {
return loadoutModule.getLoadout(this.team.getColor().toString().toLowerCase());
/**
* will return null, if the player is NOT in a Minigame
*/
public @Nullable PlayerLoadout getDefaultLoadout() {
if (this.minigame != null) {
LoadoutModule loadoutModule = LoadoutModule.getMinigameModule(minigame);
if (this.team != null && loadoutModule.hasLoadout(this.team.getColor().toString().toLowerCase())) {
return loadoutModule.getLoadout(this.team.getColor().toString().toLowerCase());
}
return loadoutModule.getLoadout("default");
} else {
return null;
}
return loadoutModule.getLoadout("default");
}

public boolean setLoadout(final @Nullable PlayerLoadout loadout) {
Expand Down Expand Up @@ -291,7 +310,7 @@ public boolean addFlag(final @NotNull String flag) {
return false;
}

public boolean hasFlag(final String flagName) {
public boolean hasFlag(final @NotNull String flagName) {
return this.singlePlayerFlags.contains(flagName);
}

Expand All @@ -303,7 +322,7 @@ public void clearFlags() {
return this.checkpoint;
}

public void setCheckpoint(final @NotNull Location checkpoint) {
public void setCheckpoint(final @Nullable Location checkpoint) {
this.checkpoint = checkpoint;
}

Expand Down Expand Up @@ -489,8 +508,9 @@ public void resetAllStats() {
this.setInvincible(false);
this.setCanInteract(true);
this.setLatejoining(false);
if (this.player.getGameMode() != GameMode.CREATIVE)
if (this.player.getGameMode() != GameMode.CREATIVE) {
this.setCanFly(false);
}
this.tempClaimedRewards.clear();
this.tempRewardItems.clear();
this.claimedScoreSigns.clear();
Expand All @@ -512,7 +532,7 @@ public void setLatejoining(final boolean isLatejoining) {
return this.menu;
}

public void setMenu(final Menu menu) {
public void setMenu(final @Nullable Menu menu) {
this.menu = menu;
}

Expand Down Expand Up @@ -655,7 +675,7 @@ public void showSelection(final boolean show) {
}
}

public OfflineMinigamePlayer getOfflineMinigamePlayer() {
public @Nullable OfflineMinigamePlayer getOfflineMinigamePlayer() {
return this.offlineMinigamePlayer;
}

Expand Down Expand Up @@ -738,15 +758,15 @@ public void loadClaimedRewards() {
}
}

public void addTempRewardItem(final ItemStack item) {
public void addTempRewardItem(final @NotNull ItemStack item) {
this.tempRewardItems.add(item);
}

public @NotNull List<@NotNull ItemStack> getTempRewardItems() {
return this.tempRewardItems;
}

public void addRewardItem(final ItemStack item) {
public void addRewardItem(final @NotNull ItemStack item) {
this.rewardItems.add(item);
}

Expand Down Expand Up @@ -812,9 +832,8 @@ public void setLateJoinTimer(final int taskID) {
this.lateJoinTimer = taskID;
}

@Nullable
@Override
public ScriptReference get(final @NotNull String name) {
public @Nullable ScriptReference get(final @NotNull String name) {
return switch (name.toLowerCase()) {
case "name" -> ScriptValue.of(this.player.getName());
case "displayname" -> ScriptValue.of(this.player.getDisplayName());
Expand All @@ -829,14 +848,13 @@ public ScriptReference get(final @NotNull String name) {
};
}

@NotNull
@Override
public Set<String> getKeys() {
public @NotNull Set<String> getKeys() {
return Set.of("name", "displayname", "score", "kills", "deaths", "health", "team", "pos", "minigame");
}

@Override
public String getAsString() {
public @NotNull String getAsString() {
return this.getName();
}
}
Loading

0 comments on commit f47055c

Please sign in to comment.