diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 411f3a36..0159b10d 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -1,3 +1,14 @@ +### 1.3.16 Release (04.03.2025) +* Changed Scoreboard API (now paket based) (Thanks MrMicky-FR FastBoard) +* Changed Scoreboard on lower 1.12.2 now supports 30 chars +* Changed Scoreboard on 1.13+ now supports unlimited chars +* Changed Scoreboard on 1.20.3 will hide red score numbers +* Changed pom files to build java 8 builds without errors +* Changed Potion methods to support all versions +* Removed ProtocolSupport for Scoreboard Actions +* Fixed Progress must be between 0 and 1 +* Fixed ItemBuilder.glowEffect + ### (1.3.11-)1.3.15 Release (17.02.2025) * Added 1.21.1-4 support * Added (3) new ConfigOptions for ArmorStands (BLOCK_IN_GAME_ARMOR_STAND_DESTROY, BLOCK_IN_GAME_ARMOR_STAND_CHECK, BLOCK_IN_GAME_ARMOR_STAND_INTERACT) diff --git a/.github/maven/api/pom.xml b/.github/maven/api/pom.xml new file mode 100644 index 00000000..c8942187 --- /dev/null +++ b/.github/maven/api/pom.xml @@ -0,0 +1,100 @@ + + + + + + minigamesbox + plugily.projects + 1.3.3.1-java8 + + 4.0.0 + + MiniGamesBox-Api + + 1.8 + UTF-8 + UTF-8 + + + + + + mojang-repo + https://libraries.minecraft.net/ + + + simonsators-repo + https://simonsator.de/repo/ + + + alessiodp-repo + https://repo.alessiodp.com/releases/ + + + plugilyprojects-repo + https://maven.plugily.xyz/releases + + + papi-repo + https://repo.extendedclip.com/content/repositories/placeholderapi/ + + + + + + plugily.projects + MiniGamesBox-Database + ${project.version} + compile + true + + + com.github.cryptomorin + XSeries + 13.0.0 + true + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.4.0 + + MiniGamesBox Inventory API docs for v${project.version} + Library box with massive content that could be seen as minigames core. + minecraft/minigamesbox/inventory + false + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.2 + + + + diff --git a/.github/maven/classic/pom.xml b/.github/maven/classic/pom.xml index 5310331f..6268ac1a 100644 --- a/.github/maven/classic/pom.xml +++ b/.github/maven/classic/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.2-java8 + 1.3.3.1-java8 4.0.0 @@ -54,6 +54,14 @@ papi-repo https://repo.extendedclip.com/content/repositories/placeholderapi/ + + via-version + https://repo.viaversion.com + + + jitpack + https://jitpack.io + @@ -64,24 +72,34 @@ provided - me.tigerhix.lib - scoreboard - 1.4.0 - compile + fr.mrmicky + fastboard + 2.1.3 true - - - * - * - - + + + com.viaversion + viaversion-api + 5.2.1 + provided + + + com.github.ProtocolSupport + ProtocolSupport + master + provided com.github.cryptomorin XSeries - 9.4.0 + 13.0.0 true + + org.openjdk.nashorn + nashorn-core + 15.4 + de.simonsator DevelopmentPAFSpigot @@ -120,6 +138,13 @@ compile true + + plugily.projects + MiniGamesBox-Api + ${project.version} + compile + true + plugily.projects MiniGamesBox-Database @@ -187,7 +212,7 @@ plugily.projects.minigamesbox.classic.utils.version.xseries - me.tigerhix.lib.scoreboard + fr.mrmicky.fastboard plugily.projects.minigamesbox.classic.utils.scoreboard diff --git a/.github/maven/database/pom.xml b/.github/maven/database/pom.xml index e9cfd408..644cfcef 100644 --- a/.github/maven/database/pom.xml +++ b/.github/maven/database/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.2-java8 + 1.3.3.1-java8 4.0.0 diff --git a/.github/maven/inventory/pom.xml b/.github/maven/inventory/pom.xml index 7785cf90..ef81d3a0 100644 --- a/.github/maven/inventory/pom.xml +++ b/.github/maven/inventory/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.2-java8 + 1.3.3.1-java8 4.0.0 diff --git a/.github/maven/pom.xml b/.github/maven/pom.xml index dcc76975..433a4abc 100644 --- a/.github/maven/pom.xml +++ b/.github/maven/pom.xml @@ -24,7 +24,7 @@ plugily.projects minigamesbox - 1.3.2-java8 + 1.3.3.1-java8 pom @@ -32,6 +32,7 @@ MiniGamesBox Utils MiniGamesBox Database MiniGamesBox Classic + MiniGamesBox API MiniGamesBox @@ -47,7 +48,7 @@ papermc - https://papermc.io/repo/repository/maven-public/ + https://repo.papermc.io/repository/maven-public/ spigot-repo @@ -71,7 +72,7 @@ io.papermc.paper paper-api - 1.20.1-R0.1-SNAPSHOT + 1.21.1-R0.1-SNAPSHOT provided diff --git a/.github/maven/utils/pom.xml b/.github/maven/utils/pom.xml index efba2374..8a2fc534 100644 --- a/.github/maven/utils/pom.xml +++ b/.github/maven/utils/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.2-java8 + 1.3.3.1-java8 4.0.0 diff --git a/MiniGamesBox API/build.gradle.kts b/MiniGamesBox API/build.gradle.kts index d8e11a69..ce458e6d 100644 --- a/MiniGamesBox API/build.gradle.kts +++ b/MiniGamesBox API/build.gradle.kts @@ -23,7 +23,6 @@ plugins { } dependencies { - implementation("me.tigerhix.lib:scoreboard:1.4.5") { isTransitive = false } compileOnly(project(":MiniGamesBox-Database", "shadow")) compileOnly("com.github.cryptomorin:XSeries:13.0.0") { isTransitive = false } } diff --git a/MiniGamesBox API/src/main/java/plugily/projects/minigamesbox/api/arena/managers/IPluginScoreboardManager.java b/MiniGamesBox API/src/main/java/plugily/projects/minigamesbox/api/arena/managers/IPluginScoreboardManager.java index bf3df7ff..514d967c 100644 --- a/MiniGamesBox API/src/main/java/plugily/projects/minigamesbox/api/arena/managers/IPluginScoreboardManager.java +++ b/MiniGamesBox API/src/main/java/plugily/projects/minigamesbox/api/arena/managers/IPluginScoreboardManager.java @@ -1,6 +1,6 @@ package plugily.projects.minigamesbox.api.arena.managers; -import me.tigerhix.lib.scoreboard.type.Entry; +import org.bukkit.entity.Player; import plugily.projects.minigamesbox.api.user.IUser; import java.util.List; @@ -34,5 +34,13 @@ public interface IPluginScoreboardManager { */ void stopAllScoreboards(); - List formatScoreboard(IUser user); + /** + * Get Lines from the language.yml according to arena state + */ + List getScoreboardLines(); + + /** + * Update lines with defined placeholders + */ + List formatScoreboardLines(List lines, Player player); } diff --git a/MiniGamesBox Classic/build.gradle.kts b/MiniGamesBox Classic/build.gradle.kts index 227e709a..5e9992d1 100644 --- a/MiniGamesBox Classic/build.gradle.kts +++ b/MiniGamesBox Classic/build.gradle.kts @@ -24,10 +24,11 @@ plugins { repositories { maven("https://repo2.acrylicstyle.xyz/") + maven(uri("https://repo.viaversion.com")) } dependencies { - implementation("me.tigerhix.lib:scoreboard:1.4.5") { isTransitive = false } + implementation("fr.mrmicky:fastboard:2.1.3") { isTransitive = false } implementation("com.github.cryptomorin:XSeries:13.0.0") { isTransitive = false } implementation(project(":MiniGamesBox-API", "shadow")) implementation(project(":MiniGamesBox-Inventory", "shadow")) @@ -37,6 +38,7 @@ dependencies { implementation("io.papermc:paperlib:1.0.8") implementation("org.openjdk.nashorn:nashorn-core:15.4") implementation("org.ow2.asm:asm:9.6") + compileOnly("com.viaversion:viaversion-api:5.2.1") compileOnly("com.mojang:authlib:3.13.56") compileOnly("de.simonsator:DevelopmentPAFSpigot:1.0.67") compileOnly("de.simonsator:Party-and-Friends-MySQL-Edition-Spigot-API:1.5.4-RELEASE") @@ -59,11 +61,15 @@ tasks { relocate("org.openjdk.nashorn", "plugily.projects.minigamesbox.classic.utils.skript.nashorn") relocate("com.cryptomorin.xseries.particles", "plugily.projects.minigamesbox.classic.utils.version.xseries") relocate("com.cryptomorin.xseries", "plugily.projects.minigamesbox.classic.utils.version.xseries") - relocate("me.tigerhix.lib.scoreboard", "plugily.projects.minigamesbox.classic.utils.scoreboard") + relocate("fr.mrmicky.fastboard", "plugily.projects.minigamesbox.classic.utils.scoreboard") relocate("org.bstats", "plugily.projects.minigamesbox.classic.utils.bstats") relocate("io.papermc.lib", "plugily.projects.minigamesbox.classic.utils.paperlib") } + javadoc() { + exclude("**/ProtocolSupport/**") + } + processResources { filesMatching("**/plugin.yml") { expand(project.properties) diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/PluginMain.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/PluginMain.java index 66e0dea2..c57627b2 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/PluginMain.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/PluginMain.java @@ -18,7 +18,6 @@ package plugily.projects.minigamesbox.classic; -import me.tigerhix.lib.scoreboard.ScoreboardLib; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.ArmorStand; @@ -206,9 +205,6 @@ public void onEnable() { //setup ItemManager ItemManager.register(this); - //setup Scoreboard - ScoreboardLib.setPluginInstance(this); - //initialize default classes initializeDefaultClasses(); diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaUtils.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaUtils.java index 69f0a1f4..87c3d921 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaUtils.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaUtils.java @@ -18,6 +18,7 @@ package plugily.projects.minigamesbox.classic.arena; +import com.cryptomorin.xseries.XPotion; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; @@ -107,7 +108,7 @@ public static CompletableFuture preparePlayerForGame( player.setAllowFlight(true); player.setFlying(true); user.setSpectator(true); - player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0)); + XPotion.NIGHT_VISION.buildPotionEffect(Integer.MAX_VALUE, 1).apply(player); plugin .getSpecialItemManager() .addSpecialItemsOfStage(player, SpecialItem.DisplayStage.SPECTATOR); diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java index 62dd62f2..6b910e3b 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java @@ -18,11 +18,9 @@ package plugily.projects.minigamesbox.classic.arena.managers; -import me.tigerhix.lib.scoreboard.ScoreboardLib; -import me.tigerhix.lib.scoreboard.common.EntryBuilder; -import me.tigerhix.lib.scoreboard.type.Entry; -import me.tigerhix.lib.scoreboard.type.Scoreboard; -import me.tigerhix.lib.scoreboard.type.ScoreboardHandler; +import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; +import fr.mrmicky.fastboard.FastBoard; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import plugily.projects.minigamesbox.api.IPluginMain; @@ -31,12 +29,9 @@ import plugily.projects.minigamesbox.api.user.IUser; import plugily.projects.minigamesbox.classic.arena.PluginArena; import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder; +import plugily.projects.minigamesbox.classic.utils.version.ServerVersion; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; +import java.util.*; /** * @author Tigerpanzer_02 @@ -45,9 +40,7 @@ */ public class PluginScoreboardManager implements IPluginScoreboardManager { - private final Map boardMap = new ConcurrentHashMap<>(); - private final Map lastBoardMap = new ConcurrentHashMap<>(); - private final org.bukkit.scoreboard.Scoreboard dummyBoard = Bukkit.getScoreboardManager().getNewScoreboard(); + private final Map boardMap = new HashMap<>(); private final IPluginMain plugin; private final String boardTitle; private final PluginArena arena; @@ -61,51 +54,57 @@ public PluginScoreboardManager(PluginArena arena) { @Override public void createScoreboard(IUser user) { Player player = user.getPlayer(); - lastBoardMap.put(player.getUniqueId(), player.getScoreboard()); - player.setScoreboard(dummyBoard); - Scoreboard scoreboard = ScoreboardLib.createScoreboard(player).setHandler(new ScoreboardHandler() { + FastBoard board = new FastBoard(player) { @Override - public String getTitle(Player player) { - return boardTitle; + public boolean hasLinesMaxLength() { + if(Bukkit.getPluginManager().isPluginEnabled("ViaVersion")) { + try { + return Via.getAPI().getPlayerVersion(getPlayer()) < ProtocolVersion.v1_13.getVersion(); + } catch(Exception ignored) { + //Not using ViaVersion 4 or unable to get ViaVersion return LegacyBoard! + } + } + return !ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_13); } + }; - @Override - public List getEntries(Player player) { - return formatScoreboard(user); - } - }); - scoreboard.activate(); - boardMap.put(player.getUniqueId(), scoreboard); + board.updateTitle(boardTitle); + board.updateLines(formatScoreboardLines(getScoreboardLines(), player)); + + + boardMap.put(user.getUniqueId(), board); } @Override public void updateScoreboards() { - boardMap.values().forEach(Scoreboard::update); + boardMap.values().forEach(fastBoard -> fastBoard.updateLines(formatScoreboardLines(getScoreboardLines(), fastBoard.getPlayer()))); } @Override public void removeScoreboard(IUser user) { - Optional.ofNullable(boardMap.remove(user.getUniqueId())).ifPresent(Scoreboard::deactivate); - Optional.ofNullable(lastBoardMap.remove(user.getUniqueId())).ifPresent(user.getPlayer()::setScoreboard); + Optional.ofNullable(boardMap.remove(user.getUniqueId())).ifPresent(FastBoard::delete); } @Override public void stopAllScoreboards() { - boardMap.values().forEach(Scoreboard::deactivate); + boardMap.values().forEach(FastBoard::delete); boardMap.clear(); } @Override - public List formatScoreboard(IUser user) { - EntryBuilder builder = new EntryBuilder(); + public List getScoreboardLines() { + return new ArrayList<>(plugin.getLanguageManager().getLanguageList(arena.getArenaState() == IArenaState.FULL_GAME ? "Scoreboard.Content.Waiting" + : "Scoreboard.Content." + arena.getArenaState().getFormattedName())); + } - for (String line : plugin.getLanguageManager().getLanguageList(arena.getArenaState() == IArenaState.FULL_GAME ? "Scoreboard.Content.Waiting" - : "Scoreboard.Content." + arena.getArenaState().getFormattedName())) { - builder.next(new MessageBuilder(line).player(user.getPlayer()).arena(arena).build()); + @Override + public List formatScoreboardLines(List lines, Player player) { + List formattedLines = new ArrayList<>(); + for(String line : lines) { + formattedLines.add(new MessageBuilder(line).player(player).arena(arena).build()); } - - return builder.build(); + return formattedLines; } } diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/states/PluginStartingState.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/states/PluginStartingState.java index 113a1be1..a9610239 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/states/PluginStartingState.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/states/PluginStartingState.java @@ -62,9 +62,13 @@ public void handleCall(PluginArena arena) { int timer = arena.getTimer(); double startWaiting = plugin.getConfig().getDouble("Time-Manager.Waiting", 60); - arena.getBossbarManager().setProgress(timer / startWaiting); float exp = (float) (timer / startWaiting); + if (exp > 1) { + exp = 1; + } + + arena.getBossbarManager().setProgress(exp); for(Player player : arena.getPlayers()) { player.setExp(exp); diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/spectator/settings/SpectatorSettingsMenu.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/spectator/settings/SpectatorSettingsMenu.java index 5cdaed3b..3e1c29da 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/spectator/settings/SpectatorSettingsMenu.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/spectator/settings/SpectatorSettingsMenu.java @@ -19,6 +19,7 @@ package plugily.projects.minigamesbox.classic.events.spectator.settings; import com.cryptomorin.xseries.XMaterial; +import com.cryptomorin.xseries.XPotion; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; @@ -115,32 +116,32 @@ private NormalFastInv setupSpectatorSettings() { switch(item.getType()) { case DEFAULT_SPEED: new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_CHANGED_SPEED").asKey().arena(arena).integer(0).player(player).sendPlayer(); - player.removePotionEffect(PotionEffectType.SPEED); + player.removePotionEffect(XPotion.SPEED.getPotionEffectType()); player.setFlySpeed(0.15f); break; case SPEED1: new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_CHANGED_SPEED").asKey().arena(arena).integer(1).player(player).sendPlayer(); - player.removePotionEffect(PotionEffectType.SPEED); + player.removePotionEffect(XPotion.SPEED.getPotionEffectType()); player.setFlySpeed(0.2f); - player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 0, false, false)); + XPotion.SPEED.buildPotionEffect(Integer.MAX_VALUE, 1).apply(player); break; case SPEED2: new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_CHANGED_SPEED").asKey().arena(arena).integer(2).player(player).sendPlayer(); - player.removePotionEffect(PotionEffectType.SPEED); + player.removePotionEffect(XPotion.SPEED.getPotionEffectType()); player.setFlySpeed(0.25f); - player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1, false, false)); + XPotion.SPEED.buildPotionEffect(Integer.MAX_VALUE, 2).apply(player); break; case SPEED3: new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_CHANGED_SPEED").asKey().arena(arena).integer(3).player(player).sendPlayer(); - player.removePotionEffect(PotionEffectType.SPEED); + player.removePotionEffect(XPotion.SPEED.getPotionEffectType()); player.setFlySpeed(0.3f); - player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 2, false, false)); + XPotion.SPEED.buildPotionEffect(Integer.MAX_VALUE, 3).apply(player); break; case SPEED4: new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_CHANGED_SPEED").asKey().arena(arena).integer(4).player(player).sendPlayer(); - player.removePotionEffect(PotionEffectType.SPEED); + player.removePotionEffect(XPotion.SPEED.getPotionEffectType()); player.setFlySpeed(0.35f); - player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 3, false, false)); + XPotion.SPEED.buildPotionEffect(Integer.MAX_VALUE, 4).apply(player); break; case AUTO_TELEPORT: if(autoTeleport.contains(player)) { @@ -152,11 +153,11 @@ private NormalFastInv setupSpectatorSettings() { } break; case NIGHT_VISION: - if(player.getActivePotionEffects().stream().anyMatch(potionEffect -> potionEffect.getType().equals(PotionEffectType.NIGHT_VISION))) { - player.removePotionEffect(PotionEffectType.NIGHT_VISION); + if(player.getActivePotionEffects().stream().anyMatch(potionEffect -> potionEffect.getType().equals(XPotion.NIGHT_VISION.getPotionEffectType()))) { + player.removePotionEffect(XPotion.NIGHT_VISION.getPotionEffectType()); new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_NIGHT_VISION").asKey().arena(arena).value(new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_STATUS_DISABLED").asKey().build()).player(player).sendPlayer(); } else { - player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 1, false, false)); + XPotion.NIGHT_VISION.buildPotionEffect(Integer.MAX_VALUE, 1).apply(player); new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_NIGHT_VISION").asKey().arena(arena).value(new MessageBuilder("IN_GAME_SPECTATOR_SPECTATOR_MENU_SETTINGS_STATUS_ENABLED").asKey().build()).player(player).sendPlayer(); } break; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/helper/ItemBuilder.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/helper/ItemBuilder.java index 9912a433..0ff029dc 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/helper/ItemBuilder.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/helper/ItemBuilder.java @@ -18,6 +18,7 @@ package plugily.projects.minigamesbox.classic.utils.helper; +import com.cryptomorin.xseries.XEnchantment; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; @@ -93,7 +94,7 @@ public ItemBuilder glowEffect() { if (ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_21)) { itemMeta.setEnchantmentGlintOverride(true); } else { - this.itemMeta.addEnchant(Enchantment.UNBREAKING, 1, true); + this.itemMeta.addEnchant(XEnchantment.UNBREAKING.get(), 1, true); this.itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } return this; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/migrator/MigratorUtils.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/migrator/MigratorUtils.java index 8ca1c457..df3b9bab 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/migrator/MigratorUtils.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/migrator/MigratorUtils.java @@ -23,7 +23,6 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.List; import java.util.stream.Collectors; @@ -48,9 +47,9 @@ public class MigratorUtils { */ public static void removeLineFromFile(File file, String lineToRemove) { try { - List lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8); + List lines = Files.readAllLines(file.toPath()); List updatedLines = lines.stream().filter(s -> !s.contains(lineToRemove)).collect(Collectors.toList()); - Files.write(file.toPath(), updatedLines, StandardCharsets.UTF_8); + Files.write(file.toPath(), updatedLines); } catch(IOException e) { e.printStackTrace(); Bukkit.getLogger().warning("[MinigamesBox] Something went horribly wrong with migration! Please contact Plugily Projects!"); @@ -67,11 +66,11 @@ public static void removeLineFromFile(File file, String lineToRemove) { public static void insertAfterLine(File file, String search, String text) { try { int i = 1; - List lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8); + List lines = Files.readAllLines(file.toPath()); for(String line : lines) { if(line.contains(search)) { lines.add(i, text); - Files.write(file.toPath(), lines, StandardCharsets.UTF_8); + Files.write(file.toPath(), lines); break; } i++; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/serialization/InventorySerializer.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/serialization/InventorySerializer.java index acb8bb1c..ab3dee43 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/serialization/InventorySerializer.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/serialization/InventorySerializer.java @@ -19,6 +19,7 @@ package plugily.projects.minigamesbox.classic.utils.serialization; import com.cryptomorin.xseries.XMaterial; +import com.cryptomorin.xseries.XPotion; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; @@ -94,7 +95,7 @@ public static boolean saveInventoryToFile(JavaPlugin plugin, Player player) { for(PotionEffect potion : activeEffects) { activePotions.add(potion.getType().getName() + "#" + potion.getDuration() + "#" + potion.getAmplifier()); - if(potion.getType().equals(PotionEffectType.HEALTH_BOOST)) { + if(potion.getType().equals(XPotion.HEALTH_BOOST.getPotionEffectType())) { // Health boost effect gives +2 hearts per level, health is counted in half hearts so amplifier * 4 maxHealth -= (potion.getAmplifier() + 1) * 4; } @@ -252,17 +253,12 @@ public static void loadInventory(JavaPlugin plugin, Player player) { List activePotions = invConfig.getStringList("Active potion effects"); for(String potion : activePotions) { String[] splited = potion.split("#", 3); - if(splited.length == 0) + if(splited.length == 0){ continue; - - PotionEffectType effectType = PotionEffectType.getByName(splited[0]); - - if(effectType != null) { - try { - player.addPotionEffect(new PotionEffect(effectType, splited.length < 2 ? 30 : Integer.parseInt(splited[1]), - splited.length < 3 ? 1 : Integer.parseInt(splited[2]))); + } + try { + XPotion.of(splited[0]).get().buildPotionEffect(splited.length < 2 ? 30 : Integer.parseInt(splited[1]), splited.length < 3 ? 1 : Integer.parseInt(splited[2])).apply(player); } catch(NumberFormatException ignored) { - } } } } catch(Exception ignored) { diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/exception/ReporterService.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/exception/ReporterService.java index d9d4809a..a3d417bf 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/exception/ReporterService.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/exception/ReporterService.java @@ -24,7 +24,6 @@ import java.io.IOException; import java.io.OutputStream; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.util.logging.Level; /** @@ -57,7 +56,7 @@ public void reportException() { conn.setDoOutput(true); OutputStream os = conn.getOutputStream(); - os.write(("pass=servicereporter&type=" + pluginName + "&pluginversion=" + pluginVersion + "&serverversion=" + serverVersion + "&error=" + error).getBytes(StandardCharsets.UTF_8)); + os.write(("pass=servicereporter&type=" + pluginName + "&pluginversion=" + pluginVersion + "&serverversion=" + serverVersion + "&error=" + error).getBytes("UTF-8")); os.flush(); os.close(); diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/locale/LocaleService.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/locale/LocaleService.java index 2a5d3b70..ff56fbb5 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/locale/LocaleService.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/locale/LocaleService.java @@ -27,7 +27,7 @@ import javax.net.ssl.HttpsURLConnection; import java.io.*; import java.net.URL; -import java.nio.charset.StandardCharsets; + import java.nio.file.Files; import java.util.Arrays; import java.util.Scanner; @@ -50,7 +50,7 @@ public LocaleService(PluginMain plugin) { return; } this.plugin = plugin; - try(Scanner scanner = new Scanner(requestLocaleFetch(null), StandardCharsets.UTF_8).useDelimiter("\\A")) { + try(Scanner scanner = new Scanner(requestLocaleFetch(null), "UTF-8").useDelimiter("\\A")) { String data = scanner.hasNext() ? scanner.next() : ""; File file = new File(plugin.getDataFolder().getPath() + "/locales/locale_data.yml"); if(!file.exists()) { @@ -100,9 +100,9 @@ private InputStream requestLocaleFetch(ILocale locale) { OutputStream os = conn.getOutputStream(); if(locale == null) { - os.write(("pass=localeservice&type=" + plugin.getName()).getBytes(StandardCharsets.UTF_8)); + os.write(("pass=localeservice&type=" + plugin.getName()).getBytes("UTF-8")); } else { - os.write(("pass=localeservice&type=" + plugin.getName() + "&locale=" + locale.getPrefix()).getBytes(StandardCharsets.UTF_8)); + os.write(("pass=localeservice&type=" + plugin.getName() + "&locale=" + locale.getPrefix()).getBytes("UTF-8")); } os.flush(); os.close(); @@ -138,9 +138,9 @@ public DownloadStatus demandLocaleDownload(ILocale locale) { } private DownloadStatus writeFile(ILocale locale) { - try(Scanner scanner = new Scanner(requestLocaleFetch(locale), StandardCharsets.UTF_8).useDelimiter("\\A")) { + try(Scanner scanner = new Scanner(requestLocaleFetch(locale), "UTF-8").useDelimiter("\\A")) { String data = scanner.hasNext() ? scanner.next() : ""; - try(OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(plugin.getDataFolder().getPath() + "/locales/" + locale.getPrefix() + ".yml"), StandardCharsets.UTF_8)) { + try(OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(plugin.getDataFolder().getPath() + "/locales/" + locale.getPrefix() + ".yml"), "UTF-8")) { writer.write(data); } return DownloadStatus.SUCCESS; @@ -165,8 +165,8 @@ public boolean isValidVersion() { } private boolean isExact(ILocale locale, File file) { - try(Scanner scanner = new Scanner(requestLocaleFetch(locale), StandardCharsets.UTF_8).useDelimiter("\\A"); - Scanner localScanner = new Scanner(file, StandardCharsets.UTF_8).useDelimiter("\\A")) { + try(Scanner scanner = new Scanner(requestLocaleFetch(locale), "UTF-8").useDelimiter("\\A"); + Scanner localScanner = new Scanner(file, "UTF-8").useDelimiter("\\A")) { String onlineData = scanner.hasNext() ? scanner.next() : ""; String localData = localScanner.hasNext() ? localScanner.next() : ""; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/Metrics.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/Metrics.java index 3952d814..39226d52 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/Metrics.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/Metrics.java @@ -26,7 +26,6 @@ import java.io.InputStreamReader; import java.lang.reflect.Method; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -372,7 +371,7 @@ private static byte[] compress(final String str) throws IOException { } ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try (GZIPOutputStream gzip = new GZIPOutputStream(outputStream)) { - gzip.write(str.getBytes(StandardCharsets.UTF_8)); + gzip.write(str.getBytes("UTF-8")); } return outputStream.toByteArray(); } diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/MetricsService.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/MetricsService.java index 5620f9f3..0c500f17 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/MetricsService.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/metrics/MetricsService.java @@ -29,7 +29,6 @@ import java.io.OutputStream; import java.net.InetAddress; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.util.Timer; import java.util.TimerTask; import java.util.logging.Level; @@ -70,7 +69,7 @@ public void run() { try { final byte[] post = ("pass=metricsservice&type=" + plugin.getName() + "&pluginversion=" + plugin.getDescription().getVersion() + "&serverversion=" + plugin.getServer().getBukkitVersion() + "&ip=" + InetAddress.getLocalHost().getHostAddress() + ":" + plugin.getServer().getPort() + - "&playersonline=" + Bukkit.getOnlinePlayers().size()).getBytes(StandardCharsets.UTF_8); + "&playersonline=" + Bukkit.getOnlinePlayers().size()).getBytes("UTF-8"); new Thread(() -> { try { plugin.getLogger().log(Level.FINE, "Metrics data sent!"); diff --git a/README.md b/README.md index 95b2cb8a..8844b9c3 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,9 @@ Library box with massive content that could be seen as minigames core. Used on a ## Open Source Libraries -| Library | Author | License | Used on module | -|------------------------------------------------------|-----------------------------------------------|-------------------------------------------------------------------------------|------------------------| -| [FastInv](https://github.com/MrMicky-FR/FastInv) | [MrMicky](https://github.com/MrMicky-FR) | [MIT License](https://github.com/MrMicky-FR/FastInv/blob/master/LICENSE) | MiniGamesBox Inventory | -| [Commons Box](https://github.com/Plajer/Commons-Box) | [Plajer](https://github.com/Plajer) | [GPLv3](https://github.com/Plajer/Commons-Box/blob/master/LICENSE.md) | MiniGamesBox Classic, Database, Utils | -| [XSeries](https://github.com/CryptoMorin/XSeries) | [CryptoMorin](https://github.com/CryptoMorin) | [MIT License](https://github.com/CryptoMorin/XSeries/blob/master/LICENSE.txt) | MiniGamesBox | +| Library | Author | License | Used on module | +|------------------------------------------------------|-----------------------------------------------|-------------------------------------------------------------------------------|---------------------------------------| +| [FastInv](https://github.com/MrMicky-FR/FastInv) | [MrMicky](https://github.com/MrMicky-FR) | [MIT License](https://github.com/MrMicky-FR/FastInv/blob/master/LICENSE) | MiniGamesBox Inventory | +| [FastBoard](https://github.com/MrMicky-FR/FastBoard) | [MrMicky](https://github.com/MrMicky-FR) | [MIT License](https://github.com/MrMicky-FR/FastInv/blob/master/LICENSE) | MiniGamesBox Classic, Api | +| [Commons Box](https://github.com/Plajer/Commons-Box) | [Plajer](https://github.com/Plajer) | [GPLv3](https://github.com/Plajer/Commons-Box/blob/master/LICENSE.md) | MiniGamesBox Classic, Database, Utils | +| [XSeries](https://github.com/CryptoMorin/XSeries) | [CryptoMorin](https://github.com/CryptoMorin) | [MIT License](https://github.com/CryptoMorin/XSeries/blob/master/LICENSE.txt) | MiniGamesBox | diff --git a/gradle.properties b/gradle.properties index 22de184d..6863204d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,4 +16,4 @@ # along with this program. If not, see . # group=plugily.projects -version=1.3.16 +version=1.3.16-SNAPSHOT9