Skip to content

Commit 1140aa4

Browse files
committed
finish updating usage
1 parent 72c49b3 commit 1140aa4

31 files changed

+225
-135
lines changed

src/main/java/me/hsgamer/bettergui/BetterGUI.java

Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import io.github.projectunified.minelib.plugin.command.CommandComponent;
66
import io.github.projectunified.minelib.plugin.postenable.PostEnable;
77
import io.github.projectunified.minelib.plugin.postenable.PostEnableComponent;
8-
import me.hsgamer.bettergui.api.menu.Menu;
98
import me.hsgamer.bettergui.builder.*;
109
import me.hsgamer.bettergui.command.*;
1110
import me.hsgamer.bettergui.config.MainConfig;
@@ -15,24 +14,22 @@
1514
import me.hsgamer.bettergui.manager.AddonManager;
1615
import me.hsgamer.bettergui.manager.MenuCommandManager;
1716
import me.hsgamer.bettergui.manager.MenuManager;
18-
import me.hsgamer.bettergui.papi.ExtraPlaceholderExpansion;
19-
import me.hsgamer.bettergui.util.StringReplacerApplier;
17+
import me.hsgamer.bettergui.manager.VariableManager;
18+
import me.hsgamer.bettergui.papi.PlaceholderAPIHook;
2019
import me.hsgamer.hscore.bukkit.config.BukkitConfig;
2120
import me.hsgamer.hscore.bukkit.utils.MessageUtils;
22-
import me.hsgamer.hscore.bukkit.variable.BukkitVariableBundle;
2321
import me.hsgamer.hscore.checker.spigotmc.SpigotVersionChecker;
2422
import me.hsgamer.hscore.common.CachedValue;
25-
import me.hsgamer.hscore.common.StringReplacer;
2623
import me.hsgamer.hscore.config.proxy.ConfigGenerator;
27-
import me.hsgamer.hscore.variable.CommonVariableBundle;
28-
import me.hsgamer.hscore.variable.VariableBundle;
2924
import org.bstats.bukkit.Metrics;
3025
import org.bstats.charts.AdvancedPie;
3126
import org.bstats.charts.DrilldownPie;
32-
import org.bukkit.Bukkit;
3327
import org.bukkit.plugin.java.JavaPlugin;
3428

35-
import java.util.*;
29+
import java.util.Arrays;
30+
import java.util.HashMap;
31+
import java.util.List;
32+
import java.util.Map;
3633

