diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 1168bb07..15e2f295 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -10,6 +10,12 @@ deploy webhooks to print changelog successfully That's all, matcher will stop when detects next line started with `###` match +### 5.0.14 Release (13.03.2025) +* Changed plot distribution on team mode tries to create only full plots now +* Fixed plot distribution in same cases lets spectators into the plot as member +* Fixed game ending due to not enough players counted spectators +* Updated to minigamesbox 1.4.0 + ### 5.0.13 Release (18.02.2025) * Fixed Progress must be between 0 and 1 diff --git a/build.gradle.kts b/.github/building/build.gradle.kts similarity index 96% rename from build.gradle.kts rename to .github/building/build.gradle.kts index 54a54728..411fd61e 100644 --- a/build.gradle.kts +++ b/.github/building/build.gradle.kts @@ -42,14 +42,14 @@ repositories { } dependencies { - implementation("plugily.projects:MiniGamesBox-Classic:1.3.16-SNAPSHOT1") { isTransitive = false } + implementation("plugily.projects:MiniGamesBox-Classic:1.3.17") { isTransitive = false } compileOnly("io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT") compileOnly("net.citizensnpcs:citizensapi:2.0.31-SNAPSHOT") compileOnly("org.jetbrains:annotations:24.0.1") } group = "plugily.projects" -version = "5.0.13" +version = "5.0.13-SNAPSHOT4" description = "BuildBattle" java { diff --git a/gradlew b/.github/building/gradlew similarity index 100% rename from gradlew rename to .github/building/gradlew diff --git a/gradlew.bat b/.github/building/gradlew.bat similarity index 100% rename from gradlew.bat rename to .github/building/gradlew.bat diff --git a/.github/building/pom.xml b/.github/building/pom.xml new file mode 100644 index 00000000..23d4c421 --- /dev/null +++ b/.github/building/pom.xml @@ -0,0 +1,208 @@ + + + + + 4.0.0 + + plugily.projects + buildbattle + 5.0.13-SNAPSHOT5 + BuildBattle + + + 1.8 + UTF-8 + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + plugilyprojects + https://maven.plugily.xyz/releases + + + plugilyprojects-snapshots + https://maven.plugily.xyz/snapshots + + + jitpack + https://jitpack.io + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + citizens-repo + http://repo.citizensnpcs.co/ + + + + + + io.papermc.paper + paper-api + 1.21.4-R0.1-SNAPSHOT + provided + + + + org.jetbrains + annotations + 23.0.0 + provided + + + plugily.projects + MiniGamesBox-Classic + 1.3.17-SNAPSHOT12 + compile + true + + + net.citizensnpcs + citizensapi + 2.0.26-SNAPSHOT + provided + + + ch.ethz.globis.phtree + phtree + + + + + + + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-site-plugin + 3.21.0 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.9.0 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + BuildBattle API docs for v${project.version} + Minecraft building minigame. + The goal is to build the best you can! You must compete with other players in this building game. + Who will be the best? Have fun using it! Leave a good rating if you really like it. + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.2 + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + + + com.zaxxer.hikari + plugily.projects.buildbattle.database.hikari + + + plugily.projects.minigamesbox + plugily.projects.buildbattle.minigamesbox + + + false + + + + + + + + plugily.projects + betty-maven-plugin + 1.0.2 + + ${project.basedir}/CHANGELOG.md + + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + + + Release + https://maven.plugily.xyz/releases + + + Snapshot + https://maven.plugily.xyz/snapshots + + + \ No newline at end of file diff --git a/settings.gradle.kts b/.github/building/settings.gradle.kts similarity index 100% rename from settings.gradle.kts rename to .github/building/settings.gradle.kts diff --git a/.github/workflows/deploy-development.yml b/.github/workflows/deploy-development.yml index 9d9a75aa..d24de707 100644 --- a/.github/workflows/deploy-development.yml +++ b/.github/workflows/deploy-development.yml @@ -10,11 +10,9 @@ jobs: steps: - name: Checkout Latest Commit uses: actions/checkout@v4.2.2 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - name: Bump Version id: bump - uses: Plugily-Projects/version-bump-action@v8 + uses: Plugily-Projects/version-bump-action@v10 with: github-token: ${{ secrets.github_token }} auto-version-bump: true @@ -34,10 +32,23 @@ jobs: distribution: 'temurin' java-version: '21' java-package: jdk - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Publish with Gradle - run: ./gradlew publishMavenPublicationToSnapshotsRepository - env: - MAVEN_USERNAME: ${{ secrets.SNAPSHOTSUSERNAME }} - MAVEN_PASSWORD: ${{ secrets.SNAPSHOTSPASSWORD }} + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.8.2 + - name: Cache + uses: actions/cache@v4.2.2 + with: + path: ~/.m2/repository + key: maven-${{ hashFiles('**/pom.xml') }} + restore-keys: maven- + - name: Publish with Maven + uses: s4u/maven-settings-action@v3.1.0 + with: + servers: | + [{ + "id": "Snapshot", + "username": "${{ secrets.SNAPSHOTSUSERNAME }}", + "password": "${{ secrets.SNAPSHOTSPASSWORD }}" + }] + - run: mvn clean verify compile package site:site javadoc:javadoc javadoc:jar deploy -DaltDeploymentRepository=Snapshot::https://maven.plugily.xyz/snapshots -f pom.xml diff --git a/.github/workflows/deploy-master.yml b/.github/workflows/deploy-master.yml index c08a2056..172d2f22 100644 --- a/.github/workflows/deploy-master.yml +++ b/.github/workflows/deploy-master.yml @@ -12,11 +12,9 @@ jobs: steps: - name: Checkout Latest Commit uses: actions/checkout@v4.2.2 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - name: Bump Version id: bump - uses: Plugily-Projects/version-bump-action@v8 + uses: Plugily-Projects/version-bump-action@v10 with: github-token: ${{ secrets.github_token }} auto-version-bump: false @@ -37,10 +35,23 @@ jobs: distribution: 'temurin' java-version: '21' java-package: jdk - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Publish with Gradle - run: ./gradlew publishMavenPublicationToReleasesRepository - env: - MAVEN_USERNAME: ${{ secrets.RELEASESUSERNAME }} - MAVEN_PASSWORD: ${{ secrets.RELEASESPASSWORD }} + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.8.2 + - name: Cache + uses: actions/cache@v4.2.2 + with: + path: ~/.m2/repository + key: maven-${{ hashFiles('**/pom.xml') }} + restore-keys: maven- + - name: Publish with Maven + uses: s4u/maven-settings-action@v3.1.0 + with: + servers: | + [{ + "id": "Release", + "username": "${{ secrets.RELEASESUSERNAME }}", + "password": "${{ secrets.RELEASESPASSWORD }}" + }] + - run: mvn clean verify compile package site:site javadoc:javadoc javadoc:jar deploy -DaltDeploymentRepository=Release::https://maven.plugily.xyz/releases -f pom.xml diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..94c7e235 --- /dev/null +++ b/pom.xml @@ -0,0 +1,205 @@ + + + + + 4.0.0 + + plugily.projects + buildbattle + 5.0.13-SNAPSHOT10 + BuildBattle + + + 1.8 + UTF-8 + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + plugilyprojects + https://maven.plugily.xyz/releases + + + plugilyprojects-snapshots + https://maven.plugily.xyz/snapshots + + + jitpack + https://jitpack.io + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + citizens-repo + https://repo.citizensnpcs.co/ + + + + + + io.papermc.paper + paper-api + 1.21.4-R0.1-SNAPSHOT + provided + + + + org.jetbrains + annotations + 23.0.0 + provided + + + plugily.projects + MiniGamesBox-Classic + 1.4.0 + compile + true + + + net.citizensnpcs + citizensapi + 2.0.26-SNAPSHOT + provided + + + ch.ethz.globis.phtree + phtree + + + + + + + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-site-plugin + 3.21.0 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.9.0 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + BuildBattle API docs for v${project.version} + Minecraft building minigame. + The goal is to build the best you can! You must compete with other players in this building game. + Who will be the best? Have fun using it! Leave a good rating if you really like it. + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.2 + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + true + + + com.zaxxer.hikari + plugily.projects.buildbattle.database.hikari + + + plugily.projects.minigamesbox + plugily.projects.buildbattle.minigamesbox + + + false + + + + + + + + plugily.projects + betty-maven-plugin + 1.0.2 + + ${project.basedir}/CHANGELOG.md + + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + + + Release + https://maven.plugily.xyz/releases + + + Snapshot + https://maven.plugily.xyz/snapshots + + + \ No newline at end of file diff --git a/.github/maven/pom.xml b/pom.xml.versionsBackup similarity index 82% rename from .github/maven/pom.xml rename to pom.xml.versionsBackup index cc13afb0..64ffb577 100644 --- a/.github/maven/pom.xml +++ b/pom.xml.versionsBackup @@ -26,7 +26,7 @@ plugily.projects buildbattle - 5.0.0 + 5.0.13-SNAPSHOT4 BuildBattle @@ -37,7 +37,7 @@ papermc - https://papermc.io/repo/repository/maven-public/ + https://repo.papermc.io/repository/maven-public/ plugilyprojects @@ -69,7 +69,7 @@ io.papermc.paper paper-api - 1.19.1-R0.1-SNAPSHOT + 1.21.4-R0.1-SNAPSHOT provided @@ -82,7 +82,7 @@ plugily.projects MiniGamesBox-Classic - 1.2.0-SNAPSHOT51 + 1.3.17-SNAPSHOT10 compile true @@ -108,41 +108,51 @@ - - org.apache.maven.plugins - maven-site-plugin - 3.12.0 - org.apache.maven.plugins maven-compiler-plugin - 3.10.1 - - compile - + 3.14.0 ${java.version} ${java.version} + + org.apache.maven.plugins + maven-site-plugin + 3.21.0 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.9.0 + org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.11.2 - minecraft/buildbattle - false + Murder Mystery API docs for v${project.version} + Minecraft survival minigame. + Be the murderer, innocent or the detective! Don't be killed during the game to win! API + documentation for hooking Murder Mystery with your plugin. + org.apache.maven.plugins maven-jar-plugin - 3.2.2 + 3.4.2 org.apache.maven.plugins maven-shade-plugin - 3.3.0 + 3.6.0 package @@ -159,10 +169,6 @@ plugily.projects.minigamesbox plugily.projects.buildbattle.minigamesbox - - plugily.projects.commonsbox - plugily.projects.buildbattle.commonsbox - false @@ -185,14 +191,18 @@ org.apache.maven.wagon wagon-ssh - 3.5.2 + 3.5.3 - plugily-projects + Release https://maven.plugily.xyz/releases + + Snapshot + https://maven.plugily.xyz/snapshots + - + \ No newline at end of file diff --git a/src/main/java/plugily/projects/buildbattle/arena/ArenaManager.java b/src/main/java/plugily/projects/buildbattle/arena/ArenaManager.java index cf260997..ac2d438c 100644 --- a/src/main/java/plugily/projects/buildbattle/arena/ArenaManager.java +++ b/src/main/java/plugily/projects/buildbattle/arena/ArenaManager.java @@ -56,7 +56,7 @@ public void additionalPartyJoin(Player player, IPluginArena arena, Player partyL List plots = pluginArena.getPlotManager().getPlots(); Plot partyPlot = plots.get(plots.size() == 1 ? 0 : plugin.getRandom().nextInt(plots.size())); - if(arena.getPlayers().contains(partyLeader)) { + if(arena.getPlayersLeft().contains(partyLeader)) { Plot partyLeaderPlot = pluginArena.getPlotManager().getPlot(partyLeader); if(partyLeaderPlot != null) { partyPlot = partyLeaderPlot; diff --git a/src/main/java/plugily/projects/buildbattle/arena/BuildArena.java b/src/main/java/plugily/projects/buildbattle/arena/BuildArena.java index f6669e0a..bebe90ab 100644 --- a/src/main/java/plugily/projects/buildbattle/arena/BuildArena.java +++ b/src/main/java/plugily/projects/buildbattle/arena/BuildArena.java @@ -30,6 +30,7 @@ import plugily.projects.minigamesbox.api.arena.IArenaState; import java.util.*; +import java.util.stream.Collectors; /** * @author Tigerpanzer_02 @@ -89,7 +90,7 @@ public Queue getQueue() { @Override public void distributePlots() { - int neededPlots = getPlayers().size() / getArenaOption("PLOT_MEMBER_SIZE"); + int neededPlots = getPlayersLeft().size() / getArenaOption("PLOT_MEMBER_SIZE"); if(getPlotManager().getPlots().size() < neededPlots) { getPlugin().getMessageUtils().errorOccurred(); getPlugin().getDebugger().sendConsoleMsg("&c[Build Battle] [PLOT WARNING] Not enough plots in arena " + getId() + "! Lacks " + (neededPlots - getPlotManager().getPlots().size()) + " plots"); @@ -111,23 +112,27 @@ public void distributePlots() { } break; case TEAM: - for(Player player : getPlayers()) { - // get base with min players - Plot minPlayers = getPlotManager().getPlots().stream().min(Comparator.comparing(Plot::getMembersSize)).get(); - // add player to min base if he got no base - Plot playerPlot = getPlotManager().getPlot(player); - if(playerPlot == null) { - minPlayers.addMember(player, this, true); - } - // fallback - if(playerPlot == null) { - getPlotManager().getPlots().get(0).addMember(player, this, true); + int plotMemberSize = getArenaOption("PLOT_MEMBER_SIZE"); + int neededDividedPlots = getPlayersLeft().size() / plotMemberSize; + int currentDividedPlots = (int) getPlotManager().getPlots().stream().filter(plot -> plot.getMembersSize() > 0).count(); + + + if(neededDividedPlots > currentDividedPlots) { + List fullPlots = getPlotManager().getPlots().stream().filter(plot -> plot.getMembersSize() == plotMemberSize).collect(Collectors.toList()); + List playersToMove = getPlayersLeft().stream().filter(player -> fullPlots.stream().noneMatch(plot -> plot.getMembers().contains(player))).collect(Collectors.toList()); + if(!playersToMove.isEmpty()) { + for(int i = 0; i < playersToMove.size(); i++) { + Player move = playersToMove.get(i); + List emptyPlots = getPlotManager().getPlots().stream().filter(plot -> plot.getMembersSize() < plotMemberSize).collect(Collectors.toList()); + Plot maxEmptyPlot = emptyPlots.stream().max(Comparator.comparing(Plot::getMembersSize)).get(); + maxEmptyPlot.addMember(move, this, true); + } } } //check if not only one plot got players Plot maxPlayers = getPlotManager().getPlots().stream().max(Comparator.comparing(Plot::getMembersSize)).get(); Plot minPlayers = getPlotManager().getPlots().stream().min(Comparator.comparing(Plot::getMembersSize)).get(); - if(maxPlayers.getMembersSize() == getPlayers().size()) { + if(maxPlayers.getMembersSize() == getPlayersLeft().size()) { for(int i = 0; i < maxPlayers.getMembersSize() / 2; i++) { Player move = maxPlayers.getMembers().get(i); minPlayers.addMember(move, this, true); @@ -149,14 +154,14 @@ public void distributePlots() { @Override public boolean enoughPlayersToContinue() { - int size = getPlayers().size(); + int size = getPlayersLeft().size(); int memberSize = getArenaOption("PLOT_MEMBER_SIZE"); if(size > memberSize) { return true; } if(size == memberSize) { - return !new HashSet<>(getPlotManager().getPlot(getPlayersLeft().get(0)).getMembers()).containsAll(getPlayers()); + return !new HashSet<>(getPlotManager().getPlot(getPlayersLeft().get(0)).getMembers()).containsAll(getPlayersLeft()); } return false; } diff --git a/src/main/java/plugily/projects/buildbattle/arena/GuessArena.java b/src/main/java/plugily/projects/buildbattle/arena/GuessArena.java index 5923082d..02fe0198 100644 --- a/src/main/java/plugily/projects/buildbattle/arena/GuessArena.java +++ b/src/main/java/plugily/projects/buildbattle/arena/GuessArena.java @@ -76,8 +76,8 @@ public void cleanUpArena() { } @Override - public void distributePlots() { - int neededPlots = getPlayers().size() / plotMemberSize; + public void distributePlots() { + int neededPlots = getPlayersLeft().size() / plotMemberSize; if(getPlotManager().getPlots().size() < neededPlots) { getPlugin().getMessageUtils().errorOccurred(); getPlugin().getDebugger().sendConsoleMsg("&c[Build Battle] [PLOT WARNING] Not enough plots in arena " + getId() + "! Lacks " + (neededPlots - getPlotManager().getPlots().size()) + " plots"); @@ -108,13 +108,13 @@ public void distributePlots() { @Override public boolean enoughPlayersToContinue() { - int size = getPlayers().size(); + int size = getPlayersLeft().size(); if(size > plotMemberSize) { return true; } if(size == plotMemberSize) { - return !new HashSet<>(getPlotManager().getPlot(getPlayersLeft().get(0)).getMembers()).containsAll(getPlayers()); + return !new HashSet<>(getPlotManager().getPlot(getPlayersLeft().get(0)).getMembers()).containsAll(getPlayersLeft()); } return false; } diff --git a/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java b/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java index 32164d29..5e46b99f 100644 --- a/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java +++ b/src/main/java/plugily/projects/buildbattle/arena/managers/ScoreboardManager.java @@ -23,14 +23,12 @@ import org.bukkit.entity.Player; import plugily.projects.buildbattle.arena.BaseArena; import plugily.projects.buildbattle.arena.GuessArena; -import plugily.projects.minigamesbox.api.arena.IPluginArena; -import plugily.projects.minigamesbox.api.user.IUser; +import plugily.projects.minigamesbox.api.arena.IArenaState; import plugily.projects.minigamesbox.classic.arena.PluginArena; import plugily.projects.minigamesbox.classic.arena.managers.PluginScoreboardManager; import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder; -import plugily.projects.minigamesbox.classic.utils.scoreboard.common.EntryBuilder; -import plugily.projects.minigamesbox.classic.utils.scoreboard.type.Entry; +import java.util.ArrayList; import java.util.List; /** @@ -47,47 +45,41 @@ public ScoreboardManager(PluginArena arena) { } @Override - public List formatScoreboard(IUser user) { - EntryBuilder builder = new EntryBuilder(); - List lines; - IPluginArena userArena = user.getArena(); + public List formatScoreboardLines(List lines, Player player) { + List changedLines = new ArrayList<>(); - switch (userArena.getArenaState()) { - case FULL_GAME: { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content.Starting"); - break; - } + switch (arena.getArenaState()) { case IN_GAME: { - if(userArena instanceof GuessArena) { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Guess-The-Build" + (((GuessArena) userArena).getArenaInGameState() == BaseArena.ArenaInGameState.PLOT_VOTING ? "-Waiting" : "")); + if(arena instanceof GuessArena) { + lines = arena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + arena.getArenaState().getFormattedName() + ".Guess-The-Build" + (((GuessArena) arena).getArenaInGameState() == BaseArena.ArenaInGameState.PLOT_VOTING ? "-Waiting" : "")); } else { - if(userArena.getArenaOption("PLOT_MEMBER_SIZE") <= 1) { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Classic"); + if(arena.getArenaOption("PLOT_MEMBER_SIZE") <= 1) { + lines = arena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + arena.getArenaState().getFormattedName() + ".Classic"); } else { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Teams"); + lines = arena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + arena.getArenaState().getFormattedName() + ".Teams"); } } break; } case ENDING: { - if(userArena instanceof GuessArena) { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Guess-The-Build"); + if(arena instanceof GuessArena) { + lines = arena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + arena.getArenaState().getFormattedName() + ".Guess-The-Build"); } else { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Classic"); + lines = arena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + arena.getArenaState().getFormattedName() + ".Classic"); } break; } default: { - lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName()); + lines = arena.getPlugin().getLanguageManager().getLanguageList(arena.getArenaState() == IArenaState.FULL_GAME ? "Scoreboard.Content.Starting" + : "Scoreboard.Content." + arena.getArenaState().getFormattedName()); + } } - Player player = user.getPlayer(); - for(String line : lines) { - builder.next(new MessageBuilder(line).player(player).arena(arena).build()); + changedLines.add(new MessageBuilder(line).player(player).arena(arena).build()); } - return builder.build(); + return changedLines; } } diff --git a/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java b/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java index 8b2c26fc..3c99e3e4 100644 --- a/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java +++ b/src/main/java/plugily/projects/buildbattle/arena/states/build/InGameState.java @@ -63,11 +63,13 @@ public void handleCall(PluginArena arena) { new MessageBuilder("IN_GAME_MESSAGES_PLOT_GTB_THEME_NAME").asKey().arena(pluginArena).sendArena(); } - for(Player player : pluginArena.getPlayers()) { + for(Player player : pluginArena.getPlayersLeft()) { player.closeInventory(); player.setGameMode(GameMode.CREATIVE); VersionUtils.setCollidable(player, false); } + // second time after voting as sometimes world switch causing no teleportation! + pluginArena.getPlotManager().teleportToPlots(); } else { handleThemeVoting(pluginArena); } @@ -180,7 +182,7 @@ private void adjustStatistics(BuildArena pluginArena) { } private void handleThemeVoting(BuildArena pluginArena) { - for(Player player : pluginArena.getPlayers()) { + for(Player player : pluginArena.getPlayersLeft()) { pluginArena.getVoteMenu().updateInventory(player); } } @@ -268,7 +270,7 @@ public void voteRoutine(BuildArena pluginArena) { String formattedMembers = plot.getFormattedMembers(); boolean hidePlotOwner = getPlugin().getConfigPreferences().getOption("PLOT_HIDE_OWNER"); - for(Player player : pluginArena.getPlayers()) { + for(Player player : pluginArena.getPlayersLeft()) { VersionUtils.teleport(player, teleportLoc); player.setPlayerWeather(plot.getWeatherType()); player.setPlayerTime(Plot.Time.format(plot.getTime(), player.getWorld().getTime()), false); diff --git a/src/main/java/plugily/projects/buildbattle/handlers/themes/vote/VoteMenu.java b/src/main/java/plugily/projects/buildbattle/handlers/themes/vote/VoteMenu.java index 437e6451..8d62726b 100644 --- a/src/main/java/plugily/projects/buildbattle/handlers/themes/vote/VoteMenu.java +++ b/src/main/java/plugily/projects/buildbattle/handlers/themes/vote/VoteMenu.java @@ -21,7 +21,6 @@ package plugily.projects.buildbattle.handlers.themes.vote; import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; @@ -37,6 +36,7 @@ import plugily.projects.minigamesbox.api.user.IUser; import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder; import plugily.projects.minigamesbox.classic.utils.helper.ItemBuilder; +import plugily.projects.minigamesbox.classic.utils.version.xseries.XEnchantment; import plugily.projects.minigamesbox.classic.utils.version.xseries.XMaterial; import plugily.projects.minigamesbox.inventory.common.item.ClickableItem; import plugily.projects.minigamesbox.inventory.common.item.SimpleClickableItem; @@ -183,7 +183,7 @@ public void updatePlayerGui(Player player, NormalFastInv gui) { ItemBuilder itemBuilder = new ItemBuilder(clickableSignItem.getItem()).removeLore(); itemBuilder.lore(new MessageBuilder("MENU_THEME_ITEM_LORE").asKey().arena(arena).value(theme).integer((int) percent).build().split(";")); if(theme.equals(playerVote)) { - itemBuilder.enchantment(Enchantment.UNBREAKING, 1).flags(ItemFlag.HIDE_ENCHANTS); + itemBuilder.enchantment(XEnchantment.UNBREAKING.get(), 1).flags(ItemFlag.HIDE_ENCHANTS); } else { itemBuilder.removeEnchants().removeFlags(); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 08f9e820..987c3834 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ -name: ${description} +name: BuildBattle main: plugily.projects.buildbattle.Main authors: [ PlugilyProjects, Tigerpanzer_02, Tigerpanzer, Plajer, TomTheDeveloper ] version: ${version}