diff --git a/Minigames/pom.xml b/Minigames/pom.xml index 72f67f607..566c73473 100644 --- a/Minigames/pom.xml +++ b/Minigames/pom.xml @@ -5,7 +5,7 @@ au.com.mineauz MinigamesProject - 1.20-SNAPSHOT + 1.21-SNAPSHOT ../pom.xml Minigames @@ -76,7 +76,7 @@ com.github.seeseemelk MockBukkit-v1.20 - 3.87.0 + 3.93.2 test @@ -88,7 +88,7 @@ com.mysql mysql-connector-j - 8.4.0 + 9.0.0 test @@ -100,7 +100,7 @@ me.clip placeholderapi - 2.11.5 + 2.11.6 provided @@ -117,13 +117,13 @@ org.apache.commons commons-lang3 - 3.14.0 + 3.15.0 compile org.apache.commons commons-text - 1.11.0 + 1.12.0 @@ -135,7 +135,7 @@ com.sk89q.worldedit worldedit-bukkit - 7.3.0-SNAPSHOT + 7.3.4-SNAPSHOT provided @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.6.0 @@ -222,7 +222,7 @@ org.apache.maven.plugins maven-source-plugin - 3.3.0 + 3.3.1 attach-sources @@ -236,7 +236,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.3.1 true 1 @@ -246,19 +246,19 @@ org.apache.maven.plugins maven-dependency-plugin - 3.6.1 + 3.7.1 org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.17.1 org.apache.maven.plugins maven-compiler-plugin - 17 - 17 + 21 + 21 @@ -314,21 +314,20 @@ ${codacy.api.token} 9a3fb2fe5b374cb5ad11e69df7db98fb - ${project.build.directory}/site/jacoco/jacoco.xml - + ${project.build.directory}/site/jacoco/jacoco.xml ${travis.commit} https://api.codacy.com false diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/Events.java b/Minigames/src/main/java/au/com/mineauz/minigames/Events.java index 6049e2e4f..f822bcd54 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/Events.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/Events.java @@ -54,6 +54,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import org.bukkit.potion.PotionType; import org.jetbrains.annotations.NotNull; import java.io.File; @@ -666,7 +667,7 @@ private void clickMenu(@NotNull InventoryClickEvent event) { switch (event.getAction()) { case NOTHING, DROP_ALL_CURSOR, DROP_ONE_CURSOR, CLONE_STACK, UNKNOWN -> { } // nothing - case PICKUP_ALL, PICKUP_SOME, PICKUP_HALF, PICKUP_ONE, DROP_ALL_SLOT, DROP_ONE_SLOT, HOTBAR_MOVE_AND_READD, // may take + case PICKUP_ALL, PICKUP_SOME, PICKUP_HALF, PICKUP_ONE, DROP_ALL_SLOT, DROP_ONE_SLOT, // may take PLACE_ALL, PLACE_SOME, PLACE_ONE, /*may place*/ SWAP_WITH_CURSOR, HOTBAR_SWAP /*may give and take*/ -> { if (event.getClickedInventory() == topInv) { @@ -780,7 +781,7 @@ private void breakScoreboard(@NotNull BlockBreakEvent event) { Block block = event.getBlock(); if (Tag.WALL_SIGNS.isTagged(block.getType())) { if (block.hasMetadata("MGScoreboardSign")) { - Minigame minigame = (Minigame) block.getMetadata("Minigame").get(0).value(); + Minigame minigame = (Minigame) block.getMetadata("Minigame").getFirst().value(); minigame.getScoreboardData().removeDisplay(block); } } @@ -799,7 +800,7 @@ private void potionAffectsPlayer(@NotNull PotionSplashEvent event) { .filter(p -> pdata.getMinigamePlayer(p).getMinigame() == mgPlayer.getMinigame()) .toList(); if (list.isEmpty()) return; - List effects = event.getPotion().getEffects().stream().map(PotionEffect::getType).toList(); + Collection effects = event.getPotion().getEffects(); list.stream().filter(Predicate.not(p -> isEffectApplicable(effects, mgPlayer, pdata.getMinigamePlayer(p)))).forEach(p -> event.setIntensity(p, 0.0)); } } @@ -818,22 +819,26 @@ private void effectAreaAffectsPlayer(@NotNull AreaEffectCloudApplyEvent event) { .map(p -> (Player) p) .toList(); if (list.isEmpty()) return; - List effects = List.of(event.getEntity().getBasePotionData().getType().getEffectType()); - event.getAffectedEntities().removeAll(list.stream().filter(Predicate.not(p -> isEffectApplicable(effects, mgPlayer, pdata.getMinigamePlayer(p)))).toList()); + PotionType basePotionType = event.getEntity().getBasePotionType(); + if (basePotionType != null) { + @NotNull List effects = basePotionType.getPotionEffects(); + event.getAffectedEntities().removeAll(list.stream().filter(Predicate.not(p -> + isEffectApplicable(effects, mgPlayer, pdata.getMinigamePlayer(p)))).toList()); + } } - private boolean isEffectApplicable(@NotNull Collection<@NotNull PotionEffectType> effectTypes, + private boolean isEffectApplicable(@NotNull Collection<@NotNull PotionEffect> effectTypes, @NotNull MinigamePlayer mgPlayerEffecting, @NotNull MinigamePlayer mgPlayerReceiving) { if (mgPlayerEffecting.getMinigame().isTeamGame()) { if (mgPlayerEffecting.getTeam() == mgPlayerReceiving.getTeam()) { - return effectTypes.stream().noneMatch(s -> s.getEffectCategory() == PotionEffectType.Category.HARMFUL); + return effectTypes.stream().noneMatch(s -> s.getType().getEffectCategory() == PotionEffectType.Category.HARMFUL); } else { - return effectTypes.stream().anyMatch(s -> s.getEffectCategory() == PotionEffectType.Category.BENEFICIAL); + return effectTypes.stream().anyMatch(s -> s.getType().getEffectCategory() == PotionEffectType.Category.BENEFICIAL); } } else if (mgPlayerEffecting == mgPlayerReceiving) { - return effectTypes.stream().noneMatch(s -> s.getEffectCategory() == PotionEffectType.Category.HARMFUL); + return effectTypes.stream().noneMatch(s -> s.getType().getEffectCategory() == PotionEffectType.Category.HARMFUL); } else { - return effectTypes.stream().noneMatch(s -> s.getEffectCategory() == PotionEffectType.Category.BENEFICIAL); + return effectTypes.stream().noneMatch(s -> s.getType().getEffectCategory() == PotionEffectType.Category.BENEFICIAL); } } } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/Minigames.java b/Minigames/src/main/java/au/com/mineauz/minigames/Minigames.java index 921b4613b..f0ab99a3f 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/Minigames.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/Minigames.java @@ -32,6 +32,8 @@ import org.bstats.charts.MultiLineChart; import org.bstats.charts.SimpleBarChart; import org.bukkit.Bukkit; +import org.bukkit.NamespacedKey; +import org.bukkit.Registry; import org.bukkit.command.PluginCommand; import org.bukkit.configuration.Configuration; import org.bukkit.configuration.ConfigurationSection; @@ -150,8 +152,14 @@ public void onDisable() { } if (!loadout.getAllPotionEffects().isEmpty()) { for (final PotionEffect eff : loadout.getAllPotionEffects()) { - globalConfig.set(loadout.getName() + globalPathSeparator + "potions" + globalPathSeparator + eff.getType().getName() + globalPathSeparator + "amp", eff.getAmplifier()); - globalConfig.set(loadout.getName() + globalPathSeparator + "potions" + globalPathSeparator + eff.getType().getName() + globalPathSeparator + "dur", eff.getDuration()); + globalConfig.set(loadout.getName() + + globalPathSeparator + "potions" + + globalPathSeparator + eff.getType().getKey().getKey() + + globalPathSeparator + "amp", eff.getAmplifier()); + globalConfig.set(loadout.getName() + + globalPathSeparator + "potions" + + globalPathSeparator + eff.getType().getKey().getKey() + + globalPathSeparator + "dur", eff.getDuration()); } } else { globalConfig.set(loadout.getName() + globalPathSeparator + "potions", null); @@ -276,7 +284,7 @@ private void setupLoadOuts() { if (potionLoadOutSection != null) { final Set pots = potionLoadOutSection.getKeys(false); for (final String eff : pots) { - PotionEffectType type = PotionEffectType.getByName(eff); + PotionEffectType type = Registry.EFFECT.get(NamespacedKey.fromString(eff)); if (type != null) { final PotionEffect effect = new PotionEffect(type, globalConfig.getInt(loadoutName + globalPathSeparator + "potions" + globalPathSeparator + eff + globalPathSeparator + "dur"), diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/DebugCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/DebugCommand.java index 0c83dfd81..674918c96 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/DebugCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/DebugCommand.java @@ -55,7 +55,7 @@ public Component getUsage() { public boolean onCommand(@NotNull CommandSender sender, @NotNull String @NotNull [] args) { if (args.length > 0) { - switch (args[0].toUpperCase()) { + switch (args[0].toUpperCase()) { //todo case "ON" -> { if (Minigames.getPlugin().isDebugging()) { sender.sendMessage(ChatColor.GRAY + "Debug mode already active."); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/HintCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/HintCommand.java index 244620b86..56dccaf5c 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/HintCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/HintCommand.java @@ -82,12 +82,12 @@ public boolean onCommand(@NotNull CommandSender sender, Component.join(JoinConfiguration.commas(true), mgs.stream().map(Minigame::getDisplayName).toList()))); } else { - TreasureHuntModule thm = TreasureHuntModule.getMinigameModule(mgs.get(0)); + TreasureHuntModule thm = TreasureHuntModule.getMinigameModule(mgs.getFirst()); if (thm != null && thm.hasTreasureLocation() && !thm.isTreasureFound()) { thm.getHints(player); } else { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgMiscLangKey.MINIGAME_ERROR_NOTSTARTED, - Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), mgs.get(0).getName())); + Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), mgs.getFirst().getName())); } } } else { diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/PlayerCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/PlayerCommand.java index 02cd0f047..f23b93c0c 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/PlayerCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/PlayerCommand.java @@ -81,7 +81,7 @@ public boolean onCommand(@NotNull CommandSender sender, } else { List playerMatch = Bukkit.matchPlayer(args[0]); if (!playerMatch.isEmpty()) { - MinigamePlayer mgPlayer = Minigames.getPlugin().getPlayerManager().getMinigamePlayer(playerMatch.get(0)); + MinigamePlayer mgPlayer = Minigames.getPlugin().getPlayerManager().getMinigamePlayer(playerMatch.getFirst()); if (mgPlayer.isInMinigame()) { TextComponent.Builder message = Component.text(); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/QuitCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/QuitCommand.java index e835c81b7..0e906e04a 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/QuitCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/QuitCommand.java @@ -93,7 +93,7 @@ public boolean onCommand(@NotNull CommandSender sender, Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), args[0])); return true; } else { - mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(players.get(0)); + mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(players.getFirst()); } if (mgPlayer.isInMinigame()) { diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/ResourcePackCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/ResourcePackCommand.java index 78db6e573..08e2b816b 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/ResourcePackCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/ResourcePackCommand.java @@ -17,6 +17,8 @@ import org.jetbrains.annotations.Nullable; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -99,7 +101,7 @@ public boolean onCommand(final @NotNull CommandSender sender, @NotNull String @N case "addnew" -> { if (args.length >= 3) { try { - URL url = new URL(args[2]); + URL url = new URI(args[2]).toURL(); final ResourcePack newPack = new ResourcePack(MiniMessage.miniMessage().deserialize(args[1]), url); PLUGIN.getServer().getScheduler().runTaskLaterAsynchronously(PLUGIN, () -> { if (newPack.isValid()) { @@ -112,7 +114,7 @@ public boolean onCommand(final @NotNull CommandSender sender, @NotNull String @N }, 100); return true; - } catch (MalformedURLException e) { + } catch (MalformedURLException | URISyntaxException e) { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAND_RESSOUCEPACK_ADDRESOURCE_ERROR_BADURL); return false; } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreCommand.java index 7b2446ab7..1ec79ded7 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/ScoreCommand.java @@ -58,7 +58,7 @@ public boolean onCommand(@NotNull CommandSender sender, if (color == null) { List plys = PLUGIN.getServer().matchPlayer(args[1]); if (!plys.isEmpty()) { - mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(plys.get(0)); + mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(plys.getFirst()); } else { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAD_ERROR_NOTPLAYER, Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), args[1])); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/TeleportCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/TeleportCommand.java index e8c754244..f4bf446f1 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/TeleportCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/TeleportCommand.java @@ -60,7 +60,7 @@ public boolean onCommand(@NotNull CommandSender sender, List plys = PLUGIN.getServer().matchPlayer(args[0]); MinigamePlayer mgPlayer; if (!plys.isEmpty()) { - mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(plys.get(0)); + mgPlayer = PLUGIN.getPlayerManager().getMinigamePlayer(plys.getFirst()); } else { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAD_ERROR_NOTPLAYER, Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), args[0])); @@ -184,7 +184,7 @@ public boolean onCommand(@NotNull CommandSender sender, MinigamePlayer mgPlayer2; if (!plys.isEmpty()) { - mgPlayer2 = PLUGIN.getPlayerManager().getMinigamePlayer(plys.get(0)); + mgPlayer2 = PLUGIN.getPlayerManager().getMinigamePlayer(plys.getFirst()); } else { MinigameMessageManager.sendMgMessage(sender, MinigameMessageType.ERROR, MgCommandLangKey.COMMAD_ERROR_NOTPLAYER, Placeholder.unparsed(MinigamePlaceHolderKey.TEXT.getKey(), args[1])); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetHintDelayCommand.java b/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetHintDelayCommand.java index 9a644ba4d..5cac70936 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetHintDelayCommand.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/commands/set/SetHintDelayCommand.java @@ -25,11 +25,6 @@ public class SetHintDelayCommand extends ASetCommand { return "hintdelay"; } - @Override - public @NotNull String @Nullable [] getAliases() { - return null; - } - @Override public boolean canBeConsole() { return true; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/MultiplayerType.java b/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/MultiplayerType.java index 0e982dfcb..26fa02af6 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/MultiplayerType.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/MultiplayerType.java @@ -131,7 +131,7 @@ public boolean joinMinigame(@NotNull MinigamePlayer mgPlayer, @NotNull Minigame locs.addAll(fmgm.getStartLocations()); } Collections.shuffle(locs); - fply.teleport(locs.get(0)); + fply.teleport(locs.getFirst()); fply.getLoadout().equipLoadout(fply); fply.setLatejoining(false); fply.setFrozen(false); @@ -144,7 +144,7 @@ public boolean joinMinigame(@NotNull MinigamePlayer mgPlayer, @NotNull Minigame if (fply.isInMinigame()) { List locs = new ArrayList<>(fmgm.getStartLocations()); Collections.shuffle(locs); - fply.teleport(locs.get(0)); + fply.teleport(locs.getFirst()); fply.getLoadout().equipLoadout(fply); fply.setLatejoining(false); fply.setFrozen(false); @@ -285,7 +285,7 @@ public void endMinigameFindWinner(@NotNull Minigame mgm) { for (Team team : TeamsModule.getMinigameModule(mgm).getTeams()) { //make the next team winner, if they have the highest score if (winner == null || (team.getScore() > winner.getScore() && - (drawTeams.isEmpty() || team.getScore() > drawTeams.get(0).getScore()))) { + (drawTeams.isEmpty() || team.getScore() > drawTeams.getFirst().getScore()))) { winner = team; //make the next team draw with the last winner, if their scores match @@ -301,7 +301,7 @@ public void endMinigameFindWinner(@NotNull Minigame mgm) { //the last winner draws winner = null; - } else if (!drawTeams.isEmpty() && drawTeams.get(0).getScore() == team.getScore()) { + } else if (!drawTeams.isEmpty() && drawTeams.getFirst().getScore() == team.getScore()) { //new team also draws drawTeams.add(team); } @@ -474,7 +474,7 @@ private void playerRespawn(PlayerRespawnEvent event) { starts.addAll(mg.getStartLocations()); } Collections.shuffle(starts); - respawnPos = starts.get(0); + respawnPos = starts.getFirst(); } mgPlayer.getLoadout().equipLoadout(mgPlayer); } else { @@ -487,7 +487,7 @@ private void playerRespawn(PlayerRespawnEvent event) { } else { List starts = new ArrayList<>(mg.getStartLocations()); Collections.shuffle(starts); - respawnPos = starts.get(0); + respawnPos = starts.getFirst(); } mgPlayer.getLoadout().equipLoadout(mgPlayer); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/SingleplayerType.java b/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/SingleplayerType.java index 2faefbd9b..4977388ca 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/SingleplayerType.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/gametypes/SingleplayerType.java @@ -49,8 +49,8 @@ public boolean teleportOnJoin(@NotNull MinigamePlayer mgPlayer, @NotNull Minigam } Collections.shuffle(locs); - boolean result = mgPlayer.teleport(locs.get(0)); - if (plugin.getConfig().getBoolean("warnings") && mgPlayer.getPlayer().getWorld() != locs.get(0).getWorld() && + boolean result = mgPlayer.teleport(locs.getFirst()); + if (plugin.getConfig().getBoolean("warnings") && mgPlayer.getPlayer().getWorld() != locs.getFirst().getWorld() && mgPlayer.getPlayer().hasPermission("minigame.set.start")) { MinigameMessageManager.sendMgMessage(mgPlayer, MinigameMessageType.ERROR, MgMiscLangKey.MINIGAME_WARNING_TELEPORT_ACROSS_WORLDS); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/managers/DependencyManager.java b/Minigames/src/main/java/au/com/mineauz/minigames/managers/DependencyManager.java index a8312df51..6db8a38a8 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/managers/DependencyManager.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/managers/DependencyManager.java @@ -47,7 +47,7 @@ public static boolean hasSelection(@NotNull Player player) { if (regionSelector.getIncompleteRegion() instanceof CuboidRegion cuboidRegion) { BlockVector3 pos1 = cuboidRegion.getPos1(); if (!pos1.equals(BlockVector3.ZERO)) { - return new Location(player.getWorld(), pos1.getX(), pos1.getY(), pos1.getZ()); + return new Location(player.getWorld(), pos1.x(), pos1.y(), pos1.z()); } } @@ -61,7 +61,7 @@ public static boolean hasSelection(@NotNull Player player) { if (regionSelector.getIncompleteRegion() instanceof CuboidRegion cuboidRegion) { BlockVector3 pos2 = cuboidRegion.getPos2(); if (!pos2.equals(BlockVector3.ZERO)) { - return new Location(player.getWorld(), pos2.getX(), pos2.getY(), pos2.getZ()); + return new Location(player.getWorld(), pos2.x(), pos2.y(), pos2.z()); } } @@ -78,8 +78,8 @@ public static boolean hasSelection(@NotNull Player player) { BlockVector3 pos1 = cuboidRegion.getPos1(); BlockVector3 pos2 = cuboidRegion.getPos2(); return new SelectedRegionStatusWrapper(SelectedRegionStatus.SUCCESS, - new Location(player.getWorld(), pos1.getX(), pos1.getY(), pos1.getZ()), - new Location(player.getWorld(), pos2.getX(), pos2.getY(), pos2.getZ())); + new Location(player.getWorld(), pos1.x(), pos1.y(), pos1.z()), + new Location(player.getWorld(), pos2.x(), pos2.y(), pos2.z())); } else { return new SelectedRegionStatusWrapper(SelectedRegionStatus.INCOMPLETE, null, null); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/managers/MinigamePlayerManager.java b/Minigames/src/main/java/au/com/mineauz/minigames/managers/MinigamePlayerManager.java index 9ad7ecbfd..f204f6940 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/managers/MinigamePlayerManager.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/managers/MinigamePlayerManager.java @@ -813,7 +813,7 @@ public void endMinigame(@NotNull Minigame minigame, @NotNull List<@NotNull Minig if (minigame.getShowCompletionTime()) { MinigameMessageManager.sendMgMessage(mgWinner, MinigameMessageType.INFO, MgMiscLangKey.PLAYER_COMPLETIONTIME, Placeholder.component(MinigamePlaceHolderKey.TIME.getKey(), - MinigameUtils.convertTime(Duration.ofMillis(((winners.get(0).getEndTime() - winners.get(0).getStartTime() + winners.get(0).getStoredTime())))))); + MinigameUtils.convertTime(Duration.ofMillis(((winners.getFirst().getEndTime() - winners.getFirst().getStartTime() + winners.getFirst().getStoredTime())))))); } for (DynamicMinigameStat stat : MinigameStatistics.getDynamicStats()) { @@ -884,7 +884,7 @@ public void broadcastEndGame(@NotNull List<@NotNull MinigamePlayer> winners, @No if (!winners.isEmpty() || teamsModule.getDefaultWinner() != null) { Team team; if (!winners.isEmpty()) { - team = winners.get(0).getTeam(); + team = winners.getFirst().getTeam(); } else { team = teamsModule.getTeam(teamsModule.getDefaultWinner()); } @@ -893,7 +893,7 @@ public void broadcastEndGame(@NotNull List<@NotNull MinigamePlayer> winners, @No for (Team t : teams) { score = score.append(Component.text(t.getColor().name(), t.getTextColor()).append(Component.text(t.getScore()))); - if (t != teams.get(teams.size() - 1)) { + if (t != teams.getLast()) { score = score.append(Component.text(" : ")); } } @@ -918,7 +918,7 @@ public void broadcastEndGame(@NotNull List<@NotNull MinigamePlayer> winners, @No } else { if (winners.size() == 1) { Component score = Component.empty(); - MinigamePlayer winner = winners.get(0); + MinigamePlayer winner = winners.getFirst(); if (winner.getScore() != 0) { score = MinigameMessageManager.getMgMessage(MgMiscLangKey.PLAYER_END_TEAM_SCORE, Placeholder.unparsed(MinigamePlaceHolderKey.SCORE.getKey(), String.valueOf(winner.getScore()))); @@ -1062,7 +1062,7 @@ public void setPartyMode(boolean mode) { public void partyMode(MinigamePlayer player) { if (onPartyMode()) { Location loc = player.getPlayer().getLocation(); - Firework firework = (Firework) player.getPlayer().getWorld().spawnEntity(loc, EntityType.FIREWORK); + Firework firework = (Firework) player.getPlayer().getWorld().spawnEntity(loc, EntityType.FIREWORK_ROCKET); FireworkMeta fwm = firework.getFireworkMeta(); Random chance = new Random(); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/managers/ResourcePackManager.java b/Minigames/src/main/java/au/com/mineauz/minigames/managers/ResourcePackManager.java index 8c6c937ff..0fb47a923 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/managers/ResourcePackManager.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/managers/ResourcePackManager.java @@ -10,6 +10,8 @@ import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -53,11 +55,11 @@ public static Path getResourceDir() { private boolean loadEmptyPack() { try { - URL url = new URL("https://github.com/AddstarMC/Minigames/raw/master/Minigames/src/main/resources/resourcepack/emptyResourcePack.zip"); + URL url = new URI("https://github.com/AddstarMC/Minigames/raw/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; - } catch (MalformedURLException e) { + } catch (MalformedURLException | URISyntaxException e) { return false; } } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/MinigameMessageManager.java b/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/MinigameMessageManager.java index d27d9ad13..495135724 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/MinigameMessageManager.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/managers/language/MinigameMessageManager.java @@ -17,7 +17,6 @@ import net.kyori.adventure.util.UTF8ResourceBundleControl; import org.apache.commons.io.FileUtils; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Location; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -45,6 +44,7 @@ public class MinigameMessageManager { // todo cache unformatted // todo clean al * Stores each prop file with an identifier */ private final static @NotNull ConcurrentHashMap propertiesHashMap = new ConcurrentHashMap<>(); + public static final Component DEBUG_PREFIX = Component.text("[Debug]", NamedTextColor.RED); public static void registerCoreLanguage() { CodeSource src = Minigames.class.getProtectionDomain().getCodeSource(); @@ -516,9 +516,14 @@ public static void sendMessage(@NotNull MinigamePlayer mgPlayer, @NotNull Miniga sendMessage(mgPlayer.getPlayer(), type, message); } - public static void debugMessage(@NotNull String message) { //todo + @Deprecated(since = "1.21") + public static void debugMessage(@NotNull String message) { + debugMessage(Component.text(message)); + } + + public static void debugMessage(@NotNull Component message) { if (Minigames.getPlugin().isDebugging()) { - Minigames.getCmpnntLogger().info(ChatColor.RED + "[Debug] " + ChatColor.WHITE + message); + Minigames.getCmpnntLogger().info(DEBUG_PREFIX.append(message.colorIfAbsent(NamedTextColor.WHITE))); } } } \ No newline at end of file diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/GameMechanicBase.java b/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/GameMechanicBase.java index 856ce6593..28c2156f1 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/GameMechanicBase.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/GameMechanicBase.java @@ -108,7 +108,7 @@ public GameMechanicBase() { teamToBalance = teamToCheck; } if (teamToJoin != null && teamToBalance != null && teamToBalance.getPlayers().size() - teamToJoin.getPlayers().size() > 1) { - MinigamePlayer mgPlayer = teamToBalance.getPlayers().get(0); + MinigamePlayer mgPlayer = teamToBalance.getPlayers().getFirst(); MultiplayerType.switchTeam(minigame, mgPlayer, teamToJoin); result.add(mgPlayer); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/JuggernautMechanic.java b/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/JuggernautMechanic.java index 87c240da2..8ec43d54f 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/JuggernautMechanic.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/JuggernautMechanic.java @@ -9,8 +9,9 @@ import au.com.mineauz.minigames.minigame.Minigame; import au.com.mineauz.minigames.minigame.modules.JuggernautModule; import au.com.mineauz.minigames.objects.MinigamePlayer; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; -import org.bukkit.ChatColor; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.PlayerDeathEvent; import org.jetbrains.annotations.NotNull; @@ -103,7 +104,7 @@ private MinigamePlayer assignNewJuggernaut(List players, Minigam } Collections.shuffle(plys); - return plys.get(0); + return plys.getFirst(); } private void checkScore(MinigamePlayer mgPlayer) { @@ -122,7 +123,7 @@ private void minigameStart(StartMinigameEvent event) { Minigame mgm = event.getMinigame(); mgm.getScoreboard().registerNewTeam("juggernaut"); - mgm.getScoreboard().getTeam("juggernaut").setPrefix(ChatColor.RED.toString()); + mgm.getScoreboard().getTeam("juggernaut").prefix(Component.text("", NamedTextColor.RED)); // todo check if this works MinigamePlayer j = assignNewJuggernaut(event.getPlayers(), null); JuggernautModule.getMinigameModule(event.getMinigame()).setJuggernaut(j); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/TreasureHuntMechanic.java b/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/TreasureHuntMechanic.java index fe4660ec9..b80a0f779 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/TreasureHuntMechanic.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/mechanics/TreasureHuntMechanic.java @@ -77,7 +77,7 @@ public static void spawnTreasure(final Minigame mgm) { thm.clearHints(); thm.setTreasureFound(false); - Location tcpos = mgm.getStartLocations().get(0).clone(); + Location tcpos = mgm.getStartLocations().getFirst().clone(); final Location rpos = tcpos; double rx; double ry; @@ -132,7 +132,7 @@ public static void spawnTreasure(final Minigame mgm) { final ItemStack[] items = new ItemStack[27]; for (int i = 0; i < numItems; i++) { - ARewardType rew = ((StandardRewardScheme) rewards.getScheme()).getPrimaryReward().getReward().get(0); + ARewardType rew = ((StandardRewardScheme) rewards.getScheme()).getPrimaryReward().getReward().getFirst(); if (rew instanceof ItemReward irew) { items[i] = irew.getRewardItem(); } @@ -249,18 +249,18 @@ private void timerTick(@NotNull MinigameTimerTickEvent event) { String xdir; String zdir; - if (mgm.getStartLocations().get(0).getX() > block.getX()) { - dfcx = mgm.getStartLocations().get(0).getX() - block.getX(); + if (mgm.getStartLocations().getFirst().getX() > block.getX()) { + dfcx = mgm.getStartLocations().getFirst().getX() - block.getX(); xdir = MinigameMessageManager.getUnformattedMgMessage(MgMiscLangKey.MINIGAME_TREASUREHUNT_WEST); } else { - dfcx = block.getX() - mgm.getStartLocations().get(0).getX(); + dfcx = block.getX() - mgm.getStartLocations().getFirst().getX(); xdir = MinigameMessageManager.getUnformattedMgMessage(MgMiscLangKey.MINIGAME_TREASUREHUNT_EAST); } - if (mgm.getStartLocations().get(0).getZ() > block.getZ()) { - dfcz = mgm.getStartLocations().get(0).getZ() - block.getZ(); + if (mgm.getStartLocations().getFirst().getZ() > block.getZ()) { + dfcz = mgm.getStartLocations().getFirst().getZ() - block.getZ(); zdir = MinigameMessageManager.getUnformattedMgMessage(MgMiscLangKey.MINIGAME_TREASUREHUNT_NORTH); } else { - dfcz = block.getZ() - mgm.getStartLocations().get(0).getZ(); + dfcz = block.getZ() - mgm.getStartLocations().getFirst().getZ(); zdir = MinigameMessageManager.getUnformattedMgMessage(MgMiscLangKey.MINIGAME_TREASUREHUNT_SOUTH); } Component dir; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemBlockData.java b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemBlockData.java index e3651832c..8499898b5 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemBlockData.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemBlockData.java @@ -80,8 +80,7 @@ public ItemStack onClickWithItem(@Nullable ItemStack item) { // update the display item ItemStack stackUpdate = getDisplayItem(); - stackUpdate.setType(item.getType()); - setDisplayItem(stackUpdate); + setDisplayItem(stackUpdate.withType(item.getType())); } else { MinigameMessageManager.sendMgMessage(getContainer().getViewer(), MinigameMessageType.ERROR, MgMenuLangKey.MENU_BLOCKDATA_ERROR_INVALID, Placeholder.component(MinigamePlaceHolderKey.TYPE.getKey(), item != null ? Component.translatable(item.getType().translationKey()) : Component.text("?"))); @@ -113,8 +112,7 @@ public void checkValidEntry(String entry) { // update the display item if (d.getMaterial().isItem()) { ItemStack stackUpdate = getDisplayItem(); - stackUpdate.setType(d.getMaterial()); - setDisplayItem(stackUpdate); + setDisplayItem(stackUpdate.withType(d.getMaterial())); } } catch (IllegalArgumentException e) { MinigameMessageManager.sendMessage(getContainer().getViewer(), MinigameMessageType.ERROR, Component.text(e.getLocalizedMessage())); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemEnum.java b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemEnum.java index 21ba88071..cad24d714 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemEnum.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemEnum.java @@ -127,7 +127,7 @@ protected T increaseValue(T current, boolean shift) { int index = enumList.indexOf(current); if (index == -1) { - return enumList.get(0); + return enumList.getFirst(); } ++index; @@ -145,7 +145,7 @@ protected T decreaseValue(T current, boolean shift) { int index = enumList.indexOf(current); if (index == -1) { - return enumList.get(0); + return enumList.getFirst(); } --index; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemStatusEffectAdd.java b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemStatusEffectAdd.java index f02d3b2f6..f0ad30a6e 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemStatusEffectAdd.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemStatusEffectAdd.java @@ -12,6 +12,8 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.Registry; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; @@ -63,7 +65,7 @@ public void checkValidEntry(String entry) { String[] split = entry.split(", "); if (split.length == 3) { String effect = split[0].toUpperCase(); - PotionEffectType eff = PotionEffectType.getByName(effect); + @Nullable PotionEffectType eff = Registry.EFFECT.get(NamespacedKey.fromString(effect)); if (eff != null) { if (split[1].matches("[+]?[0-9]+") && Integer.parseInt(split[1]) != 0) { int level = Integer.parseInt(split[1]) - 1; @@ -87,7 +89,7 @@ public void checkValidEntry(String entry) { } for (int i = 0; i < 36; i++) { if (!getContainer().hasMenuItem(i)) { - getContainer().addItem(new MenuItemStatusEffect(Material.POTION, Component.text(eff.getName().toLowerCase().replace("_", " ")), des, peff, loadout), i); + getContainer().addItem(new MenuItemStatusEffect(Material.POTION, Component.translatable(eff.translationKey()), des, peff, loadout), i); loadout.addPotionEffect(peff); break; } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemTeam.java b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemTeam.java index d082afe32..f0ed6e930 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemTeam.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/menu/MenuItemTeam.java @@ -28,7 +28,7 @@ public MenuItemTeam(@Nullable Component name, @NotNull Team team) { public MenuItemTeam(@Nullable Component name, @NotNull List<@NotNull Component> description, @NotNull Team team) { super(Material.LEATHER_CHESTPLATE, name, description); - getDescription().add(0, MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_DELETE_RIGHTCLICK)); + getDescription().addFirst(MinigameMessageManager.getMgMessage(MgMenuLangKey.MENU_DELETE_RIGHTCLICK)); this.team = team; setTeamIcon(); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/Minigame.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/Minigame.java index 9daa196b6..c63c82b4c 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/Minigame.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/Minigame.java @@ -30,7 +30,10 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.scoreboard.*; +import org.bukkit.scoreboard.Criteria; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Scoreboard; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -117,7 +120,7 @@ public class Minigame implements ScriptObject { private final Map droppedFlag = new HashMap<>(); private MinigameState state = MinigameState.IDLE; private FloorDegenerator sFloorDegen; - private @NotNull Scoreboard scoreboard = Minigames.getPlugin().getServer().getScoreboardManager().getNewScoreboard(); + private final @NotNull Scoreboard scoreboard = Minigames.getPlugin().getServer().getScoreboardManager().getNewScoreboard(); //Multiplayer private MultiplayerTimer mpTimer = null; private MinigameTimer miniTimer = null; @@ -148,10 +151,8 @@ private void setup(@NotNull MinigameType minigameType, @Nullable Location start) if (start != null) startLocations.getFlag().add(start); - if (scoreboard != null) { - Objective newObjective = scoreboard.registerNewObjective(this.name, Criteria.DUMMY, Component.text(this.name)); - newObjective.setDisplaySlot(DisplaySlot.SIDEBAR); - } + Objective newObjective = scoreboard.registerNewObjective(this.name, Criteria.DUMMY, Component.text(this.name)); + newObjective.setDisplaySlot(DisplaySlot.SIDEBAR); for (ModuleFactory factory : Minigames.getPlugin().getMinigameManager().getModules()) { addModule(factory); @@ -587,11 +588,6 @@ public boolean isSpectator(MinigamePlayer player) { } public void setScore(@NotNull MinigamePlayer mgPlayer, int amount) { - if (scoreboard == null) { - ScoreboardManager s = Minigames.getPlugin().getServer().getScoreboardManager(); - scoreboard = s.getNewScoreboard(); - Minigames.getCmpnntLogger().info("ScoreBoardManager was null - Created new Scoreboard - for:" + name); - } Objective objective = scoreboard.getObjective(getName()); if (objective != null) { objective.getScore(mgPlayer.getName()).setScore(amount); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/modules/LoadoutModule.java b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/modules/LoadoutModule.java index 8e3ce7128..c732f5b71 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/minigame/modules/LoadoutModule.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/minigame/modules/LoadoutModule.java @@ -183,7 +183,7 @@ public void displaySelectionMenu(final MinigamePlayer mgPlayer, final boolean eq mgPlayer.getTeam().getColor() == loadout.getTeamColor()) { MenuItemCustom c = new MenuItemCustom(Material.GLASS, loadout.getDisplayName()); if (!loadout.getItemSlots().isEmpty()) { - ItemStack item = loadout.getItem(new ArrayList<>(loadout.getItemSlots()).get(0)); + ItemStack item = loadout.getItem(new ArrayList<>(loadout.getItemSlots()).getFirst()); c.setDisplayItem(item); } c.setClick(() -> { diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/objects/OfflineMinigamePlayer.java b/Minigames/src/main/java/au/com/mineauz/minigames/objects/OfflineMinigamePlayer.java index 6eafb13e5..4ad9079cd 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/objects/OfflineMinigamePlayer.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/objects/OfflineMinigamePlayer.java @@ -40,7 +40,7 @@ public OfflineMinigamePlayer(@NotNull UUID uuid, ItemStack @NotNull [] items, this.exp = exp; this.level = level; if (loginLocation != null && loginLocation.getWorld() == null) { - loginLocation = Bukkit.getWorlds().get(0).getSpawnLocation(); + loginLocation = Bukkit.getWorlds().getFirst().getSpawnLocation(); } this.loginLocation = loginLocation; if (Minigames.getPlugin().getConfig().getBoolean("saveInventory")) { @@ -71,10 +71,10 @@ public OfflineMinigamePlayer(@NotNull UUID uuid) { (float) config.getDouble("location" + configSeparator + "yaw"), (float) config.getDouble("location" + configSeparator + "pitch")); if (loginLocation.getWorld() == null) { - loginLocation = Bukkit.getWorlds().get(0).getSpawnLocation(); + loginLocation = Bukkit.getWorlds().getFirst().getSpawnLocation(); } } else - loginLocation = Bukkit.getWorlds().get(0).getSpawnLocation(); + loginLocation = Bukkit.getWorlds().getFirst().getSpawnLocation(); ItemStack[] items = Minigames.getPlugin().getServer().createInventory(null, InventoryType.PLAYER).getContents(); ItemStack[] armour = new ItemStack[4]; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/objects/ResourcePack.java b/Minigames/src/main/java/au/com/mineauz/minigames/objects/ResourcePack.java index c788c971e..8e140ccfd 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/objects/ResourcePack.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/objects/ResourcePack.java @@ -15,6 +15,8 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -49,8 +51,8 @@ public ResourcePack(final Map input) { this.displayName = MiniMessage.miniMessage().deserialize((String) input.get("name")); this.description = (String) input.get("description"); try { - url1 = new URL((String) input.get("url")); - } catch (final MalformedURLException e) { + url1 = new URI((String) input.get("url")).toURL(); + } catch (final MalformedURLException | URISyntaxException e) { Minigames.getCmpnntLogger().warn("The URL defined in the configuration is malformed: ", e); url1 = null; this.valid = false; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/recorder/MgBlockData.java b/Minigames/src/main/java/au/com/mineauz/minigames/recorder/MgBlockData.java index 97a04696b..3cc585667 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/recorder/MgBlockData.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/recorder/MgBlockData.java @@ -36,7 +36,7 @@ public class MgBlockData { * the uuid of the player who changed this block. * If null, the block doesn't get reset if the player left the minigame */ - private @Nullable UUID playerUUID = null; + private @Nullable UUID playerUUID; /** * inventory of the block */ diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/recorder/RecorderData.java b/Minigames/src/main/java/au/com/mineauz/minigames/recorder/RecorderData.java index 568dde5fb..bf3c3fa8c 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/recorder/RecorderData.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/recorder/RecorderData.java @@ -442,6 +442,7 @@ public boolean restoreBlockData() { //todo load entity data as well return false; } + @Deprecated(since = "1.19") private boolean covertOldFormat() { // dataFixerUpper File f = new File(plugin.getDataFolder() + File.separator + "minigames" + File.separator + minigame.getName() + File.separator + "backup.dat"); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/script/ExpressionParser.java b/Minigames/src/main/java/au/com/mineauz/minigames/script/ExpressionParser.java index 2d14f8aa6..d2c485925 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/script/ExpressionParser.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/script/ExpressionParser.java @@ -5,7 +5,7 @@ import java.util.regex.Pattern; public class ExpressionParser { - private static final Pattern pathSegmentPattern = Pattern.compile("([a-z]+)(?:\\[([a-z0-9]+)\\])?"); + private static final Pattern pathSegmentPattern = Pattern.compile("([a-z]+)(?:\\[([a-z0-9]+)])?"); /** * Parses a path and resolves an object from the path. @@ -203,14 +203,11 @@ public static String stringResolve(String input, ScriptObject object, boolean ig } private static String asString(ScriptReference ref) { - if (ref == null) { - return ""; - } else if (ref instanceof ScriptValue) { - return ref.toString(); - } else if (ref instanceof ScriptObject) { - return ((ScriptObject) ref).getAsString(); - } else { - return String.valueOf(ref); - } + return switch (ref) { + case null -> ""; + case ScriptValue ignored -> ref.toString(); + case ScriptObject scriptObject -> scriptObject.getAsString(); + default -> String.valueOf(ref); + }; } } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/signs/CheckpointSign.java b/Minigames/src/main/java/au/com/mineauz/minigames/signs/CheckpointSign.java index cd62b61bd..425d6af0b 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/signs/CheckpointSign.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/signs/CheckpointSign.java @@ -31,7 +31,7 @@ public String getUsePermission() { } @Override - public boolean signCreate(@NotNull SignChangeEvent event) { + public boolean signCreate(@NotNull SignChangeEvent event) { // todo get from lang event.line(1, getName()); if (event.getLine(2).equalsIgnoreCase("global")) { event.setLine(2, ChatColor.BLUE + "Global"); @@ -46,7 +46,7 @@ public boolean signUse(@NotNull Sign sign, @NotNull MinigamePlayer mgPlayer) { if (mgPlayer.isInMinigame() && mgPlayer.getMinigame().isSpectator(mgPlayer)) { return false; } - if (mgPlayer.getPlayer().isOnGround()) { + if (mgPlayer.getPlayer().isOnGround()) { // todo why? if really necessary use something working Location newloc = mgPlayer.getPlayer().getLocation(); if (!sign.getLine(2).equals(ChatColor.BLUE + "Global")) { mgPlayer.setCheckpoint(newloc); diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/signs/JoinSign.java b/Minigames/src/main/java/au/com/mineauz/minigames/signs/JoinSign.java index ddf1d0e21..3d2b1a25e 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/signs/JoinSign.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/signs/JoinSign.java @@ -47,7 +47,7 @@ public boolean signCreate(@NotNull SignChangeEvent event) { event.line(2, minigame.getDisplayName()); setPersistentMinigame(sign, minigame); - if (Minigames.getPlugin().hasEconomy()) { + if (Minigames.getPlugin().hasEconomy()) { // todo if (!event.getLine(3).isEmpty() && !event.getLine(3).matches("\\$?[0-9]+(.[0-9]{2})?")) { MinigameMessageManager.sendMgMessage(event.getPlayer(), MinigameMessageType.ERROR, MgMiscLangKey.SIGN_JOIN_ERROR_INVALIDMONEY); return false; diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/signs/ScoreboardSign.java b/Minigames/src/main/java/au/com/mineauz/minigames/signs/ScoreboardSign.java index 70ad6985a..f923db435 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/signs/ScoreboardSign.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/signs/ScoreboardSign.java @@ -113,7 +113,7 @@ public boolean signUse(@NotNull Sign sign, @NotNull MinigamePlayer mgPlayer) { @Override public void signBreak(@NotNull Sign sign, @NotNull MinigamePlayer mgPlayer) { - Minigame minigame = (Minigame) sign.getBlock().getMetadata("Minigame").get(0).value(); + Minigame minigame = (Minigame) sign.getBlock().getMetadata("Minigame").getFirst().value(); if (minigame != null) { minigame.getScoreboardData().removeDisplay(sign.getBlock()); } diff --git a/Minigames/src/main/java/au/com/mineauz/minigames/tool/MinigameTool.java b/Minigames/src/main/java/au/com/mineauz/minigames/tool/MinigameTool.java index 361c78052..ad3bdb8d2 100644 --- a/Minigames/src/main/java/au/com/mineauz/minigames/tool/MinigameTool.java +++ b/Minigames/src/main/java/au/com/mineauz/minigames/tool/MinigameTool.java @@ -44,7 +44,7 @@ public MinigameTool(@NotNull ItemStack tool) { MinigameMessageManager.getStrippedMgMessage(MgMiscLangKey.TOOL_SELECTED_MINIGAME_DESCRIPTION, Placeholder.unparsed(MinigamePlaceHolderKey.MINIGAME.getKey(), "(.*)")), Pattern.CASE_INSENSITIVE); - Matcher mgMatcher = minigamePattern.matcher(plainSerializer.serialize(lore.get(0))); + Matcher mgMatcher = minigamePattern.matcher(plainSerializer.serialize(lore.getFirst())); if (mgMatcher.matches()) { minigame = Minigames.getPlugin().getMinigameManager().getMinigame(mgMatcher.group(1)); diff --git a/Minigames/src/test/java/au/com/mineauz/minigames/EventsTest.java b/Minigames/src/test/java/au/com/mineauz/minigames/EventsTest.java index 07f7ec36b..bd1b52fb8 100644 --- a/Minigames/src/test/java/au/com/mineauz/minigames/EventsTest.java +++ b/Minigames/src/test/java/au/com/mineauz/minigames/EventsTest.java @@ -12,6 +12,7 @@ import be.seeseemelk.mockbukkit.ServerMock; import be.seeseemelk.mockbukkit.WorldMock; import be.seeseemelk.mockbukkit.entity.PlayerMock; +import net.kyori.adventure.text.Component; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.junit.jupiter.api.Assertions; @@ -47,14 +48,14 @@ public void setUp() { public void onPlayerDisconnect() { PlayerMock mock = server.getPlayer(0); mock.setLocation(server.getWorld("GAMES").getSpawnLocation()); - PlayerJoinEvent event = new PlayerJoinEvent(mock, "Joined the Server"); + PlayerJoinEvent event = new PlayerJoinEvent(mock, Component.text("Joined the Server")); server.getPluginManager().callEvent(event); MinigamePlayer player = plugin.getPlayerManager().getMinigamePlayer(mock); JoinCommand command = new JoinCommand(); String[] args = new String[]{game.getName()}; command.onCommand(mock, args); Assertions.assertTrue(player.isInMinigame()); - PlayerQuitEvent event2 = new PlayerQuitEvent(mock, "has left the game"); + PlayerQuitEvent event2 = new PlayerQuitEvent(mock, Component.text("has left the game")); server.getPluginManager().callEvent(event2); Assertions.assertFalse(player.isInMinigame()); Assertions.assertFalse(plugin.getPlayerManager().hasMinigamePlayer(player.getUUID())); @@ -62,7 +63,7 @@ public void onPlayerDisconnect() { public void onPlayerConnect() { PlayerMock mock = server.addPlayer(); - PlayerJoinEvent event = new PlayerJoinEvent(mock, "Joined the Server"); + PlayerJoinEvent event = new PlayerJoinEvent(mock, Component.text("Joined the Server")); server.getPluginManager().callEvent(event); Assertions.assertTrue(plugin.getPlayerManager().hasMinigamePlayer(mock.getUniqueId())); } diff --git a/Minigames/src/test/java/au/com/mineauz/minigames/MockBootstrap.java b/Minigames/src/test/java/au/com/mineauz/minigames/MockBootstrap.java index 9016b1379..6f380602a 100644 --- a/Minigames/src/test/java/au/com/mineauz/minigames/MockBootstrap.java +++ b/Minigames/src/test/java/au/com/mineauz/minigames/MockBootstrap.java @@ -30,7 +30,7 @@ public class MockBootstrap { @Override public @NotNull PluginMeta getConfiguration() { - Enumeration resources = null; + Enumeration resources; try { resources = Minigames.class.getClassLoader().getResources("plugin.yml"); //todo use paper plugin yml diff --git a/Regions/pom.xml b/Regions/pom.xml index 5bc3638e4..542551081 100644 --- a/Regions/pom.xml +++ b/Regions/pom.xml @@ -4,7 +4,7 @@ au.com.mineauz MinigamesProject - 1.20-SNAPSHOT + 1.21-SNAPSHOT ../pom.xml Minigames-Regions @@ -38,7 +38,7 @@ org.apache.maven.plugins maven-source-plugin - 3.3.0 + 3.3.1 attach-sources @@ -53,8 +53,8 @@ org.apache.maven.plugins maven-compiler-plugin - 17 - 17 + 21 + 21 @@ -63,7 +63,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.3.0 + 3.4.2 diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/RegionEvents.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/RegionEvents.java index 27a031c64..566874068 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/RegionEvents.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/RegionEvents.java @@ -18,6 +18,7 @@ import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.entity.Player; +import org.bukkit.event.Event; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -247,13 +248,13 @@ private void playersEnded(EndedMinigameEvent event) { } @EventHandler() - private void interactNode(PlayerInteractEvent event) { + private void interactNode(@NotNull PlayerInteractEvent event) { final MinigamePlayer mgPlayer = pdata.getMinigamePlayer(event.getPlayer()); if (!mgPlayer.isInMinigame()) { return; } - if (!event.isCancelled()) { + if (event.useInteractedBlock() != Event.Result.DENY) { if (event.getAction() == Action.PHYSICAL) { if (Tag.PRESSURE_PLATES.isTagged(event.getClickedBlock().getType())) { trigger(mgPlayer, event.getClickedBlock(), MgRegTrigger.PLAYER_BLOCK_INTERACT); diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/FallingBlockAction.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/FallingBlockAction.java index 604aabcaf..983c15f87 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/FallingBlockAction.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/FallingBlockAction.java @@ -10,6 +10,7 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.FallingBlock; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -64,7 +65,8 @@ public void executeRegionAction(@Nullable MinigamePlayer mgPlayer, z++) { temp.setZ(z); if (temp.getBlock().getType() != Material.AIR) { - temp.getWorld().spawnFallingBlock(temp, temp.getBlock().getBlockData()); + temp.getWorld().spawn(temp, FallingBlock.class, + fallingBlock -> fallingBlock.setBlockData(temp.getBlock().getBlockData())); temp.getBlock().setType(Material.AIR); } } @@ -77,8 +79,8 @@ public void executeNodeAction(@NotNull MinigamePlayer mgPlayer, @NotNull Node node) { debug(mgPlayer, node); if (node.getLocation().getBlock().getType() != Material.AIR) { - node.getLocation().getWorld().spawnFallingBlock(node.getLocation(), - node.getLocation().getBlock().getBlockData()); + node.getLocation().getWorld().spawn(node.getLocation(), FallingBlock.class, fallingBlock -> + fallingBlock.setBlockData(node.getLocation().getBlock().getBlockData())); node.getLocation().getBlock().setType(Material.AIR); } } diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/GiveItemAction.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/GiveItemAction.java index 2a7ee6f6f..ad1fdadc0 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/GiveItemAction.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/GiveItemAction.java @@ -129,17 +129,10 @@ public void loadArguments(@NotNull FileConfiguration config, @NotNull String pat Material mat = Material.matchMaterial(config.getString(path + configSeparator + "type", "")); if (mat != null) { - tempItem.setType(mat); + tempItem = tempItem.withType(mat); } } ItemMeta meta = tempItem.getItemMeta(); - if (config.contains(path + configSeparator + "name")) { - Material mat = Material.matchMaterial(config.getString(path + configSeparator + "type", "")); - - if (mat != null) { - tempItem.setType(mat); - } - } if (config.contains(path + configSeparator + "name")) { meta.displayName(MiniMessage.miniMessage().deserialize(config.getString(path + configSeparator + "name", ""))); diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/SpawnEntityAction.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/SpawnEntityAction.java index f6c903057..3f7f5374e 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/SpawnEntityAction.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/SpawnEntityAction.java @@ -42,14 +42,14 @@ public class SpawnEntityAction extends AAction { private final Set NOT_SPAWNABLE = Set.of( //todo enabled feature by world EntityType.AREA_EFFECT_CLOUD, // todo needs effect EntityType.BLOCK_DISPLAY, // todo needs block state/data and display settings - EntityType.DROPPED_ITEM, // todo needs ItemMeta + EntityType.ITEM, // todo needs ItemMeta EntityType.FALLING_BLOCK, // todo needs block state/data - EntityType.FISHING_HOOK, // needs a fishing rod; we can't guarantee this + EntityType.FISHING_BOBBER, // needs a fishing rod; we can't guarantee this EntityType.GLOW_ITEM_FRAME, // hanging items need support and direction; we can't guarantee this EntityType.ITEM_DISPLAY, // todo needs ItemMeta and display settings EntityType.ITEM_FRAME, // hanging items need support and direction; we can't guarantee this - EntityType.LEASH_HITCH, // hanging items need support also does not easy leash an entity; we can't guarantee this - EntityType.LIGHTNING, // todo needs lightning settings + EntityType.LEASH_KNOT, // hanging items need support also does not easy leash an entity; we can't guarantee this + EntityType.LIGHTNING_BOLT, // todo needs lightning settings EntityType.PAINTING, // hanging items need support and direction; we can't guarantee this EntityType.PLAYER, // we don't support npcs; todo maybe in the future integrate citizens support? EntityType.TEXT_DISPLAY, // todo needs text and display settings diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/TriggerRandomAction.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/TriggerRandomAction.java index 2b77746cf..773de3899 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/TriggerRandomAction.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/actions/TriggerRandomAction.java @@ -72,13 +72,13 @@ public void executeRegionAction(@Nullable MinigamePlayer mgPlayer, @NotNull Regi } Collections.shuffle(exs); if (timesTriggered.getFlag() == 1) { - if (region.checkConditions(exs.get(0), mgPlayer) && exs.get(0).canBeTriggered(mgPlayer)) - region.execute(exs.get(0), mgPlayer); + if (region.checkConditions(exs.getFirst(), mgPlayer) && exs.getFirst().canBeTriggered(mgPlayer)) + region.execute(exs.getFirst(), mgPlayer); } else { for (int i = 0; i < timesTriggered.getFlag(); i++) { if (allowSameTrigger.getFlag()) { - if (region.checkConditions(exs.get(0), mgPlayer) && exs.get(0).canBeTriggered(mgPlayer)) { - region.execute(exs.get(0), mgPlayer); + if (region.checkConditions(exs.getFirst(), mgPlayer) && exs.getFirst().canBeTriggered(mgPlayer)) { + region.execute(exs.getFirst(), mgPlayer); } Collections.shuffle(exs); } else { @@ -104,13 +104,13 @@ public void executeNodeAction(@NotNull MinigamePlayer mgPlayer, @NotNull Node no } Collections.shuffle(exs); if (timesTriggered.getFlag() == 1) { - if (node.checkConditions(exs.get(0), mgPlayer) && exs.get(0).canBeTriggered(mgPlayer)) - node.execute(exs.get(0), mgPlayer); + if (node.checkConditions(exs.getFirst(), mgPlayer) && exs.getFirst().canBeTriggered(mgPlayer)) + node.execute(exs.getFirst(), mgPlayer); } else { for (int i = 0; i < timesTriggered.getFlag(); i++) { if (allowSameTrigger.getFlag()) { - if (node.checkConditions(exs.get(0), mgPlayer) && exs.get(0).canBeTriggered(mgPlayer)) { - node.execute(exs.get(0), mgPlayer); + if (node.checkConditions(exs.getFirst(), mgPlayer) && exs.getFirst().canBeTriggered(mgPlayer)) { + node.execute(exs.getFirst(), mgPlayer); } Collections.shuffle(exs); } else { diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/ContainsEntityCondition.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/ContainsEntityCondition.java index 904539f11..17a58d22c 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/ContainsEntityCondition.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/ContainsEntityCondition.java @@ -70,7 +70,7 @@ public boolean checkRegionCondition(MinigamePlayer player, @NotNull Region regio for (Entity entity : entities) { if (entity.getType() == entityType.getFlag()) { if (matchName.getFlag()) { - Matcher matcher = namePattern.matcher((entity.getCustomName() == null) ? "" : entity.getCustomName()); + Matcher matcher = namePattern.matcher((entity.customName() == null) ? "" : entity.getCustomName()); if (!matcher.matches()) { continue; } diff --git a/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/MatchTeamCondition.java b/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/MatchTeamCondition.java index 9effd98bb..16a31dc50 100644 --- a/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/MatchTeamCondition.java +++ b/Regions/src/main/java/au/com/mineauz/minigamesregions/conditions/MatchTeamCondition.java @@ -99,8 +99,7 @@ public void setValue(TeamColor value) { @Override public @NotNull ItemStack getDisplayItem() { ItemStack stack = super.getDisplayItem(); - stack.setType(getTeamMaterial()); - return stack; + return stack.withType(getTeamMaterial()); } }); diff --git a/minigamesdistribution/pom.xml b/minigamesdistribution/pom.xml index 34d263b54..a9cc89847 100644 --- a/minigamesdistribution/pom.xml +++ b/minigamesdistribution/pom.xml @@ -3,7 +3,7 @@ MinigamesProject au.com.mineauz - 1.20-SNAPSHOT + 1.21-SNAPSHOT minigames-distribution Minigames-Pack @@ -44,7 +44,7 @@ maven-source-plugin - 3.3.0 + 3.3.1 true diff --git a/pom.xml b/pom.xml index a966495f5..b8e1dbea3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 au.com.mineauz MinigamesProject - 1.20-SNAPSHOT + 1.21-SNAPSHOT pom Minigames-Project https://www.spigotmc.org/resources/minigames.19687/ @@ -18,9 +18,9 @@ ${project.version}-${build.number} false - ${paper.api.version}.${paper.minor.version}-R0.1-SNAPSHOT - 1.20 - 4 + ${paper.api.version}-R0.1-SNAPSHOT + 1.21 + 0 ${env.CODACY_API_TOKEN} ${env.TRAVIS_COMMIT} @@ -155,38 +155,38 @@ maven-compiler-plugin 3.12.1 - 17 - 17 + 21 + 21 maven-assembly-plugin - 3.7.0 + 3.7.1 org.apache.maven.plugins maven-javadoc-plugin - 3.6.3 + 3.7.0 org.apache.maven.plugins maven-release-plugin - 3.0.1 + 3.1.1 org.apache.maven.plugins maven-dependency-plugin - 3.6.1 + 3.7.1 org.apache.maven.plugins maven-project-info-reports-plugin - 3.5.0 + 3.6.2 org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.3.1 @@ -194,7 +194,7 @@ org.jacoco jacoco-maven-plugin - 0.8.11 + 0.8.13-Snapshot prepare @@ -213,14 +213,14 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.17.1 org.apache.maven.plugins maven-compiler-plugin - 17 - 17 + 21 + 21