3734
/**
3835
* The main class of the plugin
@@ -51,25 +48,20 @@ public static BetterGUI getInstance() {
5148

5249
@Override
5350
protected List<Object> getComponents() {
54-
VariableBundle variableBundle = new VariableBundle();
55-
CommonVariableBundle.registerVariables(variableBundle);
56-
BukkitVariableBundle.registerVariables(variableBundle);
57-
variableBundle.register("menu_", StringReplacer.of((original, uuid) -> {
58-
String[] split = original.split("_", 2);
59-
String menuName = split[0].trim();
60-
String variable = split.length > 1 ? split[1].trim() : "";
61-
Menu menu = get(MenuManager.class).getMenu(menuName);
62-
if (menu == null) {
63-
return null;
64-
}
65-
return menu.getVariableManager().setVariables(StringReplacerApplier.normalizeQuery(variable), uuid);
66-
}));
67-
68-
List<Object> components = new ArrayList<>(Arrays.asList(
69-
variableBundle,
51+
return Arrays.asList(
52+
new VariableManager(this),
7053

7154
new PostEnableComponent(this),
7255

56+
new ActionBuilder(this),
57+
new ArgumentProcessorBuilder(),
58+
new ButtonBuilder(),
59+
new ConfigBuilder(),
60+
new InventoryBuilder(),
61+
new ItemModifierBuilder(),
62+
new MenuBuilder(),
63+
new RequirementBuilder(),
64+
7365
new Permissions(this),
7466
new CommandComponent(this,
7567
new OpenCommand(this),
@@ -89,14 +81,9 @@ protected List<Object> getComponents() {
8981
new MenuCommandManager(this),
9082
new AddonDownloader(this),
9183

92-
new SpigotInventoryUIListener(this)
93-
));
94-
95-
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
96-
components.add(new ExtraPlaceholderExpansion(this));
97-
}
98-
99-
return components;
84+
new SpigotInventoryUIListener(this),
85+
new PlaceholderAPIHook(this)
86+
);
10087
}
10188

10289
@Override
@@ -143,12 +130,6 @@ public void postEnable() {
143130
@Override
144131
public void disable() {
145132
get(SpigotInventoryUIListener.class).unregister();
146-
ActionBuilder.INSTANCE.clear();
147-
ButtonBuilder.INSTANCE.clear();
148-
ItemModifierBuilder.INSTANCE.clear();
149-
MenuBuilder.INSTANCE.clear();
150-
RequirementBuilder.INSTANCE.clear();
151-
get(VariableBundle.class).unregisterAll();
152133
INSTANCE_CACHE.clearCache();
153134
}
154135
}

src/main/java/me/hsgamer/bettergui/action/ActionApplier.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.action;
22

3+
import me.hsgamer.bettergui.BetterGUI;
34
import me.hsgamer.bettergui.api.menu.Menu;
45
import me.hsgamer.bettergui.api.process.ProcessApplier;
56
import me.hsgamer.bettergui.builder.ActionBuilder;
@@ -42,7 +43,7 @@ public ActionApplier(List<Action> actions, StringReplacer replacer) {
4243
* @param value the value
4344
*/
4445
public ActionApplier(Menu menu, Object value) {
45-
this(ActionBuilder.INSTANCE.build(menu, value), StringReplacer.of((original, uuid) -> StringReplacerApplier.replace(original, uuid, menu)));
46+
this(BetterGUI.getInstance().get(ActionBuilder.class).build(menu, value), StringReplacer.of((original, uuid) -> StringReplacerApplier.replace(original, uuid, menu)));
4647
}
4748

