diff --git a/README.md b/README.md
index 75b2d0b..026e274 100644
--- a/README.md
+++ b/README.md
@@ -2,15 +2,15 @@
```xml
- zhdev-repo
- https://maven.zhdev.org/repository/
+ zhira-repo
+ https://maven.zhira.net/repository/
```
```xml
- org.zhdev.varioutil
+ net.zhira.varioutil
all
1.0-SNAPSHOT
@@ -22,7 +22,7 @@
```xml
- org.zhdev.varioutil
+ net.zhira.varioutil
common
1.0-SNAPSHOT
@@ -32,7 +32,7 @@
```java
import java.lang.reflect.Field;
-import org.zhdev.varioutil.ReflectionUtils;
+import net.zhira.varioutil.ReflectionUtils;
import org.bukkit.Bukkit;
public class BukkitFields {
@@ -53,7 +53,7 @@ public class BukkitFields {
```xml
- org.zhdev.varioutil
+ net.zhira.varioutil
io
1.0-SNAPSHOT
@@ -62,8 +62,8 @@ public class BukkitFields {
#### Code
```java
-import org.zhdev.varioutil.Config;
-import org.zhdev.varioutil.YamlConfig;
+import net.zhira.varioutil.Config;
+import net.zhira.varioutil.YamlConfig;
import java.util.List;
diff --git a/all/pom.xml b/all/pom.xml
index 715d7cd..5f6ac5a 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -1,9 +1,12 @@
-
+
+
4.0.0
parent
- org.zhdev.varioutil
+ net.zhira.varioutil
1.0-SNAPSHOT
diff --git a/bukkit/pom.xml b/bukkit/pom.xml
index 0a6e4dd..3f72d70 100644
--- a/bukkit/pom.xml
+++ b/bukkit/pom.xml
@@ -1,8 +1,11 @@
-
+
+
4.0.0
- org.zhdev.varioutil
+ net.zhira.varioutil
parent
1.0-SNAPSHOT
@@ -44,7 +47,7 @@
org.spigotmc
spigot-api
- 1.20-R0.1-SNAPSHOT
+ 1.21.1-R0.1-SNAPSHOT
provided
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/BukkitPlugin.java b/bukkit/src/main/java/net/zhira/varioutil/BukkitPlugin.java
similarity index 98%
rename from bukkit/src/main/java/org/zhdev/varioutil/BukkitPlugin.java
rename to bukkit/src/main/java/net/zhira/varioutil/BukkitPlugin.java
index 377eafe..3a2ecea 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/BukkitPlugin.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/BukkitPlugin.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil;
+package net.zhira.varioutil;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/BukkitPreparedPlugin.java b/bukkit/src/main/java/net/zhira/varioutil/BukkitPreparedPlugin.java
similarity index 92%
rename from bukkit/src/main/java/org/zhdev/varioutil/BukkitPreparedPlugin.java
rename to bukkit/src/main/java/net/zhira/varioutil/BukkitPreparedPlugin.java
index 4bab94c..b5db48e 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/BukkitPreparedPlugin.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/BukkitPreparedPlugin.java
@@ -1,5 +1,8 @@
-package org.zhdev.varioutil;
+package net.zhira.varioutil;
+import net.zhira.varioutil.language.Language;
+import net.zhira.varioutil.util.CollectionUtils;
+import net.zhira.varioutil.util.ColorUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.PluginIdentifiableCommand;
@@ -9,17 +12,14 @@ import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPluginLoader;
import org.jetbrains.annotations.NotNull;
-import org.zhdev.varioutil.bukkit.command.PreparedPluginCommand;
-import org.zhdev.varioutil.config.BukkitYamlConfig;
-import org.zhdev.varioutil.config.Config;
-import org.zhdev.varioutil.config.ConfigSection;
-import org.zhdev.varioutil.config.YamlConfig;
-import org.zhdev.varioutil.language.Language;
-import org.zhdev.varioutil.sql.SqlAdapter;
-import org.zhdev.varioutil.util.BukkitUtils;
-import org.zhdev.varioutil.util.CollectionUtils;
-import org.zhdev.varioutil.util.ColorUtils;
-import org.zhdev.varioutil.util.ConfigUtils;
+import net.zhira.varioutil.bukkit.command.PreparedPluginCommand;
+import net.zhira.varioutil.config.BukkitYamlConfig;
+import net.zhira.varioutil.config.Config;
+import net.zhira.varioutil.config.ConfigSection;
+import net.zhira.varioutil.config.YamlConfig;
+import net.zhira.varioutil.sql.SqlAdapter;
+import net.zhira.varioutil.util.BukkitUtils;
+import net.zhira.varioutil.util.ConfigUtils;
import java.io.File;
import java.nio.file.Path;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/LegacyMaterial.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/LegacyMaterial.java
similarity index 97%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/LegacyMaterial.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/LegacyMaterial.java
index c6f1fef..c145309 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/LegacyMaterial.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/LegacyMaterial.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit;
+package net.zhira.varioutil.bukkit;
import org.bukkit.Material;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/command/AbstractPluginCommand.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/command/AbstractPluginCommand.java
similarity index 98%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/command/AbstractPluginCommand.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/command/AbstractPluginCommand.java
index b41319e..57c7723 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/command/AbstractPluginCommand.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/command/AbstractPluginCommand.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.command;
+package net.zhira.varioutil.bukkit.command;
import org.bukkit.command.*;
import org.bukkit.plugin.Plugin;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/command/PreparedPluginCommand.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/command/PreparedPluginCommand.java
similarity index 95%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/command/PreparedPluginCommand.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/command/PreparedPluginCommand.java
index c3866e2..4525ca6 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/command/PreparedPluginCommand.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/command/PreparedPluginCommand.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.command;
+package net.zhira.varioutil.bukkit.command;
import org.bukkit.command.*;
import org.bukkit.plugin.Plugin;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/ClickHandler.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/ClickHandler.java
similarity index 83%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/ClickHandler.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/ClickHandler.java
index 7c9aef7..c988f56 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/ClickHandler.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/ClickHandler.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/Gui.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/Gui.java
similarity index 98%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/Gui.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/Gui.java
index 59d87dd..a22c4d6 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/Gui.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/Gui.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
import org.bukkit.Material;
import org.bukkit.entity.Player;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiConfig.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiConfig.java
similarity index 95%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiConfig.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiConfig.java
index f3dbe05..824d7c5 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiConfig.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiConfig.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
-import org.zhdev.varioutil.config.ConfigSection;
+import net.zhira.varioutil.config.ConfigSection;
import java.util.Collections;
import java.util.HashMap;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiHolder.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiHolder.java
similarity index 92%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiHolder.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiHolder.java
index ab31d90..b9532bd 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiHolder.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiHolder.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
import org.bukkit.Bukkit;
import org.bukkit.inventory.Inventory;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiIcon.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiIcon.java
similarity index 97%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiIcon.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiIcon.java
index ca641b7..2cdba1d 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiIcon.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiIcon.java
@@ -1,11 +1,11 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
import org.bukkit.Material;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
-import org.zhdev.varioutil.util.BukkitUtils;
+import net.zhira.varioutil.util.BukkitUtils;
import java.util.Arrays;
import java.util.Collections;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiIconConfig.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiIconConfig.java
similarity index 87%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiIconConfig.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiIconConfig.java
index 6a4cd08..c175571 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiIconConfig.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiIconConfig.java
@@ -1,9 +1,9 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
+import net.zhira.varioutil.config.ConfigSection;
+import net.zhira.varioutil.util.StringUtils;
import org.bukkit.Material;
-import org.zhdev.varioutil.bukkit.LegacyMaterial;
-import org.zhdev.varioutil.config.ConfigSection;
-import org.zhdev.varioutil.util.StringUtils;
+import net.zhira.varioutil.bukkit.LegacyMaterial;
public class GuiIconConfig {
protected final Material type;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiListener.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiListener.java
similarity index 98%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiListener.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiListener.java
index 43fac37..a52cc44 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiListener.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiListener.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiType.java b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiType.java
similarity index 96%
rename from bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiType.java
rename to bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiType.java
index 250be28..5479726 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/bukkit/gui/GuiType.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/bukkit/gui/GuiType.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.bukkit.gui;
+package net.zhira.varioutil.bukkit.gui;
import org.bukkit.Bukkit;
import org.bukkit.event.inventory.InventoryType;
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/config/BukkitYamlConfig.java b/bukkit/src/main/java/net/zhira/varioutil/config/BukkitYamlConfig.java
similarity index 97%
rename from bukkit/src/main/java/org/zhdev/varioutil/config/BukkitYamlConfig.java
rename to bukkit/src/main/java/net/zhira/varioutil/config/BukkitYamlConfig.java
index 323102e..5295f26 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/config/BukkitYamlConfig.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/config/BukkitYamlConfig.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
diff --git a/bukkit/src/main/java/net/zhira/varioutil/util/BukkitReflectionUtils.java b/bukkit/src/main/java/net/zhira/varioutil/util/BukkitReflectionUtils.java
new file mode 100644
index 0000000..8e05db3
--- /dev/null
+++ b/bukkit/src/main/java/net/zhira/varioutil/util/BukkitReflectionUtils.java
@@ -0,0 +1,132 @@
+package net.zhira.varioutil.util;
+
+import com.mojang.authlib.GameProfile;
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandMap;
+import org.bukkit.command.SimpleCommandMap;
+import org.bukkit.inventory.meta.SkullMeta;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Supplier;
+
+class BukkitReflectionUtils {
+ private static final String OBC_PACKAGE = Bukkit.getServer().getClass().getPackage().getName();
+
+ private static final Class> __CraftServer__CLASS = ReflectionUtils.searchType(OBC_PACKAGE + ".CraftServer");
+ private static final Class> __CraftMetaSkull__CLASS = ReflectionUtils.searchType(OBC_PACKAGE + ".inventory.CraftMetaSkull");
+
+ private static final Field __commandMap__CraftServer__FIELD = ReflectionUtils.fieldSearcher()
+ .type(__CraftServer__CLASS)
+ .fieldOf("commandMap")
+ .fieldType(CommandMap.class)
+ .search();
+ private static final Field __knownCommands__SimpleCommandMap__FIELD = ReflectionUtils.fieldSearcher()
+ .type(SimpleCommandMap.class)
+ .fieldOf("knownCommands")
+ .fieldType(Map.class)
+ .search();
+
+ private static final GameProfileConsumer GAME_PROFILE_CONSUMER;
+
+ static CommandMap getCommandMap() {
+ return (CommandMap) ReflectionUtils.getFieldValue(Bukkit.getServer(), __commandMap__CraftServer__FIELD);
+ }
+
+ @SuppressWarnings("unchecked")
+ static Map getKnownCommands() {
+ return (Map) ReflectionUtils.getFieldValue(getCommandMap(), __knownCommands__SimpleCommandMap__FIELD);
+ }
+
+ static void setProfile(SkullMeta meta, GameProfile profile) {
+ GAME_PROFILE_CONSUMER.accept(meta, profile);
+ }
+
+ private interface GameProfileConsumer {
+ void accept(SkullMeta meta, GameProfile profile);
+ }
+
+ private static class ModernGameProfileConsumer implements GameProfileConsumer {
+ private final Class> __ResolvableProfile_CLASS = ReflectionUtils.getType("net.minecraft.world.item.component.ResolvableProfile");
+ private final Constructor> __ResolvableProfile_CONSTRUCTOR;
+ protected final Method __setProfile__CraftMetaSkull__METHOD = ReflectionUtils.methodSearcher()
+ .type(__CraftMetaSkull__CLASS)
+ .methodOf("setProfile")
+ .parameters(__ResolvableProfile_CLASS)
+ .returns(void.class)
+ .search();
+
+ ModernGameProfileConsumer() {
+ Constructor> resolvableConstructor;
+ try {
+ resolvableConstructor = __ResolvableProfile_CLASS.getConstructor(GameProfile.class);
+ } catch (NoSuchMethodException e) {
+ throw new NoSuchMethodError("Cannot get constructor of " + __ResolvableProfile_CLASS);
+ }
+ __ResolvableProfile_CONSTRUCTOR = resolvableConstructor;
+ }
+
+ @Override
+ public void accept(SkullMeta meta, GameProfile profile) {
+ try {
+ Object resolvableProfile = __ResolvableProfile_CONSTRUCTOR.newInstance(profile);
+ ReflectionUtils.invokeMethod(meta, __setProfile__CraftMetaSkull__METHOD, resolvableProfile);
+ } catch (ReflectiveOperationException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private static class LegacyGameProfileConsumer implements GameProfileConsumer {
+ protected final Method __setProfile__CraftMetaSkull__METHOD = ReflectionUtils.methodSearcher()
+ .type(__CraftMetaSkull__CLASS)
+ .methodOf("setProfile")
+ .parameters(GameProfile.class)
+ .returns(void.class)
+ .search();
+
+ @Override
+ public void accept(SkullMeta meta, GameProfile profile) {
+ ReflectionUtils.invokeMethod(meta, __setProfile__CraftMetaSkull__METHOD, profile);
+ }
+ }
+
+ private static class AncientGameProfileConsumer implements GameProfileConsumer {
+ private final Field __profile__CraftMetaSkull__FIELD = ReflectionUtils.fieldSearcher()
+ .type(__CraftMetaSkull__CLASS)
+ .fieldOf("profile")
+ .fieldType(GameProfile.class)
+ .search();
+
+ @Override
+ public void accept(SkullMeta meta, GameProfile profile) {
+ ReflectionUtils.setFieldValue(meta, __profile__CraftMetaSkull__FIELD, profile);
+ }
+ }
+
+ @SafeVarargs
+ private static GameProfileConsumer tryCreateGameProfileConsumer(Supplier... suppliers) {
+ List errorMessages = new ArrayList<>();
+ for (Supplier supplier : suppliers) {
+ try {
+ return supplier.get();
+ } catch (Exception | Error e) {
+ errorMessages.add(e.getClass() + ": " + e.getMessage());
+ }
+ }
+ throw new IllegalStateException("Cannot create GameProfileConsumer: " + String.join("; ", errorMessages));
+ }
+
+ static {
+ GAME_PROFILE_CONSUMER = tryCreateGameProfileConsumer(
+ ModernGameProfileConsumer::new,
+ LegacyGameProfileConsumer::new,
+ AncientGameProfileConsumer::new
+ );
+ }
+}
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/util/BukkitUtils.java b/bukkit/src/main/java/net/zhira/varioutil/util/BukkitUtils.java
similarity index 86%
rename from bukkit/src/main/java/org/zhdev/varioutil/util/BukkitUtils.java
rename to bukkit/src/main/java/net/zhira/varioutil/util/BukkitUtils.java
index cc75588..1be5413 100644
--- a/bukkit/src/main/java/org/zhdev/varioutil/util/BukkitUtils.java
+++ b/bukkit/src/main/java/net/zhira/varioutil/util/BukkitUtils.java
@@ -1,7 +1,8 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
+import net.zhira.varioutil.Version;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandMap;
@@ -9,15 +10,11 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.util.io.BukkitObjectInputStream;
import org.bukkit.util.io.BukkitObjectOutputStream;
-import org.zhdev.varioutil.Version;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.util.Base64;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
import java.util.function.Predicate;
public class BukkitUtils {
@@ -28,6 +25,8 @@ public class BukkitUtils {
private static final Map PROFILE_CACHE = new HashMap<>();
+ private static final String PROFILE_NAME_CHARACTERS = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_";
+
public static Command getCommand(String label) {
return KNOWN_COMMANDS.get(label);
}
@@ -55,7 +54,12 @@ public class BukkitUtils {
public static void setSkullTexture(SkullMeta meta, String base64) {
GameProfile profile = PROFILE_CACHE.get(base64);
if (profile == null) {
- profile = new GameProfile(UUID.randomUUID(), base64);
+ Random random = new Random();
+ char[] buffer = new char[16];
+ for (int i = 0; i < 16; i++) {
+ buffer[i] = PROFILE_NAME_CHARACTERS.charAt(random.nextInt(PROFILE_NAME_CHARACTERS.length()));
+ }
+ profile = new GameProfile(UUID.randomUUID(), String.valueOf(buffer));
profile.getProperties().put("textures", new Property("textures", base64));
PROFILE_CACHE.put(base64, profile);
}
diff --git a/bukkit/src/main/java/org/zhdev/varioutil/util/BukkitReflectionUtils.java b/bukkit/src/main/java/org/zhdev/varioutil/util/BukkitReflectionUtils.java
deleted file mode 100644
index 31dfba8..0000000
--- a/bukkit/src/main/java/org/zhdev/varioutil/util/BukkitReflectionUtils.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.zhdev.varioutil.util;
-
-import com.mojang.authlib.GameProfile;
-import org.bukkit.Bukkit;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandMap;
-import org.bukkit.command.SimpleCommandMap;
-import org.bukkit.inventory.meta.SkullMeta;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Map;
-
-import static org.zhdev.varioutil.util.ReflectionUtils.*;
-
-class BukkitReflectionUtils {
- private static final String VERSION = Bukkit.getServer().getClass().getName().split("\\.")[3];
-
- private static final Class> __CraftServer__CLASS = searchType("org.bukkit.craftbukkit." + VERSION + ".CraftServer");
-
- private static final Method __setProfile__CraftMetaSkull__METHOD = ReflectionUtils.methodSearcher()
- .typeOf("org.bukkit.craftbukkit." + VERSION + ".inventory.CraftMetaSkull")
- .methodOf("setProfile")
- .parameters(GameProfile.class)
- .returns(void.class)
- .search();
-
- private static final Field __commandMap__CraftServer__FIELD = fieldSearcher()
- .fieldOf("commandMap")
- .type(__CraftServer__CLASS)
- .fieldType(CommandMap.class)
- .search();
- private static final Field __knownCommands__SimpleCommandMap__FIELD = fieldSearcher()
- .fieldOf("knownCommands")
- .type(SimpleCommandMap.class)
- .fieldType(Map.class)
- .search();
-
- static CommandMap getCommandMap() {
- return (CommandMap) getFieldValue(__commandMap__CraftServer__FIELD, Bukkit.getServer());
- }
-
- @SuppressWarnings("unchecked")
- static Map getKnownCommands() {
- return (Map) getFieldValue(__knownCommands__SimpleCommandMap__FIELD, getCommandMap());
- }
-
- static void setProfile(SkullMeta meta, GameProfile profile) {
- ReflectionUtils.invokeMethod(meta, __setProfile__CraftMetaSkull__METHOD, profile);
- }
-}
diff --git a/common/pom.xml b/common/pom.xml
index d09b582..c2ebc50 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -1,9 +1,12 @@
-
+
+
4.0.0
parent
- org.zhdev.varioutil
+ net.zhira.varioutil
1.0-SNAPSHOT
diff --git a/common/src/main/java/org/zhdev/varioutil/Version.java b/common/src/main/java/net/zhira/varioutil/Version.java
similarity index 99%
rename from common/src/main/java/org/zhdev/varioutil/Version.java
rename to common/src/main/java/net/zhira/varioutil/Version.java
index fe36e98..03729e5 100644
--- a/common/src/main/java/org/zhdev/varioutil/Version.java
+++ b/common/src/main/java/net/zhira/varioutil/Version.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil;
+package net.zhira.varioutil;
import org.jetbrains.annotations.NotNull;
diff --git a/common/src/main/java/org/zhdev/varioutil/language/Language.java b/common/src/main/java/net/zhira/varioutil/language/Language.java
similarity index 96%
rename from common/src/main/java/org/zhdev/varioutil/language/Language.java
rename to common/src/main/java/net/zhira/varioutil/language/Language.java
index a8b6ec6..639b9e5 100644
--- a/common/src/main/java/org/zhdev/varioutil/language/Language.java
+++ b/common/src/main/java/net/zhira/varioutil/language/Language.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.language;
+package net.zhira.varioutil.language;
-import org.zhdev.varioutil.util.StringUtils;
+import net.zhira.varioutil.util.StringUtils;
import java.util.HashMap;
import java.util.LinkedHashMap;
diff --git a/common/src/main/java/org/zhdev/varioutil/reflection/FieldSearcher.java b/common/src/main/java/net/zhira/varioutil/reflection/FieldSearcher.java
similarity index 93%
rename from common/src/main/java/org/zhdev/varioutil/reflection/FieldSearcher.java
rename to common/src/main/java/net/zhira/varioutil/reflection/FieldSearcher.java
index 2f39cc3..6086f75 100644
--- a/common/src/main/java/org/zhdev/varioutil/reflection/FieldSearcher.java
+++ b/common/src/main/java/net/zhira/varioutil/reflection/FieldSearcher.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.reflection;
+package net.zhira.varioutil.reflection;
-import org.zhdev.varioutil.util.ReflectionUtils;
+import net.zhira.varioutil.util.ReflectionUtils;
import java.lang.reflect.Field;
@@ -74,7 +74,7 @@ public class FieldSearcher {
}
public Object get() {
- return ReflectionUtils.getFieldValue(search(), instance);
+ return ReflectionUtils.getFieldValue(instance, search());
}
public T get(Class type) {
diff --git a/common/src/main/java/org/zhdev/varioutil/reflection/MethodSearcher.java b/common/src/main/java/net/zhira/varioutil/reflection/MethodSearcher.java
similarity index 96%
rename from common/src/main/java/org/zhdev/varioutil/reflection/MethodSearcher.java
rename to common/src/main/java/net/zhira/varioutil/reflection/MethodSearcher.java
index dc754de..6ca9c81 100644
--- a/common/src/main/java/org/zhdev/varioutil/reflection/MethodSearcher.java
+++ b/common/src/main/java/net/zhira/varioutil/reflection/MethodSearcher.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.reflection;
+package net.zhira.varioutil.reflection;
-import org.zhdev.varioutil.util.ReflectionUtils;
+import net.zhira.varioutil.util.ReflectionUtils;
import java.lang.reflect.Method;
diff --git a/common/src/main/java/org/zhdev/varioutil/util/ArrayUtils.java b/common/src/main/java/net/zhira/varioutil/util/ArrayUtils.java
similarity index 98%
rename from common/src/main/java/org/zhdev/varioutil/util/ArrayUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/ArrayUtils.java
index 52ea91a..1941b5f 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/ArrayUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/ArrayUtils.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
import java.util.Collection;
import java.util.function.Function;
diff --git a/common/src/main/java/org/zhdev/varioutil/util/CollectionUtils.java b/common/src/main/java/net/zhira/varioutil/util/CollectionUtils.java
similarity index 98%
rename from common/src/main/java/org/zhdev/varioutil/util/CollectionUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/CollectionUtils.java
index 8123340..eb0c4eb 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/CollectionUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/CollectionUtils.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
import java.util.Collection;
import java.util.List;
diff --git a/common/src/main/java/org/zhdev/varioutil/util/DateTimeUtils.java b/common/src/main/java/net/zhira/varioutil/util/DateTimeUtils.java
similarity index 99%
rename from common/src/main/java/org/zhdev/varioutil/util/DateTimeUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/DateTimeUtils.java
index 3d1f791..a82cfe1 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/DateTimeUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/DateTimeUtils.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
import java.time.*;
import java.time.format.DateTimeFormatter;
diff --git a/common/src/main/java/org/zhdev/varioutil/util/EnumUtils.java b/common/src/main/java/net/zhira/varioutil/util/EnumUtils.java
similarity index 98%
rename from common/src/main/java/org/zhdev/varioutil/util/EnumUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/EnumUtils.java
index a8b3b36..a04c031 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/EnumUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/EnumUtils.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
public class EnumUtils {
private static > T[] getValues(T eNum) {
diff --git a/common/src/main/java/org/zhdev/varioutil/util/ReflectionUtils.java b/common/src/main/java/net/zhira/varioutil/util/ReflectionUtils.java
similarity index 90%
rename from common/src/main/java/org/zhdev/varioutil/util/ReflectionUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/ReflectionUtils.java
index c44a143..5f9e433 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/ReflectionUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/ReflectionUtils.java
@@ -1,7 +1,7 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
-import org.zhdev.varioutil.reflection.FieldSearcher;
-import org.zhdev.varioutil.reflection.MethodSearcher;
+import net.zhira.varioutil.reflection.FieldSearcher;
+import net.zhira.varioutil.reflection.MethodSearcher;
import java.io.File;
import java.io.IOException;
@@ -61,7 +61,8 @@ public class ReflectionUtils {
for (String typeName : typeNames) {
try {
return Class.forName(typeName);
- } catch (ClassNotFoundException ignored) {}
+ } catch (ClassNotFoundException ignored) {
+ }
}
throw new NoClassDefFoundError(String.join(", ", typeNames));
@@ -81,11 +82,12 @@ public class ReflectionUtils {
for (String typeName : typeNames) {
try {
return Class.forName(packageName + '.' + typeName);
- } catch (ClassNotFoundException ignored) {}
+ } catch (ClassNotFoundException ignored) {
+ }
}
}
- throw new NoClassDefFoundError(String.join(", ", typeNames) + " in " + String.join(", ", packageNames));
+ throw new NoClassDefFoundError(String.join(", ", typeNames) + " in " + String.join(", ", packageNames));
}
public static Method getMethod(Class> type, String methodName, Class>... parameterTypes) throws NoSuchMethodError {
@@ -103,7 +105,8 @@ public class ReflectionUtils {
return checkMethodType(getMethod0(type, methodName, parameterTypes), returnType);
} catch (IllegalStateException e) {
exception = e;
- } catch (NoSuchMethodException ignored) { }
+ } catch (NoSuchMethodException ignored) {
+ }
}
if (parameterTypes.length > 0) {
@@ -144,7 +147,8 @@ public class ReflectionUtils {
return checkFieldType(getField0(type, fieldName), fieldType);
} catch (IllegalStateException e) {
exception = e;
- } catch (NoSuchFieldException ignored) {}
+ } catch (NoSuchFieldException ignored) {
+ }
}
if (exception != null) {
@@ -154,7 +158,7 @@ public class ReflectionUtils {
throw new NoSuchFieldError(String.join(", ", fieldNames) + " in " + type);
}
- public static Object getFieldValue(Field field, Object instance) throws IllegalStateException {
+ public static Object getFieldValue(Object instance, Field field) throws IllegalStateException {
try {
return field.get(instance);
} catch (IllegalAccessException e) {
@@ -162,7 +166,7 @@ public class ReflectionUtils {
}
}
- public static void setFieldValue(Field field, Object instance, Object value) throws IllegalStateException {
+ public static void setFieldValue(Object instance, Field field, Object value) throws IllegalStateException {
try {
field.set(instance, value);
} catch (IllegalAccessException e) {
@@ -186,7 +190,8 @@ public class ReflectionUtils {
if (packagePath.equals(packageName)) {
try {
consumer.accept(loader.loadClass(link));
- } catch (ClassNotFoundException ignored) {}
+ } catch (ClassNotFoundException ignored) {
+ }
}
}
}
diff --git a/common/src/main/java/org/zhdev/varioutil/util/ResourceUtils.java b/common/src/main/java/net/zhira/varioutil/util/ResourceUtils.java
similarity index 98%
rename from common/src/main/java/org/zhdev/varioutil/util/ResourceUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/ResourceUtils.java
index f418e44..575a999 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/ResourceUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/ResourceUtils.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
import java.io.*;
import java.net.URL;
diff --git a/common/src/main/java/org/zhdev/varioutil/util/StringUtils.java b/common/src/main/java/net/zhira/varioutil/util/StringUtils.java
similarity index 99%
rename from common/src/main/java/org/zhdev/varioutil/util/StringUtils.java
rename to common/src/main/java/net/zhira/varioutil/util/StringUtils.java
index 32617a8..1ff7e81 100644
--- a/common/src/main/java/org/zhdev/varioutil/util/StringUtils.java
+++ b/common/src/main/java/net/zhira/varioutil/util/StringUtils.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
import java.util.ArrayList;
import java.util.Iterator;
diff --git a/db/pom.xml b/db/pom.xml
index 6f8c071..6cb6c2a 100644
--- a/db/pom.xml
+++ b/db/pom.xml
@@ -1,9 +1,12 @@
-
+
+
4.0.0
parent
- org.zhdev.varioutil
+ net.zhira.varioutil
1.0-SNAPSHOT
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/AbstractProvider.java b/db/src/main/java/net/zhira/varioutil/sql/AbstractProvider.java
similarity index 94%
rename from db/src/main/java/org/zhdev/varioutil/sql/AbstractProvider.java
rename to db/src/main/java/net/zhira/varioutil/sql/AbstractProvider.java
index a0b83f6..8843c44 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/AbstractProvider.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/AbstractProvider.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
import java.sql.Connection;
import java.sql.SQLException;
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/ConnectionProvider.java b/db/src/main/java/net/zhira/varioutil/sql/ConnectionProvider.java
similarity index 93%
rename from db/src/main/java/org/zhdev/varioutil/sql/ConnectionProvider.java
rename to db/src/main/java/net/zhira/varioutil/sql/ConnectionProvider.java
index a3b0059..1cdcdca 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/ConnectionProvider.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/ConnectionProvider.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
import java.sql.Connection;
import java.sql.SQLException;
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/H2Provider.java b/db/src/main/java/net/zhira/varioutil/sql/H2Provider.java
similarity index 72%
rename from db/src/main/java/org/zhdev/varioutil/sql/H2Provider.java
rename to db/src/main/java/net/zhira/varioutil/sql/H2Provider.java
index cbee2a0..2b22bcd 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/H2Provider.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/H2Provider.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
-import org.zhdev.varioutil.util.SqlUtils;
+import net.zhira.varioutil.util.SqlUtils;
public class H2Provider extends AbstractProvider {
public H2Provider(String path, String username, String password) {
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/MysqlProvider.java b/db/src/main/java/net/zhira/varioutil/sql/MysqlProvider.java
similarity index 77%
rename from db/src/main/java/org/zhdev/varioutil/sql/MysqlProvider.java
rename to db/src/main/java/net/zhira/varioutil/sql/MysqlProvider.java
index 919f858..ad7de21 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/MysqlProvider.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/MysqlProvider.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
-import org.zhdev.varioutil.util.SqlUtils;
+import net.zhira.varioutil.util.SqlUtils;
public class MysqlProvider extends AbstractProvider {
public MysqlProvider(String address, String dbname, String username, String password, boolean ssl) {
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/NullProvider.java b/db/src/main/java/net/zhira/varioutil/sql/NullProvider.java
similarity index 89%
rename from db/src/main/java/org/zhdev/varioutil/sql/NullProvider.java
rename to db/src/main/java/net/zhira/varioutil/sql/NullProvider.java
index cc15acf..8ff1efa 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/NullProvider.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/NullProvider.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
import java.sql.Connection;
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/SqlAdapter.java b/db/src/main/java/net/zhira/varioutil/sql/SqlAdapter.java
similarity index 97%
rename from db/src/main/java/org/zhdev/varioutil/sql/SqlAdapter.java
rename to db/src/main/java/net/zhira/varioutil/sql/SqlAdapter.java
index 09ee96a..f4b20e9 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/SqlAdapter.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/SqlAdapter.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
-import org.zhdev.varioutil.util.CheckedFunction;
+import net.zhira.varioutil.util.CheckedFunction;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/SqlException.java b/db/src/main/java/net/zhira/varioutil/sql/SqlException.java
similarity index 90%
rename from db/src/main/java/org/zhdev/varioutil/sql/SqlException.java
rename to db/src/main/java/net/zhira/varioutil/sql/SqlException.java
index 4eb0e4c..8eeaf60 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/SqlException.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/SqlException.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
public class SqlException extends RuntimeException {
public SqlException() {
diff --git a/db/src/main/java/org/zhdev/varioutil/sql/SqliteProvider.java b/db/src/main/java/net/zhira/varioutil/sql/SqliteProvider.java
similarity index 68%
rename from db/src/main/java/org/zhdev/varioutil/sql/SqliteProvider.java
rename to db/src/main/java/net/zhira/varioutil/sql/SqliteProvider.java
index 40c2e09..94f5841 100644
--- a/db/src/main/java/org/zhdev/varioutil/sql/SqliteProvider.java
+++ b/db/src/main/java/net/zhira/varioutil/sql/SqliteProvider.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.sql;
+package net.zhira.varioutil.sql;
-import org.zhdev.varioutil.util.SqlUtils;
+import net.zhira.varioutil.util.SqlUtils;
public class SqliteProvider extends AbstractProvider {
public SqliteProvider(String path) {
diff --git a/db/src/main/java/org/zhdev/varioutil/util/CheckedFunction.java b/db/src/main/java/net/zhira/varioutil/util/CheckedFunction.java
similarity index 76%
rename from db/src/main/java/org/zhdev/varioutil/util/CheckedFunction.java
rename to db/src/main/java/net/zhira/varioutil/util/CheckedFunction.java
index fe399a7..8c14d40 100755
--- a/db/src/main/java/org/zhdev/varioutil/util/CheckedFunction.java
+++ b/db/src/main/java/net/zhira/varioutil/util/CheckedFunction.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
@FunctionalInterface
public interface CheckedFunction {
diff --git a/db/src/main/java/org/zhdev/varioutil/util/SqlUtils.java b/db/src/main/java/net/zhira/varioutil/util/SqlUtils.java
similarity index 92%
rename from db/src/main/java/org/zhdev/varioutil/util/SqlUtils.java
rename to db/src/main/java/net/zhira/varioutil/util/SqlUtils.java
index 3af7d6f..f013d04 100644
--- a/db/src/main/java/org/zhdev/varioutil/util/SqlUtils.java
+++ b/db/src/main/java/net/zhira/varioutil/util/SqlUtils.java
@@ -1,6 +1,6 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
-import org.zhdev.varioutil.sql.SqlException;
+import net.zhira.varioutil.sql.SqlException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@@ -42,14 +42,14 @@ public class SqlUtils {
try {
Connection connection;
if (username != null) {
- connection = DriverManager.getConnection("jdbc:h2:./" + encodeUrlValue(path) + ";mode=MySQL;AUTO_SERVER=TRUE", username, password);
+ connection = DriverManager.getConnection("jdbc:h2:./" + path + ";mode=MySQL;AUTO_SERVER=TRUE", username, password);
} else {
- connection = DriverManager.getConnection("jdbc:h2:./" + encodeUrlValue(path) + ";mode=MySQL;AUTO_SERVER=TRUE", "sa", "");
+ connection = DriverManager.getConnection("jdbc:h2:./" + path + ";mode=MySQL;AUTO_SERVER=TRUE", "sa", "");
}
return connection;
} catch (NoClassDefFoundError e) {
throw new SqlException("No suitable driver");
- } catch (SQLException | UnsupportedEncodingException e) {
+ } catch (SQLException e) {
throw new SqlException(e);
}
}
@@ -68,8 +68,8 @@ public class SqlUtils {
}
}
try {
- return DriverManager.getConnection("jdbc:sqlite:" + encodeUrlValue(path.toString()));
- } catch (SQLException | UnsupportedEncodingException e) {
+ return DriverManager.getConnection("jdbc:sqlite:" + path);
+ } catch (SQLException e) {
throw new SqlException(e);
}
}
diff --git a/io/pom.xml b/io/pom.xml
index 80ba09b..ed17190 100644
--- a/io/pom.xml
+++ b/io/pom.xml
@@ -1,9 +1,12 @@
-
+
+
4.0.0
parent
- org.zhdev.varioutil
+ net.zhira.varioutil
1.0-SNAPSHOT
diff --git a/io/src/main/java/org/zhdev/varioutil/config/Config.java b/io/src/main/java/net/zhira/varioutil/config/Config.java
similarity index 98%
rename from io/src/main/java/org/zhdev/varioutil/config/Config.java
rename to io/src/main/java/net/zhira/varioutil/config/Config.java
index 0dae20a..fe7da4a 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/Config.java
+++ b/io/src/main/java/net/zhira/varioutil/config/Config.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import java.io.*;
import java.nio.charset.StandardCharsets;
diff --git a/io/src/main/java/org/zhdev/varioutil/config/ConfigException.java b/io/src/main/java/net/zhira/varioutil/config/ConfigException.java
similarity index 90%
rename from io/src/main/java/org/zhdev/varioutil/config/ConfigException.java
rename to io/src/main/java/net/zhira/varioutil/config/ConfigException.java
index 58d78cf..55b80bd 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/ConfigException.java
+++ b/io/src/main/java/net/zhira/varioutil/config/ConfigException.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
public class ConfigException extends RuntimeException {
public ConfigException() {
diff --git a/io/src/main/java/org/zhdev/varioutil/config/ConfigSection.java b/io/src/main/java/net/zhira/varioutil/config/ConfigSection.java
similarity index 99%
rename from io/src/main/java/org/zhdev/varioutil/config/ConfigSection.java
rename to io/src/main/java/net/zhira/varioutil/config/ConfigSection.java
index feb05e4..de6eee5 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/ConfigSection.java
+++ b/io/src/main/java/net/zhira/varioutil/config/ConfigSection.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import java.util.List;
import java.util.Map;
diff --git a/io/src/main/java/org/zhdev/varioutil/config/ConfigSectionNode.java b/io/src/main/java/net/zhira/varioutil/config/ConfigSectionNode.java
similarity index 90%
rename from io/src/main/java/org/zhdev/varioutil/config/ConfigSectionNode.java
rename to io/src/main/java/net/zhira/varioutil/config/ConfigSectionNode.java
index b38c609..7339292 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/ConfigSectionNode.java
+++ b/io/src/main/java/net/zhira/varioutil/config/ConfigSectionNode.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
final class ConfigSectionNode {
Object value;
diff --git a/io/src/main/java/org/zhdev/varioutil/config/MapConfigSection.java b/io/src/main/java/net/zhira/varioutil/config/MapConfigSection.java
similarity index 99%
rename from io/src/main/java/org/zhdev/varioutil/config/MapConfigSection.java
rename to io/src/main/java/net/zhira/varioutil/config/MapConfigSection.java
index f25c97c..5d2a427 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/MapConfigSection.java
+++ b/io/src/main/java/net/zhira/varioutil/config/MapConfigSection.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import java.util.*;
import java.util.function.Function;
diff --git a/io/src/main/java/org/zhdev/varioutil/config/YamlConfig.java b/io/src/main/java/net/zhira/varioutil/config/YamlConfig.java
similarity index 99%
rename from io/src/main/java/org/zhdev/varioutil/config/YamlConfig.java
rename to io/src/main/java/net/zhira/varioutil/config/YamlConfig.java
index d89b157..d257297 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/YamlConfig.java
+++ b/io/src/main/java/net/zhira/varioutil/config/YamlConfig.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.LoaderOptions;
diff --git a/io/src/main/java/org/zhdev/varioutil/config/YamlConfigConstructor.java b/io/src/main/java/net/zhira/varioutil/config/YamlConfigConstructor.java
similarity index 91%
rename from io/src/main/java/org/zhdev/varioutil/config/YamlConfigConstructor.java
rename to io/src/main/java/net/zhira/varioutil/config/YamlConfigConstructor.java
index 7444f79..ae0dfa4 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/YamlConfigConstructor.java
+++ b/io/src/main/java/net/zhira/varioutil/config/YamlConfigConstructor.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.constructor.SafeConstructor;
diff --git a/io/src/main/java/org/zhdev/varioutil/config/YamlConfigRepresenter.java b/io/src/main/java/net/zhira/varioutil/config/YamlConfigRepresenter.java
similarity index 86%
rename from io/src/main/java/org/zhdev/varioutil/config/YamlConfigRepresenter.java
rename to io/src/main/java/net/zhira/varioutil/config/YamlConfigRepresenter.java
index dc563d0..6f84666 100644
--- a/io/src/main/java/org/zhdev/varioutil/config/YamlConfigRepresenter.java
+++ b/io/src/main/java/net/zhira/varioutil/config/YamlConfigRepresenter.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.representer.Representer;
diff --git a/misc/pom.xml b/misc/pom.xml
index 0328263..9a909a8 100644
--- a/misc/pom.xml
+++ b/misc/pom.xml
@@ -1,9 +1,12 @@
-
+
+
4.0.0
parent
- org.zhdev.varioutil
+ net.zhira.varioutil
1.0-SNAPSHOT
diff --git a/misc/src/main/java/org/zhdev/varioutil/PreparedPlugin.java b/misc/src/main/java/net/zhira/varioutil/PreparedPlugin.java
similarity index 85%
rename from misc/src/main/java/org/zhdev/varioutil/PreparedPlugin.java
rename to misc/src/main/java/net/zhira/varioutil/PreparedPlugin.java
index cecde69..024f935 100644
--- a/misc/src/main/java/org/zhdev/varioutil/PreparedPlugin.java
+++ b/misc/src/main/java/net/zhira/varioutil/PreparedPlugin.java
@@ -1,10 +1,10 @@
-package org.zhdev.varioutil;
+package net.zhira.varioutil;
-import org.zhdev.varioutil.config.Config;
-import org.zhdev.varioutil.config.ConfigException;
-import org.zhdev.varioutil.language.Language;
-import org.zhdev.varioutil.sql.SqlAdapter;
-import org.zhdev.varioutil.util.ResourceUtils;
+import net.zhira.varioutil.config.Config;
+import net.zhira.varioutil.config.ConfigException;
+import net.zhira.varioutil.language.Language;
+import net.zhira.varioutil.util.ResourceUtils;
+import net.zhira.varioutil.sql.SqlAdapter;
import java.io.IOException;
import java.io.InputStream;
@@ -26,7 +26,7 @@ public interface PreparedPlugin {
default Path loadConfig(Config config, String pathname, boolean resourcePreload) {
ClassLoader classLoader = getClass().getClassLoader();
- Path path = Paths.get(pathname);
+ Path path = Paths.get(getDataDirectory().toString() + '/' + pathname);
try (InputStream stream = ResourceUtils.getResource(pathname, classLoader)) {
if (stream != null) {
if (resourcePreload) {
diff --git a/misc/src/main/java/org/zhdev/varioutil/util/ColorUtils.java b/misc/src/main/java/net/zhira/varioutil/util/ColorUtils.java
similarity index 79%
rename from misc/src/main/java/org/zhdev/varioutil/util/ColorUtils.java
rename to misc/src/main/java/net/zhira/varioutil/util/ColorUtils.java
index 825f6f4..0f03f61 100644
--- a/misc/src/main/java/org/zhdev/varioutil/util/ColorUtils.java
+++ b/misc/src/main/java/net/zhira/varioutil/util/ColorUtils.java
@@ -1,13 +1,21 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
+import java.util.HashMap;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ColorUtils {
public static final char COLOR_CHAR = 'ยง';
+ private static final Map COMPILED_PATTERNS = new HashMap<>();
+
+ private static Pattern getPattern(String regexp) {
+ return COMPILED_PATTERNS.computeIfAbsent(regexp, s -> Pattern.compile(regexp));
+ }
+
public static void translateAlternateColorCodes(StringBuilder builder, char replaceChar) {
- Matcher m = Pattern.compile(Pattern.quote(String.valueOf(replaceChar)) + "(#[0-9a-fA-F]{6})").matcher(builder);
+ Matcher m = getPattern(Pattern.quote(String.valueOf(replaceChar)) + "(#[0-9a-fA-F]{6})").matcher(builder);
int start = 0;
while (m.find(start)) {
String hex = m.group(1);
diff --git a/misc/src/main/java/org/zhdev/varioutil/util/ConfigUtils.java b/misc/src/main/java/net/zhira/varioutil/util/ConfigUtils.java
similarity index 94%
rename from misc/src/main/java/org/zhdev/varioutil/util/ConfigUtils.java
rename to misc/src/main/java/net/zhira/varioutil/util/ConfigUtils.java
index a766ee6..b6535aa 100644
--- a/misc/src/main/java/org/zhdev/varioutil/util/ConfigUtils.java
+++ b/misc/src/main/java/net/zhira/varioutil/util/ConfigUtils.java
@@ -1,8 +1,8 @@
-package org.zhdev.varioutil.util;
+package net.zhira.varioutil.util;
-import org.zhdev.varioutil.config.ConfigSection;
-import org.zhdev.varioutil.language.Language;
-import org.zhdev.varioutil.sql.*;
+import net.zhira.varioutil.config.ConfigSection;
+import net.zhira.varioutil.language.Language;
+import net.zhira.varioutil.sql.*;
import java.io.File;
import java.util.ArrayList;
diff --git a/pom.xml b/pom.xml
index 5730a3d..484bfe6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,10 @@
-
+
+
4.0.0
- org.zhdev.varioutil
+ net.zhira.varioutil
parent
1.0-SNAPSHOT
pom
@@ -23,8 +26,8 @@
- zhdev-repo
- https://maven.zhdev.org/repository/
+ zhira-repo
+ https://maven.zhira.net/repository/
@@ -72,7 +75,7 @@
package
shade
- repo
+
diff --git a/velocity/pom.xml b/velocity/pom.xml
index 20e2911..09e890a 100644
--- a/velocity/pom.xml
+++ b/velocity/pom.xml
@@ -1,9 +1,12 @@
-
+
+
4.0.0
parent
- org.zhdev.varioutil
+ net.zhira.varioutil
1.0-SNAPSHOT
diff --git a/velocity/src/main/java/org/zhdev/varioutil/VelocityPlugin.java b/velocity/src/main/java/net/zhira/varioutil/VelocityPlugin.java
similarity index 96%
rename from velocity/src/main/java/org/zhdev/varioutil/VelocityPlugin.java
rename to velocity/src/main/java/net/zhira/varioutil/VelocityPlugin.java
index b2aa9b6..85cd04b 100644
--- a/velocity/src/main/java/org/zhdev/varioutil/VelocityPlugin.java
+++ b/velocity/src/main/java/net/zhira/varioutil/VelocityPlugin.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil;
+package net.zhira.varioutil;
import com.velocitypowered.api.proxy.ProxyServer;
import org.slf4j.Logger;
diff --git a/velocity/src/main/java/org/zhdev/varioutil/VelocityPreparedPlugin.java b/velocity/src/main/java/net/zhira/varioutil/VelocityPreparedPlugin.java
similarity index 86%
rename from velocity/src/main/java/org/zhdev/varioutil/VelocityPreparedPlugin.java
rename to velocity/src/main/java/net/zhira/varioutil/VelocityPreparedPlugin.java
index 49d0009..df55cf9 100644
--- a/velocity/src/main/java/org/zhdev/varioutil/VelocityPreparedPlugin.java
+++ b/velocity/src/main/java/net/zhira/varioutil/VelocityPreparedPlugin.java
@@ -1,17 +1,17 @@
-package org.zhdev.varioutil;
+package net.zhira.varioutil;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
import com.velocitypowered.api.event.proxy.ProxyShutdownEvent;
import com.velocitypowered.api.proxy.ProxyServer;
+import net.zhira.varioutil.config.ConfigSection;
+import net.zhira.varioutil.language.Language;
+import net.zhira.varioutil.util.ColorUtils;
import org.slf4j.Logger;
-import org.zhdev.varioutil.config.Config;
-import org.zhdev.varioutil.config.ConfigSection;
-import org.zhdev.varioutil.config.VelocityTomlConfig;
-import org.zhdev.varioutil.language.Language;
-import org.zhdev.varioutil.sql.SqlAdapter;
-import org.zhdev.varioutil.util.ColorUtils;
-import org.zhdev.varioutil.util.ConfigUtils;
+import net.zhira.varioutil.config.Config;
+import net.zhira.varioutil.config.VelocityTomlConfig;
+import net.zhira.varioutil.sql.SqlAdapter;
+import net.zhira.varioutil.util.ConfigUtils;
import java.nio.file.Path;
diff --git a/velocity/src/main/java/org/zhdev/varioutil/config/VelocityTomlConfig.java b/velocity/src/main/java/net/zhira/varioutil/config/VelocityTomlConfig.java
similarity index 99%
rename from velocity/src/main/java/org/zhdev/varioutil/config/VelocityTomlConfig.java
rename to velocity/src/main/java/net/zhira/varioutil/config/VelocityTomlConfig.java
index beb9483..ffaf8f6 100644
--- a/velocity/src/main/java/org/zhdev/varioutil/config/VelocityTomlConfig.java
+++ b/velocity/src/main/java/net/zhira/varioutil/config/VelocityTomlConfig.java
@@ -1,4 +1,4 @@
-package org.zhdev.varioutil.config;
+package net.zhira.varioutil.config;
import com.electronwill.nightconfig.core.CommentedConfig;
import com.electronwill.nightconfig.toml.TomlFormat;