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