Skip to content

Commit 0ee81b2

Browse files
committed
merge: branch 'release/v1.7.0' into stable
Signed-off-by: Cristóbal Veas <[email protected]>
2 parents 92b020a + 0c98704 commit 0ee81b2

File tree

14 files changed

+135
-29
lines changed

14 files changed

+135
-29
lines changed

build.gradle.kts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
22
java
3-
id("io.github.goooler.shadow") version ("8.1.8")
4-
id("io.papermc.paperweight.userdev") version ("1.7.2")
3+
id("com.gradleup.shadow") version ("8.3.5")
4+
id("io.papermc.paperweight.userdev") version ("1.7.7")
55
}
66

77
group = "team.devblook"
@@ -23,13 +23,13 @@ repositories {
2323
}
2424

2525
dependencies {
26-
paperweight.paperDevBundle("1.21.1-R0.1-SNAPSHOT")
26+
paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT")
2727

2828
implementation("javax.inject:javax.inject:1")
2929

30-
implementation("net.megavex:scoreboard-library-api:2.1.12")
31-
runtimeOnly("net.megavex:scoreboard-library-implementation:2.1.12")
32-
runtimeOnly("net.megavex:scoreboard-library-modern:2.1.12:mojmap")
30+
implementation("net.megavex:scoreboard-library-api:2.2.2")
31+
runtimeOnly("net.megavex:scoreboard-library-implementation:2.2.2")
32+
runtimeOnly("net.megavex:scoreboard-library-modern:2.2.2:mojmap")
3333

3434
//compileOnly("org.spongepowered:configurate-yaml:4.1.2")
3535

@@ -39,7 +39,7 @@ dependencies {
3939
compileOnly("com.mojang:authlib:1.5.25")
4040
compileOnly("me.clip:placeholderapi:2.11.6")
4141
compileOnly("com.arcaniax:HeadDatabase-API:1.3.2")
42-
compileOnly("com.github.cryptomorin:XSeries:11.2.1")
42+
compileOnly("com.github.cryptomorin:XSeries:12.1.0")
4343
compileOnly("io.github.miniplaceholders:miniplaceholders-api:2.2.3")
4444
}
4545

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
org.gradle.caching=true
22
org.gradle.parallel=true
33
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
4-
projectVersion=1.6.0
4+
projectVersion=1.7.0
55
libsPackage=team.devblook.akropolis.libs

src/main/java/team/devblook/akropolis/AkropolisPluginLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class AkropolisPluginLoader implements PluginLoader {
3232
@Override
3333
public void classloader(PluginClasspathBuilder classpathBuilder) {
3434
MavenLibraryResolver resolver = new MavenLibraryResolver();
35-
resolver.addDependency(new Dependency(new DefaultArtifact("com.github.cryptomorin:XSeries:11.2.1"), null));
35+
resolver.addDependency(new Dependency(new DefaultArtifact("com.github.cryptomorin:XSeries:12.1.0"), null));
3636
resolver.addRepository(new RemoteRepository.Builder("central", "default", "https://repo1.maven.org/maven2/").build());
3737

3838
classpathBuilder.addLibrary(resolver);

src/main/java/team/devblook/akropolis/Permissions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public enum Permissions {
2323
// Command permissions
2424
COMMAND_AKROPOLIS_HELP("command.help"), COMMAND_AKROPOLIS_RELOAD("command.reload"),
2525
COMMAND_SCOREBOARD_TOGGLE("command.scoreboard"), COMMAND_OPEN_MENUS("command.openmenu"),
26-
COMMAND_HOLOGRAMS("command.holograms"),
26+
COMMAND_HOLOGRAMS("command.holograms"), COMMAND_HOTBAR_TOGGLE("command.hotbar"),
2727

2828
// Misc permissions
2929
COMMAND_GAMEMODE("command.gamemode"), COMMAND_GAMEMODE_OTHERS("command.gamemode.others"),

src/main/java/team/devblook/akropolis/command/commands/AkropolisCommand.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,38 @@ else if (args[0].equalsIgnoreCase("scoreboard")) {
115115
}
116116
}
117117

118+
/*
119+
* Command: hotbar Description: toggles the hotbar on/off
120+
*/
121+
else if (args[0].equalsIgnoreCase("hotbar")) {
122+
123+
if (!(sender instanceof Player player)) {
124+
Message.CONSOLE_NOT_ALLOWED.sendFrom(sender);
125+
return;
126+
}
127+
128+
if (!sender.hasPermission(Permissions.COMMAND_HOTBAR_TOGGLE.getPermission())) {
129+
Message.NO_PERMISSION.sendFrom(sender);
130+
return;
131+
}
132+
133+
if (!plugin.getModuleManager().isEnabled(ModuleType.HOTBAR_ITEMS)) {
134+
sender.sendMessage(TextUtil.parse("<red>The hotbar module is not enabled in the configuration."));
135+
return;
136+
}
137+
138+
HotbarManager hotbarManager = ((HotbarManager) plugin.getModuleManager()
139+
.getModule(ModuleType.HOTBAR_ITEMS));
140+
141+
if (hotbarManager.hasHotbar(player.getUniqueId())) {
142+
hotbarManager.removeItemsFromPlayer(player);
143+
Message.HOTBAR_DISABLE.sendFrom(player);
144+
} else {
145+
hotbarManager.giveItemsToPlayer(player);
146+
Message.HOTBAR_ENABLE.sendFrom(player);
147+
}
148+
}
149+
118150
/*
119151
* Command: info Description: displays useful information about the
120152
* configuration

src/main/java/team/devblook/akropolis/config/Message.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public enum Message {
5454

5555
SCOREBOARD_ENABLE("SCOREBOARD.ENABLE"), SCOREBOARD_DISABLE("SCOREBOARD.DISABLE"),
5656

57+
HOTBAR_ENABLE("HOTBAR.ENABLE"), HOTBAR_DISABLE("HOTBAR.DISABLE"),
58+
5759
DOUBLE_JUMP_COOLDOWN("DOUBLE_JUMP.COOLDOWN_ACTIVE"),
5860

5961
EVENT_ITEM_DROP("WORLD_EVENT_MODIFICATIONS.ITEM_DROP"), EVENT_ITEM_PICKUP("WORLD_EVENT_MODIFICATIONS.ITEM_PICKUP"),

src/main/java/team/devblook/akropolis/module/modules/chat/groups/ChatGroups.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import team.devblook.akropolis.cooldown.CooldownType;
3131
import team.devblook.akropolis.module.Module;
3232
import team.devblook.akropolis.module.ModuleType;
33+
import team.devblook.akropolis.util.PlaceholderUtil;
3334
import team.devblook.akropolis.util.TextUtil;
3435

3536
import java.util.HashMap;
@@ -52,7 +53,9 @@ public void onEnable() {
5253
return;
5354
}
5455

55-
groupsSection.getKeys(false).forEach(groupName -> chatGroups.put(groupName, new ChatGroup(groupName,
56+
groupsSection.getKeys(false).stream()
57+
.filter(key -> !key.equals("enabled"))
58+
.forEach(groupName -> chatGroups.put(groupName, new ChatGroup(groupName,
5659
groupsSection.getString(groupName + ".format", "No format."),
5760
groupsSection.getInt(groupName + ".cooldown.time", 0),
5861
groupsSection.getString(groupName + ".cooldown.message", "No cooldown message."))));
@@ -85,8 +88,10 @@ public void onPlayerChat(AsyncChatEvent event) {
8588
return;
8689
}
8790

91+
String rawMessage = TextUtil.raw(event.originalMessage());
92+
8893
getPlugin().getServer().sendMessage(TextUtil.replace(currentGroup.getFormat(player),
8994
"message",
90-
event.originalMessage()));
95+
PlaceholderUtil.setPlaceholders(rawMessage, player)));
9196
}
9297
}

src/main/java/team/devblook/akropolis/module/modules/hotbar/HotbarItem.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public void giveItem(Player player) {
121121
}
122122

123123
player.getInventory().setItem(slot, newItem);
124+
hotbarManager.getPlayers().add(player.getUniqueId());
124125
}
125126

126127
public void removeItem(Player player) {
@@ -135,6 +136,8 @@ public void removeItem(Player player) {
135136
if (keyValueInItem != null && keyValueInItem.equals(keyValue)) {
136137
inventory.remove(itemInSlot);
137138
}
139+
140+
hotbarManager.getPlayers().remove(player.getUniqueId());
138141
}
139142

140143
@EventHandler
@@ -162,6 +165,19 @@ public void onInventoryClick(InventoryClickEvent event) {
162165
}
163166
}
164167

168+
@EventHandler
169+
public void onBookEdit(PlayerEditBookEvent event) {
170+
Player player = event.getPlayer();
171+
if (getHotbarManager().inDisabledWorld(player.getLocation())) return;
172+
173+
PersistentDataContainer container = event.getPreviousBookMeta().getPersistentDataContainer();
174+
String keyValueInItem = container.get(NamespacedKey.minecraft("hotbar-item"), PersistentDataType.STRING);
175+
176+
if (keyValueInItem != null && keyValueInItem.equals(keyValue)) {
177+
event.setCancelled(true);
178+
}
179+
}
180+
165181
@SuppressWarnings("deprecation")
166182
@EventHandler
167183
public void hotbarItemInteract(PlayerInteractEvent event) {

src/main/java/team/devblook/akropolis/module/modules/hotbar/HotbarManager.java

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.bukkit.Bukkit;
2323
import org.bukkit.configuration.ConfigurationSection;
2424
import org.bukkit.configuration.file.FileConfiguration;
25+
import org.bukkit.entity.Player;
2526
import org.bukkit.inventory.ItemStack;
2627
import team.devblook.akropolis.AkropolisPlugin;
2728
import team.devblook.akropolis.config.ConfigType;
@@ -31,11 +32,11 @@
3132
import team.devblook.akropolis.module.modules.hotbar.items.PlayerHider;
3233
import team.devblook.akropolis.util.ItemStackBuilder;
3334

34-
import java.util.ArrayList;
35-
import java.util.List;
35+
import java.util.*;
3636

3737
public class HotbarManager extends Module {
3838
private List<HotbarItem> hotbarItems;
39+
private Set<UUID> players;
3940

4041
public HotbarManager(AkropolisPlugin plugin) {
4142
super(plugin, ModuleType.HOTBAR_ITEMS);
@@ -44,6 +45,8 @@ public HotbarManager(AkropolisPlugin plugin) {
4445
@Override
4546
public void onEnable() {
4647
hotbarItems = new ArrayList<>();
48+
players = new HashSet<>();
49+
4750
FileConfiguration config = getConfig(ConfigType.SETTINGS);
4851
ConfigurationSection customItemsSections = config.getConfigurationSection("custom_join_items");
4952

@@ -64,7 +67,15 @@ public void onEnable() {
6467
}
6568

6669
if (hiderSection.getBoolean("enabled")) {
67-
ItemStack item = ItemStackBuilder.getItemStack(hiderSection.getConfigurationSection("not_hidden")).build();
70+
boolean playersHidden = config.getBoolean("join_settings.players_hidden", false);
71+
ItemStack item;
72+
73+
if (playersHidden) {
74+
item = ItemStackBuilder.getItemStack(hiderSection.getConfigurationSection("hidden")).build();
75+
} else {
76+
item = ItemStackBuilder.getItemStack(hiderSection.getConfigurationSection("not_hidden")).build();
77+
}
78+
6879
PlayerHider playerHider = new PlayerHider(this, item, hiderSection.getInt("slot"), "PLAYER_HIDER");
6980

7081
playerHider.setAllowMovement(hiderSection.getBoolean("disable_inventory_movement"));
@@ -107,16 +118,34 @@ public void registerHotbarItem(HotbarItem hotbarItem) {
107118
}
108119

109120
private void giveItems() {
110-
Bukkit.getOnlinePlayers().stream().filter(player -> !inDisabledWorld(player.getLocation()))
111-
.forEach(player -> hotbarItems.forEach(hotbarItem -> hotbarItem.giveItem(player)));
121+
Bukkit.getOnlinePlayers().forEach(this::giveItemsToPlayer);
112122
}
113123

114124
private void removeItems() {
115-
Bukkit.getOnlinePlayers().stream().filter(player -> !inDisabledWorld(player.getLocation()))
116-
.forEach(player -> hotbarItems.forEach(hotbarItem -> hotbarItem.removeItem(player)));
125+
Bukkit.getOnlinePlayers().forEach(this::removeItemsFromPlayer);
126+
}
127+
128+
public void giveItemsToPlayer(Player player) {
129+
if (inDisabledWorld(player.getLocation())) return;
130+
131+
hotbarItems.forEach(hotbarItem -> hotbarItem.giveItem(player));
132+
}
133+
134+
public void removeItemsFromPlayer(Player player) {
135+
if (inDisabledWorld(player.getLocation())) return;
136+
137+
hotbarItems.forEach(hotbarItem -> hotbarItem.removeItem(player));
138+
}
139+
140+
public boolean hasHotbar(UUID playerUuid) {
141+
return players.contains(playerUuid);
117142
}
118143

119144
public List<HotbarItem> getHotbarItems() {
120145
return hotbarItems;
121146
}
147+
148+
public Set<UUID> getPlayers() {
149+
return players;
150+
}
122151
}

src/main/java/team/devblook/akropolis/module/modules/hotbar/items/PlayerHider.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,31 @@
4646
import java.util.UUID;
4747

4848
public class PlayerHider extends HotbarItem {
49-
private final int cooldown;
50-
private final ItemStack hiddenItem;
5149
private final List<UUID> hidden;
50+
private final ItemStack hiddenItem;
51+
private final ItemStack notHiddenItem;
52+
private final boolean playersHidden;
53+
private final int cooldown;
5254

5355
public PlayerHider(HotbarManager hotbarManager, ItemStack item, int slot, String keyValue) {
5456
super(hotbarManager, item, slot, keyValue);
5557
hidden = new ArrayList<>();
5658

5759
FileConfiguration config = getHotbarManager().getConfig(ConfigType.SETTINGS);
60+
5861
ItemStack hiddenItem = ItemStackBuilder.getItemStack(config.getConfigurationSection("player_hider.hidden")).build();
59-
ItemMeta hiddenItemMeta = hiddenItem.getItemMeta();
60-
PersistentDataContainer hiddenItemContainer = hiddenItemMeta.getPersistentDataContainer();
62+
ItemStack notHiddenItem = ItemStackBuilder.getItemStack(config.getConfigurationSection("player_hider.not_hidden")).build();
6163

62-
hiddenItemContainer.set(NamespacedKey.minecraft("hotbar-item"), PersistentDataType.STRING, keyValue);
63-
hiddenItem.setItemMeta(hiddenItemMeta);
64+
ItemMeta playerHiderMeta = hiddenItem.getItemMeta();
65+
PersistentDataContainer playerHiderContainer = playerHiderMeta.getPersistentDataContainer();
66+
playerHiderContainer.set(NamespacedKey.minecraft("hotbar-item"), PersistentDataType.STRING, keyValue);
67+
68+
hiddenItem.setItemMeta(playerHiderMeta);
69+
notHiddenItem.setItemMeta(playerHiderMeta);
6470

6571
this.hiddenItem = hiddenItem;
72+
this.notHiddenItem = notHiddenItem;
73+
playersHidden = config.getBoolean("join_settings.players_hidden");
6674
cooldown = config.getInt("player_hider.cooldown");
6775
}
6876

@@ -91,7 +99,7 @@ protected void onInteract(Player player) {
9199
hidden.remove(player.getUniqueId());
92100
Message.PLAYER_HIDER_SHOWN.sendFrom(player);
93101

94-
player.getInventory().setItem(getSlot(), getItem());
102+
player.getInventory().setItem(getSlot(), notHiddenItem);
95103
}
96104
}
97105

@@ -121,6 +129,14 @@ public void onPlayerJoin(PlayerJoinEvent event) {
121129

122130
player.hidePlayer(playerToHide);
123131
});
132+
133+
if (playersHidden) {
134+
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
135+
playerToHide.hidePlayer(player);
136+
}
137+
138+
hidden.add(playerToHide.getUniqueId());
139+
}
124140
}
125141

126142
@SuppressWarnings("deprecation")

0 commit comments

Comments
 (0)