4849
/**

src/main/java/me/hsgamer/bettergui/action/ClickActionHandler.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import me.hsgamer.hscore.task.BatchRunnable;
1010
import org.bukkit.Bukkit;
1111

12-
import java.util.HashMap;
13-
import java.util.Map;
14-
import java.util.Optional;
15-
import java.util.UUID;
12+
import java.util.*;
1613

1714
/**
1815
* A handler to handle the click action
@@ -49,8 +46,9 @@ public ClickActionHandler(Menu menu, Object o, boolean closeOnClick) {
4946
Map<String, Object> keys = MapUtils.createLowercaseStringObjectMap((Map<?, ?>) o);
5047
Optional<ActionApplier> defaultActionApplier = Optional.ofNullable(keys.get("default")).map(value -> new ActionApplier(menu, value));
5148
clickTypeMap.forEach((clickTypeName, clickType) -> {
52-
if (keys.containsKey(clickTypeName)) {
53-
actionMap.put(clickType, new ActionApplier(menu, keys.get(clickTypeName)));
49+
Object value = keys.get(clickTypeName.toLowerCase(Locale.ROOT));
50+
if (value != null) {
51+
actionMap.put(clickType, new ActionApplier(menu, value));
5452
} else {
5553
defaultActionApplier.ifPresent(actionApplier -> actionMap.put(clickType, actionApplier));
5654
}

src/main/java/me/hsgamer/bettergui/api/menu/Menu.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.api.menu;
22

3+
import me.hsgamer.bettergui.BetterGUI;
34
import me.hsgamer.hscore.common.StringReplacer;
45
import me.hsgamer.hscore.config.Config;
56
import me.hsgamer.hscore.variable.VariableManager;
@@ -29,7 +30,7 @@ protected Menu(Config config) {
2930
this.config = config;
3031
variableManager.register("current-menu", original -> getName(), true);
3132
variableManager.register("parent-menu", StringReplacer.of((original, uuid) -> getParentMenu(uuid).map(Menu::getName).orElse("")));
32-
variableManager.addExternalReplacer(VariableManager.GLOBAL);
33+
variableManager.addExternalReplacer(BetterGUI.getInstance().get(VariableManager.class));
3334
}
3435

3536
/**

src/main/java/me/hsgamer/bettergui/argument/ArgumentHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.argument;
22

3+
import me.hsgamer.bettergui.BetterGUI;
34
import me.hsgamer.bettergui.api.argument.ArgumentProcessor;
45
import me.hsgamer.bettergui.api.menu.Menu;
56
import me.hsgamer.bettergui.builder.ArgumentProcessorBuilder;
@@ -28,7 +29,7 @@ public ArgumentHandler(Menu menu, Map<String, Object> section) {
2829
if (value instanceof Map) {
2930
//noinspection unchecked
3031
Map<String, Object> map = (Map<String, Object>) value;
31-
ArgumentProcessorBuilder.INSTANCE
32+
BetterGUI.getInstance().get(ArgumentProcessorBuilder.class)
3233
.build(new ArgumentProcessorBuilder.Input(menu, key, map))
3334
.ifPresent(processor -> processorMap.put(key, processor));
3435
}

src/main/java/me/hsgamer/bettergui/builder/ActionBuilder.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.builder;
22

3+
import io.github.projectunified.minelib.plugin.base.Loadable;
34
import me.hsgamer.bettergui.BetterGUI;
45
import me.hsgamer.bettergui.action.type.*;
56
import me.hsgamer.bettergui.api.menu.Menu;
@@ -16,21 +17,28 @@
1617
/**
1718
* The action builder
1819
*/
19-
public final class ActionBuilder extends me.hsgamer.hscore.action.builder.ActionBuilder<ActionBuilder.Input> {
20-
/**
21-
* The instance of the action builder
22-
*/
23-
public static final ActionBuilder INSTANCE = new ActionBuilder();
20+
public final class ActionBuilder extends me.hsgamer.hscore.action.builder.ActionBuilder<ActionBuilder.Input> implements Loadable {
21+
private final BetterGUI plugin;
22+
23+
public ActionBuilder(BetterGUI plugin) {
24+
this.plugin = plugin;
25+
}
2426

25-
private ActionBuilder() {
26-
BukkitActionBuilder.register(this, BetterGUI.getInstance());
27+
@Override
28+
public void load() {
29+
BukkitActionBuilder.register(this, plugin);
2730
register(OpenMenuAction::new, "open-menu", "open", "menu", "open-menu");
2831
register(BackAction::new, "back-menu", "backmenu");
2932
register(input -> new CloseMenuAction(input.getMenu()), "close-menu", "closemenu");
3033
register(input -> new UpdateMenuAction(input.getMenu()), "update-menu", "updatemenu");
3134
register(input -> new SoundAction(input.getValue()), "sound", "raw-sound");
3235
}
3336

37+
@Override
38+
public void disable() {
39+
clear();
40+
}
41+
3442
/**
3543
* Build a list of actions
3644
*

src/main/java/me/hsgamer/bettergui/builder/ArgumentProcessorBuilder.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.builder;
22

3+
import io.github.projectunified.minelib.plugin.base.Loadable;
34
import me.hsgamer.bettergui.api.argument.ArgumentProcessor;
45
import me.hsgamer.bettergui.api.menu.Menu;
56
import me.hsgamer.bettergui.argument.type.*;
@@ -12,13 +13,12 @@
1213
/**
1314
* The argument processor builder
1415
*/
15-
public final class ArgumentProcessorBuilder extends FunctionalMassBuilder<ArgumentProcessorBuilder.Input, ArgumentProcessor> {
16-
/**
17-
* The instance of the argument processor builder
18-
*/
19-
public static final ArgumentProcessorBuilder INSTANCE = new ArgumentProcessorBuilder();
16+
public final class ArgumentProcessorBuilder extends FunctionalMassBuilder<ArgumentProcessorBuilder.Input, ArgumentProcessor> implements Loadable {
17+
public ArgumentProcessorBuilder() {
18+
}
2019

21-
private ArgumentProcessorBuilder() {
20+
@Override
21+
public void enable() {
2222
register(StoreArgumentProcessor::new, "store");
2323
register(PlayerArgumentProcessor::new, "player");
2424
register(NumberArgumentProcessor::new, "number", "int", "integer", "long");
@@ -27,6 +27,11 @@ private ArgumentProcessorBuilder() {
2727
register(MaterialArgumentProcessor::new, "material", "item");
2828
}
2929

30+
@Override
31+
public void disable() {
32+
clear();
33+
}
34+
3035
@Override
3136
protected String getType(Input input) {
3237
return Objects.toString(MapUtils.createLowercaseStringObjectMap(input.options).get("type"), "store");

src/main/java/me/hsgamer/bettergui/builder/ButtonBuilder.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.builder;
22

3+
import io.github.projectunified.minelib.plugin.base.Loadable;
34
import me.hsgamer.bettergui.BetterGUI;
45
import me.hsgamer.bettergui.api.button.WrappedButton;
56
import me.hsgamer.bettergui.api.menu.Menu;
@@ -17,13 +18,12 @@
1718
/**
1819
* The button builder
1920
*/
20-
public final class ButtonBuilder extends FunctionalMassBuilder<ButtonBuilder.Input, WrappedButton> {
21-
/**
22-
* The instance of the button builder
23-
*/
24-
public static final ButtonBuilder INSTANCE = new ButtonBuilder();
21+
public final class ButtonBuilder extends FunctionalMassBuilder<ButtonBuilder.Input, WrappedButton> implements Loadable {
22+
public ButtonBuilder() {
23+
}
2524

26-
private ButtonBuilder() {
25+
@Override
26+
public void load() {
2727
register(TemplateButton::new, "template");
2828
register(WrappedDummyButton::new, "dummy", "raw");
2929
register(EmptyButton::new, "empty");
@@ -40,6 +40,11 @@ private ButtonBuilder() {
4040
);
4141
}
4242

43+
@Override
44+
public void disable() {
45+
clear();
46+
}
47+
4348
@Override
4449
protected String getType(Input input) {
4550
return Objects.toString(MapUtils.createLowercaseStringObjectMap(input.options).get("type"), "simple");

src/main/java/me/hsgamer/bettergui/builder/ConfigBuilder.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.builder;
22

3+
import io.github.projectunified.minelib.plugin.base.Loadable;
34
import me.hsgamer.hscore.builder.FunctionalMassBuilder;
45
import me.hsgamer.hscore.bukkit.config.BukkitConfig;
56
import me.hsgamer.hscore.config.Config;
@@ -9,16 +10,20 @@
910
/**
1011
* The config builder
1112
*/
12-
public class ConfigBuilder extends FunctionalMassBuilder<File, Config> {
13-
/**
14-
* the singleton instance
15-
*/
16-
public static final ConfigBuilder INSTANCE = new ConfigBuilder();
13+
public class ConfigBuilder extends FunctionalMassBuilder<File, Config> implements Loadable {
14+
public ConfigBuilder() {
15+
}
1716

18-
private ConfigBuilder() {
17+
@Override
18+
public void load() {
1919
register(BukkitConfig::new, "yml", "yaml");
2020
}
2121

22+
@Override
23+
public void disable() {
24+
clear();
25+
}
26+
2227
@Override
2328
protected String getType(File input) {
2429
String name = input.getName();
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.hsgamer.bettergui.builder;
22

3+
import io.github.projectunified.minelib.plugin.base.Loadable;
34
import me.hsgamer.bettergui.menu.BaseInventoryMenu;
45
import me.hsgamer.hscore.builder.Builder;
56
import me.hsgamer.hscore.common.Pair;
@@ -13,13 +14,13 @@
1314
/**
1415
* A builder to get the creator to build the {@link Inventory} for any {@link me.hsgamer.bettergui.menu.BaseInventoryMenu} implementation
1516
*/
16-
public class InventoryBuilder extends Builder<Pair<BaseInventoryMenu<?>, Map<String, Object>>, BiFunction<UUID, InventoryHolder, Inventory>> {
17-
/**
18-
* The singleton instance
19-
*/
20-
public static final InventoryBuilder INSTANCE = new InventoryBuilder();
21-
22-
private InventoryBuilder() {
17+
public class InventoryBuilder extends Builder<Pair<BaseInventoryMenu<?>, Map<String, Object>>, BiFunction<UUID, InventoryHolder, Inventory>> implements Loadable {
18+
public InventoryBuilder() {
2319
// EMPTY
2420
}
21+
22+
@Override
23+
public void disable() {
24+
clear();
25+
}
2526
}

0 commit comments

Comments
 (0)