add GhastTools
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package ghast;
|
package ghast;
|
||||||
|
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -35,10 +36,11 @@ public class AssetsManager {
|
|||||||
saveTo(resourceName, targetPath.toPath());
|
saveTo(resourceName, targetPath.toPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream loadResource(Path pluginFolder, String resourceName, String defaultResourceName, boolean saveDefault) {
|
public InputStream loadResource(String resourceName, String defaultResourceName, boolean saveDefault) {
|
||||||
|
Plugin plugin = GhastTools.getPlugin();
|
||||||
InputStream inputStream;
|
InputStream inputStream;
|
||||||
|
|
||||||
Path pathToResource = pluginFolder.resolve(resourceName);
|
Path pathToResource = plugin.getDataFolder().toPath().resolve(resourceName);
|
||||||
if (Files.exists(pathToResource)) {
|
if (Files.exists(pathToResource)) {
|
||||||
inputStream = openResource(pathToResource);
|
inputStream = openResource(pathToResource);
|
||||||
} else if (defaultResourceName != null) {
|
} else if (defaultResourceName != null) {
|
||||||
@@ -57,32 +59,16 @@ public class AssetsManager {
|
|||||||
return inputStream;
|
return inputStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream loadResource(Path pluginFolder, String resourceName, String defaultResourceName) {
|
public InputStream loadResource(String resourceName, String defaultResourceName) {
|
||||||
return loadResource(pluginFolder, resourceName, defaultResourceName, true);
|
return loadResource(resourceName, defaultResourceName, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream loadResource(Path pluginFolder, String resourceName, boolean saveDefault) {
|
public InputStream loadResource(String resourceName, boolean saveDefault) {
|
||||||
return loadResource(pluginFolder, resourceName, resourceName, saveDefault);
|
return loadResource(resourceName, resourceName, saveDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream loadResource(Path pluginFolder, String resourceName) {
|
public InputStream loadResource(String resourceName) {
|
||||||
return loadResource(pluginFolder, resourceName, true);
|
return loadResource(resourceName, resourceName, true);
|
||||||
}
|
|
||||||
|
|
||||||
public InputStream loadResource(File pluginFolder, String resourceName, String defaultResourceName, boolean saveDefault) {
|
|
||||||
return loadResource(pluginFolder.toPath(), resourceName, defaultResourceName, saveDefault);
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputStream loadResource(File pluginFolder, String resourceName, String defaultResourceName) {
|
|
||||||
return loadResource(pluginFolder, resourceName, defaultResourceName, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputStream loadResource(File pluginFolder, String resourceName, boolean saveDefault) {
|
|
||||||
return loadResource(pluginFolder.toPath(), resourceName, saveDefault);
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputStream loadResource(File pluginFolder, String resourceName) {
|
|
||||||
return loadResource(pluginFolder, resourceName, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private URL getResourceUrl(String resourceName) {
|
private URL getResourceUrl(String resourceName) {
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -20,8 +19,8 @@ import java.util.function.Consumer;
|
|||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class EventManager {
|
public class EventManager {
|
||||||
|
|
||||||
public Builder createContext(Plugin plugin) {
|
public Builder createContext() {
|
||||||
return new Builder(plugin);
|
return new Builder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
@@ -30,7 +29,6 @@ public class EventManager {
|
|||||||
private static final BooleanSupplier EMPTY_FILTER = () -> true;
|
private static final BooleanSupplier EMPTY_FILTER = () -> true;
|
||||||
|
|
||||||
private final EventContext eventContext = new EventContext();
|
private final EventContext eventContext = new EventContext();
|
||||||
private final Plugin plugin;
|
|
||||||
|
|
||||||
public Builder filter(BooleanSupplier filter) {
|
public Builder filter(BooleanSupplier filter) {
|
||||||
eventContext.setFilter(filter != null ? filter : EMPTY_FILTER);
|
eventContext.setFilter(filter != null ? filter : EMPTY_FILTER);
|
||||||
@@ -40,7 +38,7 @@ public class EventManager {
|
|||||||
public <T extends Event> Builder onEvent(Class<T> eventType, EventPriority eventPriority, Consumer<T> consumer) {
|
public <T extends Event> Builder onEvent(Class<T> eventType, EventPriority eventPriority, Consumer<T> consumer) {
|
||||||
eventContext.getEventMap().put(eventType, consumer);
|
eventContext.getEventMap().put(eventType, consumer);
|
||||||
Bukkit.getPluginManager().registerEvent(eventType, eventContext, eventPriority,
|
Bukkit.getPluginManager().registerEvent(eventType, eventContext, eventPriority,
|
||||||
eventContext::eventExecute, plugin);
|
eventContext::eventExecute, GhastTools.getPlugin());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
57
src/main/java/ghast/GhastTools.java
Normal file
57
src/main/java/ghast/GhastTools.java
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
package ghast;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
@UtilityClass
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public class GhastTools {
|
||||||
|
|
||||||
|
private static WeakReference<Plugin> refPlugin;
|
||||||
|
|
||||||
|
@SuppressWarnings("java:S2696")
|
||||||
|
public void setPlugin(Plugin plugin) {
|
||||||
|
if (plugin == null) {
|
||||||
|
refPlugin = null;
|
||||||
|
} else {
|
||||||
|
refPlugin = new WeakReference<>(plugin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("java:S112")
|
||||||
|
public YamlConfiguration loadConfig(boolean saveDefault) {
|
||||||
|
if (saveDefault) {
|
||||||
|
getPlugin().saveDefaultConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
try (InputStream inputStream = AssetsManager.loadResource("config.yml", saveDefault)) {
|
||||||
|
return YamlConfiguration.loadConfiguration(new InputStreamReader(inputStream));
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException("Error load config: " + e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public YamlConfiguration loadConfig() {
|
||||||
|
return loadConfig(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("java:S112")
|
||||||
|
Plugin getPlugin() {
|
||||||
|
if (refPlugin == null) {
|
||||||
|
throw new RuntimeException("Plugin not set.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Plugin plugin = refPlugin.get();
|
||||||
|
if (plugin == null) {
|
||||||
|
throw new RuntimeException("Plugin not set.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user