mirror of
https://github.com/Plugily-Projects/BuildBattle.git
synced 2026-11-04 16:40:09 -05:00
Compare commits
No files matched your search
+31
-1
@@ -10,6 +10,36 @@ deploy webhooks to print changelog successfully
|
||||
|
||||
That's all, matcher will stop when detects next line started with `###` match
|
||||
|
||||
### 5.0.9 Release (09.07.2024)
|
||||
* Updated to minigamesbox 1.3.11
|
||||
* Fixed ChunkManager.sendMapChunk
|
||||
* Fixed error in time change menu
|
||||
* Fixed issue with %player% placeholder (should be lowercase)
|
||||
* Fixed problem in place rewards
|
||||
* Fixed small error if non-player threw projectile.
|
||||
* Added Cancel of BlockExplodeEvent to prevent blocks such as Respawn Anchor explode and damage the arena
|
||||
* Added Disabled enderpearl throwing while in arena because it allows to teleport to other players plots or outside the arena map, even during voting stage.
|
||||
|
||||
### 5.0.8 Release (25.06.2024)
|
||||
* Updated to minigamesbox 1.3.9
|
||||
|
||||
### 5.0.7 Release (18.06.2024)
|
||||
* API update
|
||||
|
||||
### 5.0.6 Release (24.04.2024)
|
||||
* Updated to minigamesbox 1.3.8
|
||||
|
||||
### 5.0.5 Release (15.01.2024)
|
||||
* Updated to minigamesbox 1.3.7
|
||||
|
||||
### 5.0.4 Release (13.01.2024)
|
||||
* Updated to minigamesbox 1.3.6
|
||||
|
||||
### 5.0.3 Release (03.01.2024)
|
||||
* Added new command /bba locale <locale> to set your locale
|
||||
* Fixed GameProfile API 1.20 change
|
||||
* Fixed none kits related plugins issues
|
||||
|
||||
### 5.0.2 Release (31.12.2023)
|
||||
* Fixed gtb round reset on player leave
|
||||
* Fixed gtb "could not pass event AsyncPlayerChatEvent" if spectators ingame
|
||||
@@ -616,4 +646,4 @@ it will have BEDROCK value if absent
|
||||
|
||||
### 3.0.0 Release (14.05.2018 - 01.06.2018)
|
||||
|
||||
* Add everything here
|
||||
* Add everything here
|
||||
@@ -9,7 +9,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Latest Commit
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4.1.3
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
- name: Bump Version
|
||||
@@ -25,11 +25,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Latest Commit
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4.1.3
|
||||
with:
|
||||
ref: 'development'
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v3
|
||||
uses: actions/setup-java@v4.2.1
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Latest Commit
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4.1.3
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
- name: Bump Version
|
||||
@@ -28,11 +28,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Latest Commit
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4.1.3
|
||||
with:
|
||||
ref: 'master'
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v3
|
||||
uses: actions/setup-java@v4.2.1
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
+5
-3
@@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* BuildBattle - Ultimate building competition minigame
|
||||
@@ -38,14 +39,15 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("plugily.projects:MiniGamesBox-Classic:1.3.4") { isTransitive = false }
|
||||
compileOnly("org.spigotmc:spigot-api:1.19.3-R0.1-SNAPSHOT")
|
||||
implementation("plugily.projects:MiniGamesBox-Classic:1.3.11") { isTransitive = false }
|
||||
compileOnly("org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT")
|
||||
compileOnly("io.papermc.paper:paper-api:1.20.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.2"
|
||||
version = "5.0.9"
|
||||
description = "BuildBattle"
|
||||
|
||||
java {
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
|
||||
package plugily.projects.buildbattle;
|
||||
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.bukkit.plugin.java.JavaPluginLoader;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
import plugily.projects.buildbattle.arena.ArenaEvents;
|
||||
import plugily.projects.buildbattle.arena.ArenaManager;
|
||||
@@ -43,8 +41,6 @@ import plugily.projects.minigamesbox.classic.handlers.setup.SetupInventory;
|
||||
import plugily.projects.minigamesbox.classic.handlers.setup.categories.PluginSetupCategoryManager;
|
||||
import plugily.projects.minigamesbox.classic.utils.services.metrics.Metrics;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Created by Tom on 17/08/2015.
|
||||
* Updated by Tigerpanzer_02 on 03.12.2021
|
||||
@@ -66,11 +62,6 @@ public class Main extends PluginMain {
|
||||
super();
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
protected Main(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) {
|
||||
super(loader, description, dataFolder, file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
long start = System.currentTimeMillis();
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ package plugily.projects.buildbattle.api.event.guess;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import plugily.projects.buildbattle.arena.GuessArena;
|
||||
import plugily.projects.buildbattle.handlers.themes.BBTheme;
|
||||
import plugily.projects.minigamesbox.classic.api.event.PlugilyEvent;
|
||||
import plugily.projects.minigamesbox.api.events.PlugilyEvent;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.classic.api.event.PlugilyEvent;
|
||||
import plugily.projects.minigamesbox.api.events.PlugilyEvent;
|
||||
|
||||
public class PlotPlayerChooseEvent extends PlugilyEvent implements Cancellable {
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ package plugily.projects.buildbattle.api.event.plot;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.classic.api.event.PlugilyEvent;
|
||||
import plugily.projects.minigamesbox.api.events.PlugilyEvent;
|
||||
|
||||
/**
|
||||
* @author Plajer
|
||||
|
||||
@@ -23,7 +23,7 @@ package plugily.projects.buildbattle.api.event.plot;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.classic.api.event.PlugilyEvent;
|
||||
import plugily.projects.minigamesbox.api.events.PlugilyEvent;
|
||||
|
||||
/**
|
||||
* @author Plajer
|
||||
|
||||
@@ -43,8 +43,8 @@ import org.bukkit.event.world.StructureGrowEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import plugily.projects.buildbattle.Main;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArenaEvents;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.ServerVersion;
|
||||
@@ -74,7 +74,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(arena == null) {
|
||||
return;
|
||||
}
|
||||
if(arena.getArenaState() != ArenaState.IN_GAME || (arena instanceof BuildArena && arena.getArenaInGameState() == BaseArena.ArenaInGameState.PLOT_VOTING)
|
||||
if(arena.getArenaState() != IArenaState.IN_GAME || (arena instanceof BuildArena && arena.getArenaInGameState() == BaseArena.ArenaInGameState.PLOT_VOTING)
|
||||
|| plugin.getBlacklistManager().getItemList().contains(event.getBlock().getType())) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
@@ -95,7 +95,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(arena == null) {
|
||||
return;
|
||||
}
|
||||
if(arena.getArenaState() != ArenaState.IN_GAME || plugin.getBlacklistManager().getItemList().contains(event.getBlock().getType())
|
||||
if(arena.getArenaState() != IArenaState.IN_GAME || plugin.getBlacklistManager().getItemList().contains(event.getBlock().getType())
|
||||
|| (arena instanceof BuildArena && arena.getArenaInGameState() == BaseArena.ArenaInGameState.PLOT_VOTING)) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
@@ -119,7 +119,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(event.getRightClicked().getType() == EntityType.ITEM_FRAME && ((ItemFrame) event.getRightClicked()).getItem().getType() != Material.AIR) {
|
||||
Location entityLocation = event.getRightClicked().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -146,7 +146,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
|
||||
BaseArena arena = plugin.getArenaRegistry().getArena(event.getPlayer());
|
||||
|
||||
if(arena == null || arena.getArenaState() != ArenaState.IN_GAME) {
|
||||
if(arena == null || arena.getArenaState() != IArenaState.IN_GAME) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
return;
|
||||
}
|
||||
|
||||
if(arena.getArenaState() != ArenaState.IN_GAME || event.getClickedBlock().getType() == XMaterial.ENDER_CHEST.parseMaterial()) {
|
||||
if(arena.getArenaState() != IArenaState.IN_GAME || event.getClickedBlock().getType() == XMaterial.ENDER_CHEST.parseMaterial()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
@@ -215,7 +215,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(vehicle.getType() != EntityType.MINECART) {
|
||||
return;
|
||||
}
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -232,7 +232,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
public void onIgniteEvent(BlockIgniteEvent event) {
|
||||
Location blockLocation = event.getBlock().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -248,7 +248,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
public void onPistonRetractEvent(BlockPistonRetractEvent event) {
|
||||
Location blockLocation = event.getBlock().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -266,7 +266,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
public void onLeavesDecay(LeavesDecayEvent event) {
|
||||
Location blockLocation = event.getBlock().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -301,7 +301,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
int maxMobPerPlot = plugin.getConfig().getInt("Mob.Max-Amount", 20);
|
||||
Location entityLoc = event.getEntity().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -353,7 +353,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(event.getSource().getType() != Material.FIRE)
|
||||
return;
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -373,7 +373,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
public void onDispense(BlockDispenseEvent event) {
|
||||
Location blockLoc = event.getBlock().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -409,7 +409,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
return;
|
||||
}
|
||||
BaseArena arena = plugin.getArenaRegistry().getArena((Player) event.getEntity());
|
||||
if(arena == null || arena.getArenaState() != ArenaState.IN_GAME) {
|
||||
if(arena == null || arena.getArenaState() != IArenaState.IN_GAME) {
|
||||
return;
|
||||
}
|
||||
if(event.getEntity().getType() != EntityType.PLAYER) {
|
||||
@@ -418,13 +418,15 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onDamage(EntityDamageEvent event) {
|
||||
if(event.getEntity().getType() != EntityType.PLAYER) {
|
||||
return;
|
||||
}
|
||||
BaseArena arena = plugin.getArenaRegistry().getArena((Player) event.getEntity());
|
||||
if(arena == null || arena.getArenaState() != ArenaState.IN_GAME) {
|
||||
if(arena == null || arena.getArenaState() != IArenaState.IN_GAME) {
|
||||
return;
|
||||
}
|
||||
event.setCancelled(true);
|
||||
@@ -455,7 +457,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
public void onTNTExplode(EntityExplodeEvent event) {
|
||||
Location entityLocation = event.getEntity().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -468,12 +470,42 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onOtherBlockExplode(BlockExplodeEvent event) {
|
||||
Location blockLocation = event.getBlock().getLocation();
|
||||
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
for(Plot buildPlot : ((BaseArena) arena).getPlotManager().getPlots()) {
|
||||
if(buildPlot.getCuboid() != null && buildPlot.getCuboid().isInWithMarge(blockLocation, 5)) {
|
||||
event.blockList().clear();
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEnderpearlThrow(ProjectileLaunchEvent event) {
|
||||
if(event.getEntity().getShooter() instanceof Player) {
|
||||
BaseArena arena = plugin.getArenaRegistry().getArena((Player) event.getEntity().getShooter());
|
||||
if (arena == null || arena.getArenaState() != IArenaState.IN_GAME) {
|
||||
return;
|
||||
}
|
||||
if (event.getEntity() instanceof EnderPearl) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onWaterFlowEvent(BlockFromToEvent event) {
|
||||
Location toBlock = event.getToBlock().getLocation();
|
||||
Location blockLoc = event.getBlock().getLocation();
|
||||
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -507,7 +539,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
@EventHandler
|
||||
public void onPistonExtendEvent(BlockPistonExtendEvent event) {
|
||||
Location blockLoc = event.getBlock().getLocation();
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(!(arena instanceof BaseArena)) {
|
||||
continue;
|
||||
}
|
||||
@@ -532,15 +564,6 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClose(InventoryCloseEvent event) {
|
||||
Player player = (Player) event.getPlayer();
|
||||
BaseArena baseArena = plugin.getArenaRegistry().getArena(player);
|
||||
if(baseArena != null && baseArena.getArenaInGameState() == BaseArena.ArenaInGameState.BUILD_TIME) {
|
||||
baseArena.addMenuItem(player);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onItemMove(InventoryClickEvent event) {
|
||||
HumanEntity humanEntity = event.getWhoClicked();
|
||||
@@ -548,7 +571,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(humanEntity instanceof Player) {
|
||||
BaseArena baseArena = plugin.getArenaRegistry().getArena((Player) humanEntity);
|
||||
|
||||
if(baseArena != null && baseArena.getArenaState() != ArenaState.IN_GAME) {
|
||||
if(baseArena != null && baseArena.getArenaState() != IArenaState.IN_GAME) {
|
||||
if(event.getClickedInventory() == humanEntity.getInventory()) {
|
||||
if(event.getView().getType() == InventoryType.CRAFTING
|
||||
|| event.getView().getType() == InventoryType.PLAYER) {
|
||||
@@ -566,7 +589,7 @@ public class ArenaEvents extends PluginArenaEvents {
|
||||
if(!(arena instanceof GuessArena)) {
|
||||
return;
|
||||
}
|
||||
if(arena.getArenaState() != ArenaState.IN_GAME) {
|
||||
if(arena.getArenaState() != IArenaState.IN_GAME) {
|
||||
return;
|
||||
}
|
||||
if(arena.getSpectators().contains(player)) {
|
||||
|
||||
@@ -24,7 +24,9 @@ import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import plugily.projects.buildbattle.Main;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.api.user.IUser;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArenaManager;
|
||||
import plugily.projects.minigamesbox.classic.user.User;
|
||||
@@ -45,7 +47,7 @@ public class ArenaManager extends PluginArenaManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void additionalPartyJoin(Player player, PluginArena arena, Player partyLeader) {
|
||||
public void additionalPartyJoin(Player player, IPluginArena arena, Player partyLeader) {
|
||||
BaseArena pluginArena = plugin.getArenaRegistry().getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return;
|
||||
@@ -67,13 +69,13 @@ public class ArenaManager extends PluginArenaManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void leaveAttempt(@NotNull Player player, @NotNull PluginArena arena) {
|
||||
public void leaveAttempt(@NotNull Player player, @NotNull IPluginArena arena) {
|
||||
BaseArena pluginArena = plugin.getArenaRegistry().getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return;
|
||||
}
|
||||
super.leaveAttempt(player, arena);
|
||||
User user = plugin.getUserManager().getUser(player);
|
||||
IUser user = plugin.getUserManager().getUser(player);
|
||||
user.setStatistic("LOCAL_POINTS", 0);
|
||||
user.setStatistic("LOCAL_POINTS_GTB", 0);
|
||||
Plot plot = pluginArena.getPlotManager().getPlot(player);
|
||||
@@ -91,7 +93,7 @@ public class ArenaManager extends PluginArenaManager {
|
||||
((GuessArena) arena).getWhoGuessed().remove(player);
|
||||
if(guessArena.getCurrentBuilders().contains(player)) {
|
||||
if(plot.getMembers().isEmpty()) {
|
||||
if(arena.getArenaState() == ArenaState.IN_GAME) {
|
||||
if(arena.getArenaState() == IArenaState.IN_GAME) {
|
||||
//ToDo message force skipped
|
||||
pluginArena.setTimer(plugin.getConfig().getInt("Time-Manager." + pluginArena.getArenaType().getPrefix() + ".Round-Delay"), true);
|
||||
pluginArena.setArenaInGameState(BaseArena.ArenaInGameState.PLOT_VOTING);
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import plugily.projects.buildbattle.Main;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArenaRegistry;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
@@ -156,7 +157,7 @@ public class ArenaRegistry extends PluginArenaRegistry {
|
||||
|
||||
@Override
|
||||
public @Nullable BaseArena getArena(Player player) {
|
||||
PluginArena pluginArena = super.getArena(player);
|
||||
IPluginArena pluginArena = super.getArena(player);
|
||||
if(pluginArena instanceof BaseArena) {
|
||||
return (BaseArena) pluginArena;
|
||||
}
|
||||
@@ -165,7 +166,7 @@ public class ArenaRegistry extends PluginArenaRegistry {
|
||||
|
||||
@Override
|
||||
public @Nullable BaseArena getArena(String id) {
|
||||
PluginArena pluginArena = super.getArena(id);
|
||||
IPluginArena pluginArena = super.getArena(id);
|
||||
if(pluginArena instanceof BaseArena) {
|
||||
return (BaseArena) pluginArena;
|
||||
}
|
||||
@@ -174,7 +175,7 @@ public class ArenaRegistry extends PluginArenaRegistry {
|
||||
|
||||
public @NotNull List<BaseArena> getPluginArenas() {
|
||||
List<BaseArena> baseArenas = new ArrayList<>(super.getArenas().size());
|
||||
for(PluginArena pluginArena : super.getArenas()) {
|
||||
for(IPluginArena pluginArena : super.getArenas()) {
|
||||
if(pluginArena instanceof BaseArena) {
|
||||
baseArenas.add((BaseArena) pluginArena);
|
||||
}
|
||||
|
||||
@@ -217,33 +217,6 @@ public class BaseArena extends PluginArena {
|
||||
}
|
||||
}
|
||||
|
||||
HandlerItem optionsMenuItem;
|
||||
|
||||
private HandlerItem getMenuItem() {
|
||||
if(optionsMenuItem == null) {
|
||||
HandlerItem optionsMenu = new HandlerItem(getPlugin().getOptionsRegistry().getMenuItem());
|
||||
optionsMenu.setLeftClick(true);
|
||||
optionsMenu.setRightClick(true);
|
||||
optionsMenu.addInteractHandler(event -> {
|
||||
event.setCancelled(true);
|
||||
getPlugin().getOptionsRegistry().getOptionsGui().open(event.getPlayer());
|
||||
});
|
||||
optionsMenu.addInventoryClickHandler(event -> {
|
||||
getPlugin().getOptionsRegistry().getOptionsGui().open(event.getWhoClicked());
|
||||
});
|
||||
optionsMenuItem = optionsMenu.build();
|
||||
}
|
||||
return optionsMenuItem;
|
||||
}
|
||||
|
||||
public void addMenuItem(Player player) {
|
||||
if(player.getInventory().contains(getMenuItem().getItemStack())) {
|
||||
return;
|
||||
}
|
||||
player.getInventory().setItem(8, getMenuItem().getItemStack());
|
||||
}
|
||||
|
||||
|
||||
public PlotManager getPlotManager() {
|
||||
return plotManager;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import plugily.projects.buildbattle.arena.states.build.InGameState;
|
||||
import plugily.projects.buildbattle.arena.states.build.StartingState;
|
||||
import plugily.projects.buildbattle.handlers.themes.vote.VoteMenu;
|
||||
import plugily.projects.buildbattle.handlers.themes.vote.VotePoll;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -44,8 +44,8 @@ public class BuildArena extends BaseArena {
|
||||
public BuildArena(String id) {
|
||||
super(id);
|
||||
setArenaType(ArenaType.SOLO);
|
||||
addGameStateHandler(ArenaState.IN_GAME, new InGameState());
|
||||
addGameStateHandler(ArenaState.STARTING, new StartingState());
|
||||
addGameStateHandler(IArenaState.IN_GAME, new InGameState());
|
||||
addGameStateHandler(IArenaState.STARTING, new StartingState());
|
||||
getPlugin().getDebugger().debug("Init Arena {0} with ArenaType {1}", getId(), getArenaType());
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.buildbattle.arena.states.guess.InGameState;
|
||||
import plugily.projects.buildbattle.arena.states.guess.StartingState;
|
||||
import plugily.projects.buildbattle.handlers.themes.BBTheme;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
|
||||
|
||||
@@ -60,8 +60,8 @@ public class GuessArena extends BaseArena {
|
||||
public GuessArena(String id) {
|
||||
super(id);
|
||||
setArenaType(ArenaType.GUESS_THE_BUILD);
|
||||
addGameStateHandler(ArenaState.IN_GAME, new InGameState());
|
||||
addGameStateHandler(ArenaState.STARTING, new StartingState());
|
||||
addGameStateHandler(IArenaState.IN_GAME, new InGameState());
|
||||
addGameStateHandler(IArenaState.STARTING, new StartingState());
|
||||
getPlugin().getDebugger().debug("Init Arena {0} with ArenaType {1}", getId(), getArenaType());
|
||||
}
|
||||
|
||||
|
||||
@@ -23,11 +23,11 @@ package plugily.projects.buildbattle.arena.managers;
|
||||
import org.bukkit.entity.Player;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.GuessArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.api.user.IUser;
|
||||
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.user.User;
|
||||
import plugily.projects.minigamesbox.classic.utils.scoreboard.common.EntryBuilder;
|
||||
import plugily.projects.minigamesbox.classic.utils.scoreboard.type.Entry;
|
||||
|
||||
@@ -47,31 +47,39 @@ public class ScoreboardManager extends PluginScoreboardManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Entry> formatScoreboard(User user) {
|
||||
public List<Entry> formatScoreboard(IUser user) {
|
||||
EntryBuilder builder = new EntryBuilder();
|
||||
List<String> lines;
|
||||
PluginArena userArena = user.getArena();
|
||||
IPluginArena userArena = user.getArena();
|
||||
|
||||
if(userArena.getArenaState() == ArenaState.FULL_GAME) {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content.Starting");
|
||||
} else if(userArena.getArenaState() == ArenaState.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" : ""));
|
||||
} else {
|
||||
if(userArena.getArenaOption("PLOT_MEMBER_SIZE") <= 1) {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Classic");
|
||||
switch (userArena.getArenaState()) {
|
||||
case FULL_GAME: {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content.Starting");
|
||||
break;
|
||||
}
|
||||
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" : ""));
|
||||
} else {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Teams");
|
||||
if(userArena.getArenaOption("PLOT_MEMBER_SIZE") <= 1) {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Classic");
|
||||
} else {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Teams");
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else if(userArena.getArenaState() == ArenaState.ENDING) {
|
||||
if(userArena instanceof GuessArena) {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Guess-The-Build");
|
||||
} else {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Classic");
|
||||
case ENDING: {
|
||||
if(userArena instanceof GuessArena) {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Guess-The-Build");
|
||||
} else {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName() + ".Classic");
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName());
|
||||
}
|
||||
} else {
|
||||
lines = userArena.getPlugin().getLanguageManager().getLanguageList("Scoreboard.Content." + userArena.getArenaState().getFormattedName());
|
||||
}
|
||||
|
||||
Player player = user.getPlayer();
|
||||
|
||||
@@ -26,9 +26,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import plugily.projects.buildbattle.api.event.plot.PlotPlayerReceiveEvent;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.classic.utils.dimensional.Cuboid;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.ServerVersion;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -121,7 +119,7 @@ public class PlotManager {
|
||||
Bukkit.getScheduler().runTaskLater(arena.getPlugin(), () -> {
|
||||
player.setAllowFlight(true);
|
||||
player.setFlying(true);
|
||||
}, 40);
|
||||
}, 2);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.BuildArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.buildbattle.arena.vote.VoteItems;
|
||||
import plugily.projects.minigamesbox.api.user.IUser;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.states.PluginInGameState;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.TitleBuilder;
|
||||
import plugily.projects.minigamesbox.classic.user.User;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -65,7 +65,6 @@ public class InGameState extends PluginInGameState {
|
||||
|
||||
for(Player player : pluginArena.getPlayers()) {
|
||||
player.closeInventory();
|
||||
pluginArena.addMenuItem(player);
|
||||
player.setGameMode(GameMode.CREATIVE);
|
||||
}
|
||||
} else {
|
||||
@@ -77,7 +76,7 @@ public class InGameState extends PluginInGameState {
|
||||
handleBuildTime(pluginArena);
|
||||
if(arena.getTimer() <= 0) {
|
||||
for(Player player : pluginArena.getPlayersLeft()) {
|
||||
User user = getPlugin().getUserManager().getUser(player);
|
||||
IUser user = getPlugin().getUserManager().getUser(player);
|
||||
|
||||
if(user.isSpectator()) continue;
|
||||
|
||||
@@ -103,8 +102,8 @@ public class InGameState extends PluginInGameState {
|
||||
adjustStatistics(pluginArena);
|
||||
|
||||
pluginArena.teleportToWinnerPlot();
|
||||
pluginArena.executeEndRewards();
|
||||
getPlugin().getArenaManager().stopGame(false, arena);
|
||||
pluginArena.executeEndRewards();
|
||||
} else {
|
||||
voteForNextPlot(pluginArena);
|
||||
}
|
||||
@@ -139,7 +138,7 @@ public class InGameState extends PluginInGameState {
|
||||
new TitleBuilder("IN_GAME_MESSAGES_PLOT_VOTING_PLOT_OWNER_TITLE").asKey().arena(pluginArena).player(player).value(formattedMembers).sendArena();
|
||||
}
|
||||
|
||||
User user = getPlugin().getUserManager().getUser(player);
|
||||
IUser user = getPlugin().getUserManager().getUser(player);
|
||||
int points = user.getStatistic("LOCAL_POINTS");
|
||||
|
||||
//no vote made, in this case make it a good vote
|
||||
@@ -161,7 +160,7 @@ public class InGameState extends PluginInGameState {
|
||||
private void adjustStatistics(BuildArena pluginArena) {
|
||||
for(Plot plot : pluginArena.getPlotManager().getTopPlotsOrder()) {
|
||||
plot.getMembers().forEach(player -> {
|
||||
User user = getPlugin().getUserManager().getUser(player);
|
||||
IUser user = getPlugin().getUserManager().getUser(player);
|
||||
if(plot.getPoints() > user.getStatistic("POINTS_HIGHEST")) {
|
||||
user.setStatistic("POINTS_HIGHEST", plot.getPoints());
|
||||
}
|
||||
@@ -207,7 +206,7 @@ public class InGameState extends PluginInGameState {
|
||||
if(votingPlot.getPoints() == 0) {
|
||||
List<Plot> plotsVoted = new ArrayList<>();
|
||||
for(Player player : pluginArena.getPlayersLeft()) {
|
||||
User user = getPlugin().getUserManager().getUser(player);
|
||||
IUser user = getPlugin().getUserManager().getUser(player);
|
||||
Plot plot = pluginArena.getPlotFromPlayer(player);
|
||||
if(!votingPlot.getMembers().contains(player)) {
|
||||
if(!plotsVoted.contains(plot)) {
|
||||
|
||||
@@ -30,11 +30,11 @@ import plugily.projects.buildbattle.arena.GuessArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.buildbattle.handlers.themes.BBTheme;
|
||||
import plugily.projects.buildbattle.handlers.themes.ThemeManager;
|
||||
import plugily.projects.minigamesbox.api.user.IUser;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.classic.arena.states.PluginInGameState;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.TitleBuilder;
|
||||
import plugily.projects.minigamesbox.classic.user.User;
|
||||
import plugily.projects.minigamesbox.classic.utils.actionbar.ActionBar;
|
||||
import plugily.projects.minigamesbox.classic.utils.helper.ItemBuilder;
|
||||
import plugily.projects.minigamesbox.inventory.common.item.SimpleClickableItem;
|
||||
@@ -72,7 +72,6 @@ public class InGameState extends PluginInGameState {
|
||||
new TitleBuilder("IN_GAME_MESSAGES_PLOT_GTB_THEME_GUESS_TITLE").asKey().arena(pluginArena).sendArena();
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(getPlugin(), () -> pluginArena.getCurrentBuilders().forEach(player -> player.setGameMode(GameMode.CREATIVE)), 40);
|
||||
pluginArena.getCurrentBuilders().forEach(pluginArena::addMenuItem);
|
||||
|
||||
setArenaTimer(getPlugin().getConfig().getInt("Time-Manager." + pluginArena.getArenaType().getPrefix() + ".In-Game"));
|
||||
pluginArena.setArenaInGameState(BaseArena.ArenaInGameState.BUILD_TIME);
|
||||
@@ -265,7 +264,7 @@ public class InGameState extends PluginInGameState {
|
||||
private void adjustStatistics(GuessArena pluginArena) {
|
||||
for(Plot plot : pluginArena.getPlotManager().getTopPlotsOrder()) {
|
||||
plot.getMembers().forEach(player -> {
|
||||
User user = getPlugin().getUserManager().getUser(player);
|
||||
IUser user = getPlugin().getUserManager().getUser(player);
|
||||
/*
|
||||
//ToDo GTB stats
|
||||
if(plot.getPoints() > user.getStatistic("POINTS_HIGHEST")) {
|
||||
|
||||
@@ -28,9 +28,9 @@ import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.BuildArena;
|
||||
import plugily.projects.buildbattle.arena.GuessArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.api.user.IUser;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.user.User;
|
||||
import plugily.projects.minigamesbox.classic.utils.misc.complement.ComplementAccessor;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.events.api.PlugilyPlayerInteractEvent;
|
||||
@@ -60,7 +60,7 @@ public class VoteEvents implements Listener {
|
||||
}
|
||||
|
||||
BaseArena arena = plugin.getArenaRegistry().getArena(event.getPlayer());
|
||||
if(arena == null || arena.getArenaState() != ArenaState.IN_GAME || arena instanceof GuessArena) {
|
||||
if(arena == null || arena.getArenaState() != IArenaState.IN_GAME || arena instanceof GuessArena) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ public class VoteEvents implements Listener {
|
||||
Plot plot = solo.getVotingPlot();
|
||||
|
||||
if(plugin.getVoteItems().getReportItem().equals(event.getItem())) {
|
||||
User user = plugin.getUserManager().getUser(event.getPlayer());
|
||||
IUser user = plugin.getUserManager().getUser(event.getPlayer());
|
||||
|
||||
user.adjustStatistic("REPORTS_TRIGGERED", 1);
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
package plugily.projects.buildbattle.boot;
|
||||
|
||||
import plugily.projects.buildbattle.Main;
|
||||
import plugily.projects.minigamesbox.api.preferences.IConfigPreferences;
|
||||
import plugily.projects.minigamesbox.classic.api.StatisticType;
|
||||
import plugily.projects.minigamesbox.classic.api.StatsStorage;
|
||||
import plugily.projects.minigamesbox.classic.arena.options.ArenaOption;
|
||||
@@ -31,7 +32,6 @@ import plugily.projects.minigamesbox.classic.handlers.permissions.PermissionsMan
|
||||
import plugily.projects.minigamesbox.classic.handlers.reward.RewardType;
|
||||
import plugily.projects.minigamesbox.classic.handlers.reward.RewardsFactory;
|
||||
import plugily.projects.minigamesbox.classic.preferences.ConfigOption;
|
||||
import plugily.projects.minigamesbox.classic.preferences.ConfigPreferences;
|
||||
|
||||
/**
|
||||
* @author Tigerpanzer_02
|
||||
@@ -53,13 +53,14 @@ public class AdditionalValueInitializer {
|
||||
}
|
||||
|
||||
private void registerConfigOptions() {
|
||||
ConfigPreferences configPreferences = plugin.getConfigPreferences();
|
||||
IConfigPreferences configPreferences = plugin.getConfigPreferences();
|
||||
|
||||
configPreferences.registerOption("MOB_SPAWN", new ConfigOption("Mob.Spawn", false));
|
||||
configPreferences.registerOption("HEAD_MENU_CUSTOM", new ConfigOption("Head-Menu.Custom", false));
|
||||
configPreferences.registerOption("REPORT_COMMANDS", new ConfigOption("Report.Commands", false));
|
||||
configPreferences.registerOption("PLOT_HIDE_OWNER", new ConfigOption("Plot.Hide-Owner", false));
|
||||
configPreferences.registerOption("PLOT_MOVE_OUTSIDE", new ConfigOption("Plot.Move-Outside", false));
|
||||
configPreferences.registerOption("SUPER_VOTES", new ConfigOption("Super-Votes", true));
|
||||
}
|
||||
|
||||
private void registerStatistics() {
|
||||
@@ -92,7 +93,7 @@ public class AdditionalValueInitializer {
|
||||
rewardsFactory.registerRewardType("VOTE", new RewardType("voted"));
|
||||
rewardsFactory.registerRewardType("VOTE_ALL", new RewardType("voted-all"));
|
||||
rewardsFactory.registerRewardType("REPORT", new RewardType("report"));
|
||||
rewardsFactory.registerRewardType("PLACE", new RewardType("place"));
|
||||
rewardsFactory.registerRewardType("PLACE", new RewardType("place", RewardType.ExecutorType.NUMBER, false));
|
||||
}
|
||||
|
||||
private void registerSpecialItems() {
|
||||
|
||||
@@ -29,8 +29,8 @@ import plugily.projects.buildbattle.arena.BuildArena;
|
||||
import plugily.projects.buildbattle.arena.GuessArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.buildbattle.handlers.themes.BBTheme;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.handlers.placeholder.Placeholder;
|
||||
import plugily.projects.minigamesbox.classic.handlers.placeholder.PlaceholderManager;
|
||||
@@ -58,17 +58,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("theme", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getTheme(player, arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getTheme(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getTheme(PluginArena arena) {
|
||||
private String getTheme(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -81,7 +81,7 @@ public class PlaceholderInitializer {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getTheme(Player player, PluginArena arena) {
|
||||
private String getTheme(Player player, IPluginArena arena) {
|
||||
String theme = getTheme(arena);
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
@@ -102,17 +102,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("difficulty", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getTheme(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getTheme(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getTheme(PluginArena arena) {
|
||||
private String getTheme(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena instanceof GuessArena) {
|
||||
BBTheme theme = ((GuessArena) pluginArena).getCurrentBBTheme();
|
||||
@@ -127,17 +127,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("difficulty_points_reward", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getTheme(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getTheme(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getTheme(PluginArena arena) {
|
||||
private String getTheme(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena instanceof GuessArena) {
|
||||
BBTheme theme = ((GuessArena) pluginArena).getCurrentBBTheme();
|
||||
@@ -152,17 +152,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("builder", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getBuilder(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getBuilder(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getBuilder(PluginArena arena) {
|
||||
private String getBuilder(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(!(pluginArena instanceof GuessArena)) {
|
||||
return null;
|
||||
@@ -176,17 +176,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("type", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getType(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getType(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getType(PluginArena arena) {
|
||||
private String getType(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -196,17 +196,17 @@ public class PlaceholderInitializer {
|
||||
});
|
||||
placeholderManager.registerPlaceholder(new Placeholder("type_pretty", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getType(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getType(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getType(PluginArena arena) {
|
||||
private String getType(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -218,22 +218,22 @@ public class PlaceholderInitializer {
|
||||
final int number = i;
|
||||
placeholderManager.registerPlaceholder(new Placeholder("place_member_" + number, Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getPlace(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getPlace(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getPlace(PluginArena arena) {
|
||||
private String getPlace(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
}
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != ArenaState.ENDING) {
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != IArenaState.ENDING) {
|
||||
return "???";
|
||||
}
|
||||
List<Plot> plotRanking = pluginArena.getPlotManager().getTopPlotsOrder();
|
||||
@@ -249,22 +249,22 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("place_points_" + number, Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getPlace(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getPlace(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getPlace(PluginArena arena) {
|
||||
private String getPlace(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
}
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != ArenaState.ENDING) {
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != IArenaState.ENDING) {
|
||||
return "???";
|
||||
}
|
||||
List<Plot> plotRanking = pluginArena.getPlotManager().getTopPlotsOrder();
|
||||
@@ -277,17 +277,17 @@ public class PlaceholderInitializer {
|
||||
}
|
||||
placeholderManager.registerPlaceholder(new Placeholder("ingame_state", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getState(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getState(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getState(PluginArena arena) {
|
||||
private String getState(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -301,17 +301,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("ingame_state_pretty", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getState(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getState(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getState(PluginArena arena) {
|
||||
private String getState(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -326,12 +326,12 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("teammates", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getMembers(player, arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getMembers(Player player, PluginArena arena) {
|
||||
private String getMembers(Player player, IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -355,12 +355,12 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("summary_player", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getSummary(arena, player);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getSummary(PluginArena arena, Player player) {
|
||||
private String getSummary(IPluginArena arena, Player player) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -375,17 +375,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("summary_place_own", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getSummary(arena, player);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getSummary(PluginArena arena, Player player) {
|
||||
private String getSummary(IPluginArena arena, Player player) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
}
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != ArenaState.ENDING) {
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != IArenaState.ENDING) {
|
||||
return null;
|
||||
}
|
||||
List<Plot> plotRanking = pluginArena.getPlotManager().getTopPlotsOrder();
|
||||
@@ -404,17 +404,17 @@ public class PlaceholderInitializer {
|
||||
|
||||
placeholderManager.registerPlaceholder(new Placeholder("summary", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getSummary(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getSummary(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getSummary(PluginArena arena) {
|
||||
private String getSummary(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
@@ -428,22 +428,22 @@ public class PlaceholderInitializer {
|
||||
});
|
||||
placeholderManager.registerPlaceholder(new Placeholder("summary_place_list", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getSummary(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getSummary(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getSummary(PluginArena arena) {
|
||||
private String getSummary(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
}
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != ArenaState.ENDING) {
|
||||
if(pluginArena.getArenaInGameState() != BaseArena.ArenaInGameState.PLOT_VOTING && pluginArena.getArenaState() != IArenaState.ENDING) {
|
||||
return null;
|
||||
}
|
||||
int places = pluginArena.getPlotManager().getTopPlotsOrder().size();
|
||||
@@ -460,17 +460,17 @@ public class PlaceholderInitializer {
|
||||
});
|
||||
placeholderManager.registerPlaceholder(new Placeholder("gtb_rounds", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.ALL) {
|
||||
@Override
|
||||
public String getValue(Player player, PluginArena arena) {
|
||||
public String getValue(Player player, IPluginArena arena) {
|
||||
return getSummary(arena);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(PluginArena arena) {
|
||||
public String getValue(IPluginArena arena) {
|
||||
return getSummary(arena);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getSummary(PluginArena arena) {
|
||||
private String getSummary(IPluginArena arena) {
|
||||
BaseArena pluginArena = arenaRegistry.getArena(arena.getId());
|
||||
if(pluginArena == null) {
|
||||
return null;
|
||||
|
||||
+4
-2
@@ -30,7 +30,8 @@ import plugily.projects.buildbattle.commands.arguments.admin.plot.AddPlotArgumen
|
||||
import plugily.projects.buildbattle.commands.arguments.admin.plot.RemovePlotArgument;
|
||||
import plugily.projects.buildbattle.commands.arguments.admin.plot.SelectPlotArgument;
|
||||
import plugily.projects.buildbattle.commands.arguments.game.GuessArgument;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.buildbattle.commands.arguments.game.MenuArgument;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.classic.commands.arguments.PluginArgumentsRegistry;
|
||||
|
||||
import java.util.List;
|
||||
@@ -50,12 +51,13 @@ public class ArgumentsRegistry extends PluginArgumentsRegistry {
|
||||
new AddPlotArgument(this);
|
||||
new RemovePlotArgument(this);
|
||||
new SelectPlotArgument(this);
|
||||
new MenuArgument(this);
|
||||
new GuessArgument(this);
|
||||
new ThemeArgument(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PluginArena> getSpecificFilteredArenas(List<PluginArena> arenas, String filter) {
|
||||
public List<IPluginArena> getSpecificFilteredArenas(List<IPluginArena> arenas, String filter) {
|
||||
switch(filter.toLowerCase(Locale.ENGLISH)) {
|
||||
case "gtb":
|
||||
case "guessthebuild":
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.commands.arguments.ArgumentsRegistry;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.classic.commands.arguments.data.CommandArgument;
|
||||
|
||||
/**
|
||||
@@ -41,7 +41,7 @@ public class SelectPlotArgument {
|
||||
Player player = (Player) sender;
|
||||
BaseArena arena = (BaseArena) registry.getPlugin().getArenaRegistry().getArena(player);
|
||||
|
||||
if(arena != null && (arena.getArenaState() == ArenaState.WAITING_FOR_PLAYERS || arena.getArenaState() == ArenaState.STARTING))
|
||||
if(arena != null && (arena.getArenaState() == IArenaState.WAITING_FOR_PLAYERS || arena.getArenaState() == IArenaState.STARTING))
|
||||
arena.getPlugin().getPlotMenuHandler().createMenu(player, arena);
|
||||
}
|
||||
});
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@ import org.bukkit.entity.Player;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.GuessArena;
|
||||
import plugily.projects.buildbattle.commands.arguments.ArgumentsRegistry;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.classic.commands.arguments.data.CommandArgument;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class GuessArgument {
|
||||
Player player = (Player) sender;
|
||||
BaseArena arena = (BaseArena) registry.getPlugin().getArenaRegistry().getArena(player);
|
||||
|
||||
if(!(arena instanceof GuessArena) || arena.getArenaState() != ArenaState.IN_GAME) {
|
||||
if(!(arena instanceof GuessArena) || arena.getArenaState() != IArenaState.IN_GAME) {
|
||||
new MessageBuilder("COMMANDS_NOT_PLAYING").asKey().player(player).sendPlayer();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
*
|
||||
* BuildBattle - Ultimate building competition minigame
|
||||
* Copyright (C) 2022 Plugily Projects - maintained by Tigerpanzer_02 and contributors
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
package plugily.projects.buildbattle.commands.arguments.game;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.commands.arguments.ArgumentsRegistry;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.classic.commands.arguments.data.CommandArgument;
|
||||
|
||||
/**
|
||||
* @author Tigerpanzer_02
|
||||
* <p>
|
||||
* Created at 27.12.2020
|
||||
*/
|
||||
public class MenuArgument {
|
||||
|
||||
public MenuArgument(ArgumentsRegistry registry) {
|
||||
registry.mapArgument("buildbattle", new CommandArgument("menu", "", CommandArgument.ExecutorType.PLAYER) {
|
||||
@Override
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
Player player = (Player) sender;
|
||||
BaseArena arena = (BaseArena) registry.getPlugin().getArenaRegistry().getArena(player);
|
||||
|
||||
if(arena != null && (arena.getArenaState() == IArenaState.IN_GAME))
|
||||
arena.getPlugin().getOptionsRegistry().getOptionsGui().open(player);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
+2
-1
@@ -67,8 +67,9 @@ public class TimeChangeOption {
|
||||
return;
|
||||
}
|
||||
|
||||
gui.addItem(new ItemBuilder(XMaterial.CLOCK.parseItem()).name(new MessageBuilder("MENU_OPTION_CONTENT_TIME_TYPE_WORLD").asKey().build()).lore(plot.getTime().name()).build());
|
||||
//gui.addItem(new ItemBuilder(XMaterial.CLOCK.parseItem()).name(new MessageBuilder("MENU_OPTION_CONTENT_TIME_TYPE_WORLD").asKey().build()).lore(plot.getTime().name()).build());
|
||||
|
||||
addClockItem(gui, plot, "MENU_OPTION_CONTENT_TIME_TYPE_WORLD");
|
||||
addClockItem(gui, plot, "MENU_OPTION_CONTENT_TIME_TYPE_DAY");
|
||||
addClockItem(gui, plot, "MENU_OPTION_CONTENT_TIME_TYPE_NOON");
|
||||
addClockItem(gui, plot, "MENU_OPTION_CONTENT_TIME_TYPE_SUNSET");
|
||||
|
||||
+2
-1
@@ -25,6 +25,7 @@ import org.bukkit.Location;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.managers.plots.Plot;
|
||||
import plugily.projects.minigamesbox.api.arena.IPluginArena;
|
||||
import plugily.projects.minigamesbox.classic.PluginMain;
|
||||
import plugily.projects.minigamesbox.classic.arena.PluginArena;
|
||||
import plugily.projects.minigamesbox.classic.utils.version.VersionUtils;
|
||||
@@ -55,7 +56,7 @@ public class ParticleRefreshScheduler {
|
||||
final int particleAmount = amountParticle;
|
||||
|
||||
task = Bukkit.getScheduler().runTaskTimer(plugin, () -> {
|
||||
for(PluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
for(IPluginArena arena : plugin.getArenaRegistry().getArenas()) {
|
||||
if(arena instanceof BaseArena && !arena.getPlayers().isEmpty()) {
|
||||
for(Plot buildPlot : ((BaseArena) arena).getPlotManager().getPlots()) {
|
||||
if(!buildPlot.getMembers().isEmpty()) {
|
||||
|
||||
@@ -37,26 +37,20 @@ public class ChunkManager {
|
||||
|
||||
private static Class<?> packetPlayOutMapChunk, chunkClass;
|
||||
private static Constructor<?> mapChunkConstructor;
|
||||
private static Method chunkHandleMethod;
|
||||
|
||||
static {
|
||||
if(ServerVersion.Version.isCurrentLower(ServerVersion.Version.v1_18_R1)) {
|
||||
if (ServerVersion.Version.isCurrentLower(ServerVersion.Version.v1_18_R1)) {
|
||||
packetPlayOutMapChunk = PacketUtils.classByName("net.minecraft.network.protocol.game", "PacketPlayOutMapChunk");
|
||||
chunkClass = PacketUtils.classByName("net.minecraft.world.level.chunk", "Chunk");
|
||||
|
||||
try {
|
||||
chunkHandleMethod = Chunk.class.getMethod("getHandle");
|
||||
} catch(NoSuchMethodException exc) {
|
||||
}
|
||||
|
||||
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_17_R1)) {
|
||||
if (ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_17_R1)) {
|
||||
try {
|
||||
mapChunkConstructor = packetPlayOutMapChunk.getConstructor(PacketUtils.classByName("net.minecraft.world.level.chunk", "LevelChunk"));
|
||||
} catch(NoSuchMethodException e) {
|
||||
} catch (NoSuchMethodException e) {
|
||||
try {
|
||||
mapChunkConstructor = packetPlayOutMapChunk.getConstructor(chunkClass);
|
||||
} catch(NoSuchMethodException ex) {
|
||||
ex.printStackTrace();
|
||||
} catch (NoSuchMethodException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -64,38 +58,39 @@ public class ChunkManager {
|
||||
}
|
||||
|
||||
public static void sendMapChunk(Player player, Chunk chunk) {
|
||||
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_18_R1)) {
|
||||
if (ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_18_R1)) {
|
||||
return; // Should just use World#refreshChunk instead
|
||||
}
|
||||
|
||||
try {
|
||||
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_17_R1)) {
|
||||
Method chunkHandleMethod = chunk.getClass().getMethod("getHandle");
|
||||
if (ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_17_R1)) {
|
||||
PacketUtils.sendPacket(player, mapChunkConstructor.newInstance(chunkHandleMethod.invoke(chunk)));
|
||||
return;
|
||||
}
|
||||
|
||||
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_16_R1)) {
|
||||
if(mapChunkConstructor == null)
|
||||
if (ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_16_R1)) {
|
||||
if (mapChunkConstructor == null)
|
||||
mapChunkConstructor = packetPlayOutMapChunk.getConstructor(chunkClass, int.class, boolean.class);
|
||||
|
||||
PacketUtils.sendPacket(player, mapChunkConstructor.newInstance(chunkHandleMethod.invoke(chunk), 65535, false));
|
||||
return;
|
||||
}
|
||||
|
||||
if(ServerVersion.Version.isCurrentEqualOrLower(ServerVersion.Version.v1_10_R2)) {
|
||||
if(mapChunkConstructor == null)
|
||||
if (ServerVersion.Version.isCurrentEqualOrLower(ServerVersion.Version.v1_10_R2)) {
|
||||
if (mapChunkConstructor == null)
|
||||
mapChunkConstructor = packetPlayOutMapChunk.getConstructor(chunkClass, boolean.class, int.class);
|
||||
|
||||
PacketUtils.sendPacket(player, mapChunkConstructor.newInstance(chunkHandleMethod.invoke(chunk), true, 65535));
|
||||
return;
|
||||
}
|
||||
|
||||
if(mapChunkConstructor == null)
|
||||
if (mapChunkConstructor == null)
|
||||
mapChunkConstructor = packetPlayOutMapChunk.getConstructor(chunkClass, int.class);
|
||||
|
||||
PacketUtils.sendPacket(player, mapChunkConstructor.newInstance(chunkHandleMethod.invoke(chunk), 65535));
|
||||
} catch(ReflectiveOperationException exception) {
|
||||
exception.printStackTrace();
|
||||
} catch (ReflectiveOperationException exception) {
|
||||
throw new RuntimeException(exception);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,21 +33,16 @@ import plugily.projects.buildbattle.Main;
|
||||
import plugily.projects.buildbattle.arena.BaseArena;
|
||||
import plugily.projects.buildbattle.arena.BuildArena;
|
||||
import plugily.projects.buildbattle.handlers.themes.ThemeManager;
|
||||
import plugily.projects.minigamesbox.classic.arena.ArenaState;
|
||||
import plugily.projects.minigamesbox.api.arena.IArenaState;
|
||||
import plugily.projects.minigamesbox.api.user.IUser;
|
||||
import plugily.projects.minigamesbox.classic.handlers.language.MessageBuilder;
|
||||
import plugily.projects.minigamesbox.classic.user.User;
|
||||
import plugily.projects.minigamesbox.classic.utils.helper.ItemBuilder;
|
||||
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;
|
||||
import plugily.projects.minigamesbox.inventory.normal.NormalFastInv;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
@@ -102,7 +97,7 @@ public class VoteMenu {
|
||||
NormalFastInv gui = new NormalFastInv(9 * themeSelection.size(), new MessageBuilder("MENU_THEME_INVENTORY").asKey().build());
|
||||
|
||||
gui.addCloseHandler(event -> {
|
||||
if(arena.getArenaState() == ArenaState.IN_GAME && arena.getArenaInGameState() == BaseArena.ArenaInGameState.THEME_VOTING) {
|
||||
if(arena.getArenaState() == IArenaState.IN_GAME && arena.getArenaInGameState() == BaseArena.ArenaInGameState.THEME_VOTING) {
|
||||
plugin.getServer().getScheduler().runTask(plugin, () -> {
|
||||
HumanEntity humanEntity = event.getPlayer();
|
||||
Inventory inventory = event.getInventory();
|
||||
@@ -130,25 +125,30 @@ public class VoteMenu {
|
||||
|
||||
setGlassPanes(gui, multiplied, percent);
|
||||
|
||||
gui.setItem(multiplied + 8, new SimpleClickableItem(new ItemBuilder(new ItemStack(Material.PAPER))
|
||||
.name(new MessageBuilder("MENU_THEME_VOTE_SUPER_ITEM_NAME").asKey().arena(arena).value(theme).build())
|
||||
.lore(new MessageBuilder("MENU_THEME_VOTE_SUPER_ITEM_LORE").asKey().player(guiPlayer).arena(arena).value(theme).build().split(";"))
|
||||
.build(), event -> {
|
||||
HumanEntity humanEntity = event.getWhoClicked();
|
||||
if (plugin.getConfigPreferences().getOption("SUPER_VOTES")) {
|
||||
gui.setItem(multiplied + 8, new SimpleClickableItem(new ItemBuilder(new ItemStack(Material.PAPER))
|
||||
.name(new MessageBuilder("MENU_THEME_VOTE_SUPER_ITEM_NAME").asKey().arena(arena).value(theme).build())
|
||||
.lore(new MessageBuilder("MENU_THEME_VOTE_SUPER_ITEM_LORE").asKey().player(guiPlayer).arena(arena).value(theme).build().split(";"))
|
||||
.build(), event -> {
|
||||
HumanEntity humanEntity = event.getWhoClicked();
|
||||
|
||||
if(!(humanEntity instanceof Player))
|
||||
return;
|
||||
if(!(humanEntity instanceof Player))
|
||||
return;
|
||||
|
||||
Player player = (Player) humanEntity;
|
||||
User user = plugin.getUserManager().getUser(player);
|
||||
Player player = (Player) humanEntity;
|
||||
IUser user = plugin.getUserManager().getUser(player);
|
||||
|
||||
if(user.getStatistic("SUPER_VOTES") > 0) {
|
||||
user.adjustStatistic("SUPER_VOTES", -1);
|
||||
new MessageBuilder("MENU_THEME_VOTE_SUPER_USED").asKey().arena(arena).player(player).value(theme).sendArena();
|
||||
arena.setTheme(theme);
|
||||
arena.setTimer(0, true);
|
||||
}
|
||||
}));
|
||||
if(user.getStatistic("SUPER_VOTES") > 0) {
|
||||
user.adjustStatistic("SUPER_VOTES", -1);
|
||||
new MessageBuilder("MENU_THEME_VOTE_SUPER_USED").asKey().arena(arena).player(player).value(theme).sendArena();
|
||||
arena.setTheme(theme);
|
||||
arena.setTimer(0, true);
|
||||
}
|
||||
}));
|
||||
}
|
||||
else {
|
||||
gui.setItem(multiplied + 8, ClickableItem.of(new ItemBuilder(XMaterial.IRON_BARS.parseItem()).name("&7<-").colorizeItem().build()));
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -49,14 +49,10 @@ Commands:
|
||||
Executes: "buildbattle leave"
|
||||
Enabled: true
|
||||
'3':
|
||||
Short: "kit"
|
||||
Executes: "buildbattle selectkit"
|
||||
Enabled: false
|
||||
'4':
|
||||
Short: "stats"
|
||||
Executes: "buildbattle stats"
|
||||
Enabled: false
|
||||
'5':
|
||||
'4':
|
||||
Short: "top"
|
||||
Executes: "buildbattle top"
|
||||
Enabled: true
|
||||
@@ -82,16 +78,18 @@ Database: false
|
||||
|
||||
# Should we enable in game rewards? See rewards.yml for more...
|
||||
# You should also check out our script engine tutorial for rewards! https://tutorial.plugily.xyz
|
||||
Rewards: true
|
||||
Rewards: false
|
||||
|
||||
|
||||
# Enable in game (eg. '[KIT][LEVEL] Tigerpanzer_02: hey') special formatting?
|
||||
# Formatting is configurable in old_language.yml
|
||||
# You can use PlaceholderAPI placeholders in chat format!
|
||||
Plugin-Chat-Format: true
|
||||
# Enable the super votes in the theme vote menu
|
||||
Super-Votes: true
|
||||
|
||||
|
||||
Chat:
|
||||
# Enable in game (eg. '[KIT][LEVEL] Tigerpanzer_02: hey') special formatting?
|
||||
# Formatting is configurable in language.yml
|
||||
# You can use PlaceholderAPI placeholders in chat format!
|
||||
Format: true
|
||||
Separate:
|
||||
# Should we enable a separate arena chat for players inside a arena
|
||||
# Useful on multi arena servers that don't want the same chat for all players on the server
|
||||
@@ -142,7 +140,8 @@ Damage:
|
||||
Drowning: false
|
||||
# Should players get fire damage?
|
||||
Fire: false
|
||||
|
||||
# Should players lose food ingame & get damage?
|
||||
Hunger: false
|
||||
|
||||
Cycle:
|
||||
# Should we make permanent clear weather on all worlds where our arenas are?
|
||||
@@ -275,4 +274,4 @@ Update-Notifier:
|
||||
# You edited it, huh? Next time hurt yourself!
|
||||
Do-Not-Edit:
|
||||
File-Version: 1
|
||||
Core-Version: 2
|
||||
Core-Version: 4
|
||||
@@ -231,7 +231,7 @@ In-Game:
|
||||
# Join cancelled via external plugin that uses the API of our plugin.
|
||||
Cancelled-Via-API: "%color_chat_issue%%plugin_prefix% You can't join this game!"
|
||||
As-Party-Member: "%color_chat_issue%%plugin_prefix% You joined %arena_name% because the party leader joined it!"
|
||||
Arena-Not-Configured: "%color_chat_issue%%plugin_prefix% BaseArena is not configured yet! Contact staff!"
|
||||
Arena-Not-Configured: "%color_chat_issue%%plugin_prefix% BaseArena is not configured yet! Contact your server's staff!"
|
||||
Title: "20,30,20;%arena_name%;%arena_players_size%/%arena_max_players%"
|
||||
Death:
|
||||
Tag: "&8Dead"
|
||||
@@ -393,7 +393,7 @@ Menu:
|
||||
Noon: "Noon (6000 ticks)"
|
||||
Sunset: "Sunset (12000 ticks)"
|
||||
Night: "Night (13000 ticks)"
|
||||
MidNight: "MidNight (18000 ticks)"
|
||||
MidNight: "Midnight (18000 ticks)"
|
||||
Sunrise: "Sunrise (23000 ticks)"
|
||||
Changed: "%plugin_prefix% Time has been changed to %value%"
|
||||
Biome:
|
||||
@@ -572,4 +572,4 @@ Leaderboard:
|
||||
# You edited it, huh? Next time hurt yourself!
|
||||
Do-Not-Edit:
|
||||
File-Version: 1
|
||||
Core-Version: 1
|
||||
Core-Version: 2
|
||||
@@ -228,7 +228,7 @@ In-Game:
|
||||
# Join cancelled via external plugin that uses the API of our plugin.
|
||||
Cancelled-Via-API: "%color_chat_issue%%plugin_prefix% You can't join this game!"
|
||||
As-Party-Member: "%color_chat_issue%%plugin_prefix% You joined %arena_name% because the party leader joined it!"
|
||||
Arena-Not-Configured: "%color_chat_issue%%plugin_prefix% BaseArena is not configured yet! Contact staff!"
|
||||
Arena-Not-Configured: "%color_chat_issue%%plugin_prefix% BaseArena is not configured yet! Contact your server's staff!"
|
||||
Title: "20,30,20;%arena_name%;%arena_players_size%/%arena_max_players%"
|
||||
Death:
|
||||
Tag: "&8Dead"
|
||||
|
||||
@@ -8,11 +8,11 @@ api-version: 1.13
|
||||
commands:
|
||||
buildbattle:
|
||||
description: BuildBattle Commands
|
||||
usage: "\u00A76Correct usage: /bb [option]"
|
||||
usage: "§6Correct usage: /bb [option]"
|
||||
aliases: [ bb, buildb ]
|
||||
buildbattleadmin:
|
||||
description: BuildBattle Admin Commands
|
||||
usage: "\u00A76Correct usage: /bba [option]"
|
||||
usage: "§6Correct usage: /bba [option]"
|
||||
aliases: [ bba, buildbadmin ]
|
||||
|
||||
permissions:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# BuildBattle rewards configuration
|
||||
#
|
||||
# Placeholders list:
|
||||
# %PLAYER% - Current player name
|
||||
# %player% - Current player name
|
||||
# %MAPNAME% - Name of map
|
||||
# %ARENA-ID% - BaseArena Identifier
|
||||
# %PLACE% - Player Place (Working on category place)
|
||||
@@ -17,11 +17,11 @@
|
||||
# - chance(1):p:say I was very lucky! # Player has 1% chance to say "I was very lucky!"
|
||||
# - p:chance(99):spawn # Player has 99% chance to teleport to spawn
|
||||
# ^ YOU CAN EVEN SWAP CHANCE WITH PLAYER!
|
||||
# - chance(50):eco give %PLAYER% 10 # Console has 10% chance to give player 10$
|
||||
# - chance(50):eco give %player% 10 # Console has 10% chance to give player 10$
|
||||
#
|
||||
# You can unlock full potential of rewards using our script engine! (since 4.0.0)
|
||||
# Just add example reward:
|
||||
# - script:player.sendMessage("oh, hi %PLAYER%"); # It will send "oh, hi <player name>" to player! 100% plain java!
|
||||
# - script:player.sendMessage("oh, hi %player%"); # It will send "oh, hi <player name>" to player! 100% plain java!
|
||||
# - script:server.broadcastMessage("hello everyone"); # Broadcasts "hello everyone" to whole server
|
||||
# - script:player.getInventory().addItem(new org.bukkit.inventory.ItemStack(org.bukkit.Material.DIRT));
|
||||
# ^ Gives player dirt item (you must always use direct package names for not provided objects)
|
||||
@@ -50,40 +50,40 @@ rewards:
|
||||
# Commands performed when all themes are guessed in GTB
|
||||
# Delete everything if you don't want to use this section
|
||||
guess:
|
||||
- eco give %PLAYER% 2
|
||||
- eco give %player% 2
|
||||
guess-all:
|
||||
- eco give %PLAYER% 2
|
||||
- eco give %player% 2
|
||||
# Commands executed when someone vote
|
||||
vote:
|
||||
- eco give %PLAYER% 2
|
||||
- chance(10):eco give %PLAYER% 8
|
||||
- eco give %player% 2
|
||||
- chance(10):eco give %player% 8
|
||||
# Commands executed when all voted for a plot
|
||||
vote-all:
|
||||
- eco give %PLAYER% 2
|
||||
- chance(10):eco give %PLAYER% 8
|
||||
- eco give %player% 2
|
||||
- chance(10):eco give %player% 8
|
||||
# Commands executed when someone report a building
|
||||
report:
|
||||
- eco give %PLAYER% 2
|
||||
- eco give %player% 2
|
||||
- script:player.sendMessage("You reported the building");
|
||||
# Commands executed on place X
|
||||
place:
|
||||
1:
|
||||
- eco give %PLAYER% 10
|
||||
- eco give %player% 10
|
||||
2:
|
||||
- eco give %PLAYER% 9
|
||||
- eco give %player% 9
|
||||
3:
|
||||
- eco give %PLAYER% 8
|
||||
- eco give %player% 8
|
||||
4:
|
||||
- eco give %PLAYER% 7
|
||||
- eco give %player% 7
|
||||
5:
|
||||
- eco give %PLAYER% 6
|
||||
- eco give %player% 6
|
||||
6:
|
||||
- eco give %PLAYER% 5
|
||||
- eco give %player% 5
|
||||
7:
|
||||
- eco give %PLAYER% 4
|
||||
- eco give %player% 4
|
||||
8:
|
||||
- eco give %PLAYER% 3
|
||||
- eco give %player% 3
|
||||
9:
|
||||
- eco give %PLAYER% 2
|
||||
- eco give %player% 2
|
||||
10:
|
||||
- eco give %PLAYER% 1
|
||||
- eco give %player% 1
|
||||
@@ -121,7 +121,7 @@ Back-To-Hub:
|
||||
Options-Menu:
|
||||
permission: ""
|
||||
execute:
|
||||
- ""
|
||||
- "p:bb menu"
|
||||
displayname: "&a&lOptions menu &7(Right Click)"
|
||||
lore:
|
||||
- "&7Right-click to open options menu"
|
||||
|
||||
Reference in new issue
Block a user