Skip to content

Commit 40a7a5a

Browse files
committed
Add registering utils in CoreJavaPlugin
1 parent c19ed9b commit 40a7a5a

File tree

2 files changed

+66
-4
lines changed

2 files changed

+66
-4
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
88
compileJava.options.encoding 'UTF-8'
99

1010
group 'me.dkim19375'
11-
version '2.5.1'
11+
version '2.6.0'
1212

1313
repositories {
1414
mavenCentral()

src/main/java/me/dkim19375/dkim19375core/CoreJavaPlugin.java

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
package me.dkim19375.dkim19375core;
22

33
import org.bukkit.Bukkit;
4+
import org.bukkit.command.CommandExecutor;
5+
import org.bukkit.command.PluginCommand;
6+
import org.bukkit.command.TabCompleter;
7+
import org.bukkit.event.Listener;
48
import org.bukkit.plugin.java.JavaPlugin;
9+
import org.jetbrains.annotations.NotNull;
10+
import org.jetbrains.annotations.Nullable;
511

12+
import java.util.HashSet;
13+
import java.util.Set;
614
import java.util.logging.Level;
715
import java.util.logging.Logger;
816

917
public abstract class CoreJavaPlugin extends JavaPlugin {
1018
private static final Logger logger = Bukkit.getLogger();
19+
private final Set<ConfigFile> files = new HashSet<>();
1120

12-
public static void log(Level level, String msg) {
13-
logger.log(level, msg);
14-
}
21+
public static void log(Level level, String msg) { logger.log(level, msg); }
22+
23+
@SuppressWarnings("unused")
24+
public static void log(String msg) { log(Level.INFO, msg); }
1525

1626
@Override
1727
public abstract void onEnable();
@@ -23,5 +33,57 @@ public static void log(Level level, String msg) {
2333
public void reloadConfig() {
2434
saveDefaultConfig();
2535
super.reloadConfig();
36+
files.forEach(this::reloadConfig);
37+
}
38+
39+
public void reloadConfig(ConfigFile config) {
40+
config.saveDefaultConfig();
41+
config.reload();
42+
}
43+
44+
public void registerCommand(@NotNull String command, @NotNull CommandExecutor executor, @Nullable TabCompleter tabCompleter) {
45+
final PluginCommand cmd = getCommand(command);
46+
if (cmd == null) {
47+
logger.log(Level.SEVERE, "Could not register command: " + command + "!");
48+
getServer().getPluginManager().disablePlugin(this);
49+
throw new NullPointerException("[" + getDescription().getName() + "] Could not register command: " + command + "!");
50+
}
51+
cmd.setExecutor(executor);
52+
if (tabCompleter != null) {
53+
cmd.setTabCompleter(tabCompleter);
54+
}
55+
}
56+
57+
@SuppressWarnings("unused")
58+
public void registerCommand(@NotNull String command, @NotNull CommandExecutor executor) {
59+
registerCommand(command, executor, null);
60+
}
61+
62+
@SuppressWarnings("unused")
63+
public void registerListener(Listener listener) {
64+
getServer().getPluginManager().registerEvents(listener, this);
65+
}
66+
67+
@SuppressWarnings("unused")
68+
public void registerConfig(ConfigFile config) {
69+
unregisterConfig(config);
70+
files.add(config);
71+
reloadConfig(config);
72+
}
73+
74+
public void unregisterConfig(ConfigFile config) {
75+
unregisterConfig(config.getName());
76+
}
77+
78+
public void unregisterConfig(String config) {
79+
new HashSet<>(files).forEach(file -> {
80+
if (file.getName().equals(config)) {
81+
files.remove(file);
82+
}
83+
});
84+
}
85+
86+
public Set<ConfigFile> getRegisteredFiles() {
87+
return files;
2688
}
2789
}

0 commit comments

Comments
 (0)