Skip to content

Commit 18847c5

Browse files
committed
optimizations + fix the help command
1 parent a8f1e11 commit 18847c5

File tree

12 files changed

+202
-133
lines changed

12 files changed

+202
-133
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.refracdevelopment</groupId>
88
<artifactId>SimpleGems</artifactId>
9-
<version>4.1.1</version>
9+
<version>26.1.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimpleGems</name>

src/main/java/me/refracdevelopment/simplegems/SimpleGems.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import me.refracdevelopment.simplegems.utilities.chat.RyMessageUtils;
2727
import me.refracdevelopment.simplegems.utilities.chat.StringPlaceholders;
2828
import me.refracdevelopment.simplegems.utilities.command.CommandManager;
29-
import me.refracdevelopment.simplegems.utilities.command.SubCommand;
3029
import me.refracdevelopment.simplegems.utilities.menu.MenuManager;
3130
import me.refracdevelopment.simplegems.utilities.menu.actions.BackAction;
3231
import me.refracdevelopment.simplegems.utilities.menu.actions.MenuAction;
@@ -41,7 +40,6 @@
4140
import java.io.InputStreamReader;
4241
import java.net.HttpURLConnection;
4342
import java.net.URL;
44-
import java.util.List;
4543

4644
@Getter
4745
@Setter
@@ -75,7 +73,6 @@ public final class SimpleGems extends JavaPlugin {
7573

7674
// Utilities
7775
private SimpleGemsAPI gemsAPI;
78-
private List<SubCommand> commandsList;
7976
private FoliaLib foliaLib;
8077
private BukkitAudiences adventure;
8178

@@ -95,8 +92,8 @@ public void onEnable() {
9592
"<#A020F0> _____ _ _ _____ " + "Running <#7D0DC3>v" + getDescription().getVersion(),
9693
"<#A020F0>| __|_|_____ ___| |___| __|___ _____ ___ " + "Server <#7D0DC3>" + getServer().getName() + " <#A020F0>v" + getServer().getVersion(),
9794
"<#A020F0>|__ | | | . | | -_| | | -_| |_ -| " + "Discord support: <#7D0DC3>" + getDescription().getWebsite(),
98-
"<#7D0DC3>|_____|_|_|_|_| _|_|___|_____|___|_|_|_|___| " + "Thanks for using my plugin ❤ !",
99-
"<#7D0DC3> |_| ",
95+
"<#A020F0>|_____|_|_|_|_| _|_|___|_____|___|_|_|_|___| " + "Thanks for using my plugin ❤ !",
96+
"<#A020F0> |_| ",
10097
" <#A020F0>Developed by <#7D0DC3>RefracDevelopment",
10198
""
10299
);
@@ -136,10 +133,8 @@ private void loadFiles() {
136133
menusFile = new ConfigFile(this, "menus.yml");
137134
commandsFile = new ConfigFile(this, "commands/gems.yml");
138135

139-
locale = new Locale();
140-
locale.load();
141-
142136
// Cache
137+
locale = new Locale();
143138
settings = new Config();
144139
menus = new Menus();
145140
commands = new Commands();
@@ -182,8 +177,6 @@ private void loadCommands() {
182177
localeFile.getString("command-help-description"),
183178
"/" + commands.GEMS_COMMAND_NAME,
184179
(commandSender, list) -> {
185-
commandsList = list;
186-
187180
if (!(commandSender instanceof Player player)) {
188181
list.forEach(command -> {
189182
StringPlaceholders placeholders;

src/main/java/me/refracdevelopment/simplegems/commands/HelpCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import me.refracdevelopment.simplegems.SimpleGems;
44
import me.refracdevelopment.simplegems.utilities.chat.RyMessageUtils;
55
import me.refracdevelopment.simplegems.utilities.chat.StringPlaceholders;
6+
import me.refracdevelopment.simplegems.utilities.command.CommandManager;
67
import me.refracdevelopment.simplegems.utilities.command.SubCommand;
78
import org.bukkit.command.CommandSender;
89
import org.bukkit.entity.Player;
@@ -36,7 +37,7 @@ public String getSyntax() {
3637
public void perform(CommandSender commandSender, String[] args) {
3738
RyMessageUtils.sendPluginMessage(commandSender, "command-help-title");
3839

39-
SimpleGems.getInstance().getCommandsList().forEach(command -> {
40+
CommandManager.getSubCommands().forEach(command -> {
4041
StringPlaceholders placeholders;
4142

4243
if (!command.getSyntax().isEmpty()) {

src/main/java/me/refracdevelopment/simplegems/listeners/PlayerListener.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package me.refracdevelopment.simplegems.listeners;
22

3-
import de.tr7zw.nbtapi.NBTItem;
3+
import de.tr7zw.nbtapi.NBT;
44
import me.refracdevelopment.simplegems.SimpleGems;
55
import me.refracdevelopment.simplegems.player.Profile;
66
import me.refracdevelopment.simplegems.utilities.Methods;
@@ -38,7 +38,8 @@ public void onJoin(PlayerJoinEvent event) {
3838

3939
if (!player.hasPlayedBefore() && SimpleGems.getInstance().getSettings().STARTING_GEMS > 0) {
4040
SimpleGems.getInstance().getGemsAPI().giveGems(player, SimpleGems.getInstance().getSettings().STARTING_GEMS);
41-
RyMessageUtils.sendPluginMessage(player, "starting-gems-received", StringPlaceholders.of("gems_formatted", SimpleGems.getInstance().getSettings().STARTING_GEMS));
41+
RyMessageUtils.sendPluginMessage(player, "starting-gems-received",
42+
StringPlaceholders.of("gems_formatted", SimpleGems.getInstance().getSettings().STARTING_GEMS));
4243
}
4344
}
4445

@@ -84,13 +85,14 @@ public void onDeposit(PlayerInteractEvent event) {
8485
if (itemMeta == null)
8586
return;
8687

87-
NBTItem nbtItem = new NBTItem(item);
88-
89-
if (nbtItem.hasTag("gems-item-value")) {
90-
double foundValue = nbtItem.getDouble("gems-item-value");
88+
double foundValue = NBT.get(item, nbt -> (Double) nbt.getDouble("gems-item-value"));
9189

90+
if (foundValue > 0) {
9291
gemsItem = SimpleGems.getInstance().getGemsAPI().getGemsItem(player, foundValue);
9392

93+
if (gemsItem == null)
94+
return;
95+
9496
if (!item.isSimilar(gemsItem))
9597
return;
9698

@@ -131,9 +133,7 @@ public void onItemFrame(PlayerInteractEntityEvent event) {
131133
if (itemMeta == null)
132134
return;
133135

134-
NBTItem nbtItem = new NBTItem(item);
135-
136-
if (nbtItem.hasTag("gems-item-value"))
136+
if (NBT.get(item, nbt -> (boolean) nbt.getBoolean("gems-item-value")))
137137
event.setCancelled(true);
138138
}
139139

@@ -145,9 +145,7 @@ public void onDropItem(PlayerDropItemEvent event) {
145145
if (itemMeta == null)
146146
return;
147147

148-
NBTItem nbtItem = new NBTItem(item);
149-
150-
if (nbtItem.hasTag("gems-item-value"))
148+
if (NBT.get(item, nbt -> (boolean) nbt.getBoolean("gems-item-value")))
151149
event.setCancelled(true);
152150
}
153151
}

src/main/java/me/refracdevelopment/simplegems/managers/configuration/Locale.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ private enum LocaleType {
1010
en_US
1111
}
1212

13+
public Locale() {
14+
load();
15+
}
16+
1317
public void load() {
1418
SimpleGems instance = SimpleGems.getInstance();
1519

src/main/java/me/refracdevelopment/simplegems/menu/GemShopItem.java

Lines changed: 56 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import me.refracdevelopment.simplegems.utilities.chat.RyMessageUtils;
1515
import me.refracdevelopment.simplegems.utilities.chat.StringPlaceholders;
1616
import org.bukkit.Bukkit;
17+
import org.bukkit.configuration.ConfigurationSection;
1718
import org.bukkit.entity.Player;
1819
import org.bukkit.inventory.ItemStack;
1920

@@ -39,55 +40,57 @@ public GemShopItem(String category, String item) {
3940
}
4041

4142
private void setupMenuItemData() {
42-
this.material = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getString(getCategory() + ".items." + getItem() + ".material");
43-
this.durability = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getInt(getCategory() + ".items." + getItem() + ".durability");
44-
this.customModelData = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getInt(getCategory() + ".items." + getItem() + ".customModelData");
45-
this.name = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getString(getCategory() + ".items." + getItem() + ".name");
46-
this.lore = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getStringList(getCategory() + ".items." + getItem() + ".lore");
47-
this.actions = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getStringList(getCategory() + ".items." + getItem() + ".action.actions");
48-
this.commands = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getStringList(getCategory() + ".items." + getItem() + ".commands");
49-
this.messageEnabled = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".message.enabled");
50-
this.broadcastMessage = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".message.broadcast");
51-
this.messages = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getStringList(getCategory() + ".items." + getItem() + ".message.text");
52-
this.cost = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getDouble(getCategory() + ".items." + getItem() + ".cost");
53-
this.slot = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getInt(getCategory() + ".items." + getItem() + ".slot");
54-
this.permission = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getString(getCategory() + ".items." + getItem() + ".permission", "");
55-
this.amount = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getInt(getCategory() + ".items." + getItem() + ".amount");
56-
57-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".head-database") != null)
58-
this.headDatabase = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".head-database", false);
43+
ConfigurationSection section = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES;
44+
45+
this.material = section.getString(getCategory() + ".items." + getItem() + ".material");
46+
this.durability = section.getInt(getCategory() + ".items." + getItem() + ".durability");
47+
this.customModelData = section.getInt(getCategory() + ".items." + getItem() + ".customModelData");
48+
this.name = section.getString(getCategory() + ".items." + getItem() + ".name");
49+
this.lore = section.getStringList(getCategory() + ".items." + getItem() + ".lore");
50+
this.actions = section.getStringList(getCategory() + ".items." + getItem() + ".action.actions");
51+
this.commands = section.getStringList(getCategory() + ".items." + getItem() + ".commands");
52+
this.messageEnabled = section.getBoolean(getCategory() + ".items." + getItem() + ".message.enabled");
53+
this.broadcastMessage = section.getBoolean(getCategory() + ".items." + getItem() + ".message.broadcast");
54+
this.messages = section.getStringList(getCategory() + ".items." + getItem() + ".message.text");
55+
this.cost = section.getDouble(getCategory() + ".items." + getItem() + ".cost");
56+
this.slot = section.getInt(getCategory() + ".items." + getItem() + ".slot");
57+
this.permission = section.getString(getCategory() + ".items." + getItem() + ".permission", "");
58+
this.amount = section.getInt(getCategory() + ".items." + getItem() + ".amount");
59+
60+
if (section.get(getCategory() + ".items." + getItem() + ".head-database") != null)
61+
this.headDatabase = section.getBoolean(getCategory() + ".items." + getItem() + ".head-database", false);
5962
else
6063
this.headDatabase = false;
6164

62-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".skulls") != null)
63-
this.skulls = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".skulls", false);
65+
if (section.get(getCategory() + ".items." + getItem() + ".skulls") != null)
66+
this.skulls = section.getBoolean(getCategory() + ".items." + getItem() + ".skulls", false);
6467
else
6568
this.skulls = false;
6669

67-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".customData") != null)
68-
this.customData = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".customData", false);
70+
if (section.get(getCategory() + ".items." + getItem() + ".customData") != null)
71+
this.customData = section.getBoolean(getCategory() + ".items." + getItem() + ".customData", false);
6972
else
7073
this.customData = false;
7174

72-
this.skullOwner = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getString(getCategory() + ".items." + getItem() + ".skullOwner");
75+
this.skullOwner = section.getString(getCategory() + ".items." + getItem() + ".skullOwner");
7376

74-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".glow") != null)
75-
this.glow = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".glow", false);
77+
if (section.get(getCategory() + ".items." + getItem() + ".glow") != null)
78+
this.glow = section.getBoolean(getCategory() + ".items." + getItem() + ".glow", false);
7679
else
7780
this.glow = false;
7881

79-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".action.enabled") != null)
80-
this.action = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".action.enabled", false);
82+
if (section.get(getCategory() + ".items." + getItem() + ".action.enabled") != null)
83+
this.action = section.getBoolean(getCategory() + ".items." + getItem() + ".action.enabled", false);
8184
else
8285
this.action = false;
8386

84-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".buyable") != null)
85-
this.buyable = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".buyable", true);
87+
if (section.get(getCategory() + ".items." + getItem() + ".buyable") != null)
88+
this.buyable = section.getBoolean(getCategory() + ".items." + getItem() + ".buyable", true);
8689
else
8790
this.buyable = true;
8891

