Skip to content
This repository was archived by the owner on Jun 16, 2023. It is now read-only.

Commit db232ae

Browse files
Merge pull request #23 from CubeCrafter/development
1.1.14
2 parents c9ecfe5 + 2e7ff8f commit db232ae

30 files changed

+207
-346
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group = 'me.cubecrafter'
8-
version = '1.1.13'
8+
version = '1.1.14'
99

1010
repositories {
1111
mavenCentral()
@@ -25,7 +25,7 @@ dependencies {
2525
implementation 'org.bstats:bstats-bukkit:3.0.0'
2626
implementation 'de.tr7zw:item-nbt-api:2.11.1'
2727
implementation 'fr.mrmicky:fastboard:1.2.1'
28-
implementation 'com.github.cubecrafter:XUtils:1.0.8'
28+
implementation 'com.github.cubecrafter:XUtils:1.0.9'
2929

3030
compileOnly 'org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT'
3131
compileOnly 'me.clip:placeholderapi:2.11.3'

src/main/java/me/cubecrafter/woolwars/WoolWars.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import lombok.Setter;
2323
import me.cubecrafter.woolwars.arena.ArenaManager;
2424
import me.cubecrafter.woolwars.arena.TabHandler;
25-
import me.cubecrafter.woolwars.commands.CommandManager;
25+
import me.cubecrafter.woolwars.commands.WoolCommand;
2626
import me.cubecrafter.woolwars.config.Config;
2727
import me.cubecrafter.woolwars.config.ConfigManager;
2828
import me.cubecrafter.woolwars.hooks.PlaceholderHook;
@@ -48,7 +48,6 @@ public final class WoolWars extends JavaPlugin {
4848

4949
private ArenaManager arenaManager;
5050
private ConfigManager configManager;
51-
private CommandManager commandManager;
5251
private Database storage;
5352
private KitManager kitManager;
5453
private PlayerManager playerManager;
@@ -75,12 +74,13 @@ public void onEnable() {
7574
configManager = new ConfigManager(this);
7675
storage = Config.MYSQL_ENABLED.asBoolean() ? new MySQL() : new SQLite();
7776
arenaManager = new ArenaManager(this);
78-
commandManager = new CommandManager(this);
7977
kitManager = new KitManager(this);
8078
playerManager = new PlayerManager(this);
8179
powerupManager = new PowerUpManager();
8280
tabHandler = new TabHandler();
8381

82+
WoolCommand.register();
83+
8484
arenaManager.load();
8585
kitManager.load();
8686
powerupManager.load();

src/main/java/me/cubecrafter/woolwars/api/WoolWarsAPI.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,51 +35,51 @@
3535
@UtilityClass
3636
public class WoolWarsAPI {
3737

38-
public Location getLobbyLocation() {
38+
public static Location getLobbyLocation() {
3939
return Config.LOBBY_LOCATION.asLocation();
4040
}
4141

42-
public List<Arena> getArenas() {
42+
public static List<Arena> getArenas() {
4343
return ArenaUtil.getArenas();
4444
}
4545

46-
public Arena getArenaByPlayer(WoolPlayer player) {
46+
public static Arena getArenaByPlayer(WoolPlayer player) {
4747
return ArenaUtil.getArenaByPlayer(player);
4848
}
4949

50-
public Arena getArenaById(String id) {
50+
public static Arena getArenaById(String id) {
5151
return ArenaUtil.getArenaById(id);
5252
}
5353

54-
public List<Arena> getArenasByGroup(String group) {
54+
public static List<Arena> getArenasByGroup(String group) {
5555
return ArenaUtil.getArenasByGroup(group);
5656
}
5757

58-
public List<String> getGroups() {
58+
public static List<String> getGroups() {
5959
return ArenaUtil.getGroups();
6060
}
6161

62-
public Kit getKitById(String id) {
62+
public static Kit getKitById(String id) {
6363
return WoolWars.get().getKitManager().getKit(id);
6464
}
6565

66-
public List<Kit> getKits() {
66+
public static List<Kit> getKits() {
6767
return new ArrayList<>(WoolWars.get().getKitManager().getKits());
6868
}
6969

70-
public WoolPlayer getPlayer(Player player) {
70+
public static WoolPlayer getPlayer(Player player) {
7171
return PlayerManager.get(player);
7272
}
7373

74-
public boolean isPlaying(WoolPlayer player) {
74+
public static boolean isPlaying(WoolPlayer player) {
7575
return ArenaUtil.isPlaying(player);
7676
}
7777

78-
public void joinRandomArena(WoolPlayer player) {
78+
public static void joinRandomArena(WoolPlayer player) {
7979
ArenaUtil.joinRandomArena(player);
8080
}
8181

82-
public void joinRandomArena(WoolPlayer player, String group) {
82+
public static void joinRandomArena(WoolPlayer player, String group) {
8383
ArenaUtil.joinRandomArena(player, group);
8484
}
8585

src/main/java/me/cubecrafter/woolwars/arena/TabHandler.java

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -31,35 +31,17 @@
3131

3232
public class TabHandler {
3333

34+
private final Scoreboard scoreboard;
3435
private final BiFunction<String, Team, String> formatter = (tag, team) -> TextUtil.color(tag)
3536
.replace("{team}", team.getName())
3637
.replace("{team_color}", team.getTeamColor().getChatColor().toString())
3738
.replace("{team_letter}", team.getLetter());
3839

39-
public void applyTags(Team team) {
40-
for (Player online : Bukkit.getOnlinePlayers()) {
41-
setNameTags(online, team);
42-
}
43-
}
44-
45-
public void removeTags(Team team) {
46-
for (Player online : Bukkit.getOnlinePlayers()) {
47-
team.getMembers().forEach(member -> removeTags(online, member.getPlayer(), team));
48-
}
49-
}
50-
51-
public void removeTags(Player player, Team team) {
52-
for (Player online : Bukkit.getOnlinePlayers()) {
53-
removeTags(online, player, team);
54-
}
40+
public TabHandler() {
41+
this.scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
5542
}
5643

57-
public void onQuit(Player player) {
58-
player.getScoreboard().getTeams().forEach(org.bukkit.scoreboard.Team::unregister);
59-
}
60-
61-
private void setNameTags(Player viewer, Team team) {
62-
Scoreboard scoreboard = viewer.getScoreboard();
44+
public void applyTags(Team team) {
6345
org.bukkit.scoreboard.Team scoreboardTeam = scoreboard.getTeam(getTeamName(team));
6446
// Team doesn't exist, create it
6547
if (scoreboardTeam == null) {
@@ -79,8 +61,12 @@ private void setNameTags(Player viewer, Team team) {
7961
}
8062
}
8163

82-
private void removeTags(Player viewer, Player player, Team team) {
83-
org.bukkit.scoreboard.Team scoreboardTeam = viewer.getScoreboard().getTeam(getTeamName(team));
64+
public void removeTags(Team team) {
65+
team.getMembers().forEach(member -> removeTags(member.getPlayer(), team));
66+
}
67+
68+
public void removeTags(Player player, Team team) {
69+
org.bukkit.scoreboard.Team scoreboardTeam = scoreboard.getTeam(getTeamName(team));
8470
if (scoreboardTeam == null) return;
8571
scoreboardTeam.removeEntry(player.getName());
8672
// Remove team if empty
@@ -89,6 +75,10 @@ private void removeTags(Player viewer, Player player, Team team) {
8975
}
9076
}
9177

78+
public void onJoin(Player player) {
79+
player.setScoreboard(scoreboard);
80+
}
81+
9282
private String getTeamName(Team team) {
9383
return resize(team.getArena().getTeams().indexOf(team) + "_" + team.getArena().getId());
9484
}

src/main/java/me/cubecrafter/woolwars/arena/tasks/PreRoundTask.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
public class PreRoundTask extends ArenaTask {
3939

40-
private static final KitManager kitManager = WoolWars.get().getKitManager();
40+
private static final KitManager KIT_MANAGER = WoolWars.get().getKitManager();
4141

4242
public PreRoundTask(Arena arena) {
4343
super(arena, Config.PRE_ROUND_DURATION.asInt());
@@ -57,11 +57,12 @@ public void start() {
5757
player.reset(GameMode.SURVIVAL);
5858
player.setAbilityUsed(false);
5959
arena.getPlayers().forEach(other -> player.setVisibility(other, true));
60-
// Give previous kit if available, otherwise give random kit
61-
Kit kit = player.getSelectedKit() == null ? kitManager.getRandomKit() : player.getSelectedKit();
60+
// Give previous kit if available, otherwise give random kit (and also check if the kit can be used)
61+
Kit kit = player.getSelectedKit();
62+
if (kit == null || !kit.canUse(player)) {
63+
kit = KIT_MANAGER.getKits().stream().filter(available -> available.canUse(player)).findAny().orElse(null);
64+
}
6265
kit.addToPlayer(player, arena.getTeam(player));
63-
// Update selected kit
64-
player.getData().setSelectedKit(kit.getId());
6566

6667
TextUtil.sendActionBarWhile(player.getPlayer(), Messages.SHIFT_TO_SELECT_KIT.asString(), () -> arena.getState() == GameState.PRE_ROUND);
6768
}

src/main/java/me/cubecrafter/woolwars/commands/subcommands/ArenasCommand.java renamed to src/main/java/me/cubecrafter/woolwars/commands/ArenasCommand.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,15 @@
1616
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1717
*/
1818

19-
package me.cubecrafter.woolwars.commands.subcommands;
19+
package me.cubecrafter.woolwars.commands;
2020

21-
import me.cubecrafter.woolwars.commands.SubCommand;
2221
import me.cubecrafter.woolwars.menu.game.ArenasMenu;
2322
import me.cubecrafter.woolwars.storage.player.PlayerManager;
2423
import me.cubecrafter.woolwars.storage.player.WoolPlayer;
24+
import me.cubecrafter.xutils.commands.SubCommand;
2525
import org.bukkit.command.CommandSender;
2626
import org.bukkit.entity.Player;
2727

28-
import java.util.List;
29-
3028
public class ArenasCommand implements SubCommand {
3129

3230
@Override
@@ -35,11 +33,6 @@ public void execute(CommandSender sender, String[] args) {
3533
new ArenasMenu(player).open();
3634
}
3735

38-
@Override
39-
public List<String> tabComplete(CommandSender sender, String[] args) {
40-
return null;
41-
}
42-
4336
@Override
4437
public String getLabel() {
4538
return "arenas";

src/main/java/me/cubecrafter/woolwars/commands/CommandManager.java

Lines changed: 0 additions & 160 deletions
This file was deleted.

0 commit comments

Comments
 (0)