89-
if (SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.get(getCategory() + ".items." + getItem() + ".itemsAdder") != null)
90-
this.itemsAdder = SimpleGems.getInstance().getMenus().GEM_SHOP_CATEGORIES.getBoolean(getCategory() + ".items." + getItem() + ".itemsAdder", false);
92+
if (section.get(getCategory() + ".items." + getItem() + ".itemsAdder") != null)
93+
this.itemsAdder = section.getBoolean(getCategory() + ".items." + getItem() + ".itemsAdder", false);
9194
else
9295
this.itemsAdder = false;
9396
}
@@ -97,42 +100,36 @@ public void sendMessage(Player player) {
97100
return;
98101

99102
if (isBroadcastMessage()) {
100-
getMessages().forEach(message -> {
101-
RyMessageUtils.broadcast(player, message
102-
.replace("%item%", getName())
103-
.replace("%cost%", Methods.formatDecimal(getCost()))
104-
.replace("%price%", String.valueOf(getCost())));
105-
});
103+
getMessages().forEach(message -> RyMessageUtils.broadcast(player, message
104+
.replace("%item%", getName())
105+
.replace("%cost%", Methods.formatDecimal(getCost()))
106+
.replace("%price%", String.valueOf(getCost()))));
106107
return;
107108
}
108109

109-
getMessages().forEach(message -> {
110-
RyMessageUtils.sendPlayer(player, message
111-
.replace("%item%", getName())
112-
.replace("%cost%", Methods.formatDecimal(getCost()))
113-
.replace("%price%", String.valueOf(getCost()))
114-
);
115-
});
110+
getMessages().forEach(message -> RyMessageUtils.sendPlayer(player, message
111+
.replace("%item%", getName())
112+
.replace("%cost%", Methods.formatDecimal(getCost()))
113+
.replace("%price%", String.valueOf(getCost()))
114+
));
116115
}
117116

118117
public void runCommands(Player player) {
119-
getCommands().forEach(command -> {
120-
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), Placeholders.setPlaceholders(player, command
121-
.replace("%item%", getName())
122-
.replace("%cost%", String.valueOf(getCost()))
123-
.replace("%price%", String.valueOf(getCost()))
124-
));
125-
});
118+
getCommands().forEach(command ->
119+
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), Placeholders.setPlaceholders(player, command
120+
.replace("%item%", getName())
121+
.replace("%cost%", String.valueOf(getCost()))
122+
.replace("%price%", String.valueOf(getCost())))
123+
));
126124
}
127125

128126
public void runActions(Player player) {
129-
for (String action : getActions()) {
130-
SimpleGems.getInstance().getActionManager().execute(player, Placeholders.setPlaceholders(player, action
131-
.replace("%item%", getName())
132-
.replace("%cost%", String.valueOf(getCost()))
133-
.replace("%price%", String.valueOf(getCost()))
134-
));
135-
}
127+
getActions().forEach(action ->
128+
SimpleGems.getInstance().getActionManager().execute(player, Placeholders.setPlaceholders(player, action
129+
.replace("%item%", getName())
130+
.replace("%cost%", String.valueOf(getCost()))
131+
.replace("%price%", String.valueOf(getCost())))
132+
));
136133
}
137134

138135
public ItemStack getItem(Player player) {
@@ -166,7 +163,8 @@ public ItemStack getItem(Player player) {
166163
getLore().forEach(line -> finalItem.addLoreLine(RyMessageUtils.translate(player, line
167164
.replace("%item%", getName())
168165
.replace("%cost%", String.valueOf(getCost()))
169-
.replace("%price%", String.valueOf(getCost())))));
166+
.replace("%price%", String.valueOf(getCost()))))
167+
);
170168
finalItem.setDurability(getDurability());
171169

172170
if (!isSkulls() && !isHeadDatabase())

src/main/java/me/refracdevelopment/simplegems/utilities/ItemBuilder.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package me.refracdevelopment.simplegems.utilities;
22

33
import com.cryptomorin.xseries.XMaterial;
4-
import net.kyori.adventure.text.Component;
54
import org.bukkit.Bukkit;
65
import org.bukkit.Color;
76
import org.bukkit.DyeColor;

0 commit comments

Comments
 (0)