diff --git a/build.gradle.kts b/build.gradle.kts index fdfb716..4ad92c3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,12 +2,11 @@ import net.minecrell.pluginyml.bukkit.BukkitPluginDescription plugins { `java-library` - id("io.papermc.paperweight.userdev") version "1.7.3" - id("org.sonarqube") version "5.1.0.4882" - id("net.minecrell.plugin-yml.paper") version "0.6.0" + id("io.papermc.paperweight.userdev") version "2.0.0-beta.17" + id("org.sonarqube") version "6.0.1.5171" + id("de.eldoria.plugin-yml.paper") version "0.6.0" } -// from 1.20.5+ upward, spigot is not supported paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION @@ -15,13 +14,14 @@ group = "me.unurled.sacredrealms" version = "0.1.0" description = "The main SR plugin." -val mcVersion = "1.21.1-R0.1-SNAPSHOT" +val mcVersion = "1.21.4-R0.1-SNAPSHOT" val redisVersion = "5.2.0-beta4" -val invuiVersion = "1.36" +val invuiVersion = "2.0.0-alpha.14" val gsonVersion = "2.11.0" -val srcoreVersion = "0.1.2" +val packeteventsVersion = "2.7.0" +val znpcsPlusVersion = "2.1.0-SNAPSHOT" -val javaVersion = 21 +val javaVersion = 23 repositories { mavenCentral() @@ -33,14 +33,15 @@ repositories { name = "packetevents" url = uri("https://repo.codemc.io/repository/maven-releases/") } - maven { - name = "unurled" - url = uri("https://repo.unurled.me/releases") - } maven { name = "cubbossa" url = uri("https://nexus.leonardbausenwein.de/repository/maven-releases/") } + // ZNPCsPlus + maven { + name = "pyrSnapshots" + url = uri("https://repo.pyr.lol/snapshots") + } } dependencies { @@ -52,9 +53,9 @@ dependencies { paperLibrary("redis.clients", "jedis", redisVersion) - paperLibrary("com.github.retrooper", "packetevents-spigot", "2.5.0") + paperLibrary("com.github.retrooper", "packetevents-spigot", packeteventsVersion) - compileOnly("me.unurled:SR-Core:${srcoreVersion}") + paperLibrary("lol.pyr", "znpcsplus-api", znpcsPlusVersion) } java { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd49..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b41..ff23a68 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a4..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -203,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -211,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..db3a6ac 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,22 +59,22 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/main/java/me/unurled/sacredrealms/sr/Manager.java b/src/main/java/me/unurled/sacredrealms/sr/Manager.java new file mode 100644 index 0000000..c827170 --- /dev/null +++ b/src/main/java/me/unurled/sacredrealms/sr/Manager.java @@ -0,0 +1,52 @@ +package me.unurled.sacredrealms.sr; + +import org.bukkit.Bukkit; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +/** The Manager class is a class that is used to manage data and events. */ +public class Manager implements Listener { + + /** Create a new manager */ + public Manager() { + SR.plugin().managers().addManager(this); + Bukkit.getScheduler() + .runTaskAsynchronously( + SR.plugin(), + () -> { + load(); + Bukkit.getPluginManager().registerEvents(this, SR.plugin()); + }); + } + + /** + * Get an instance of a manager + * + * @param clazz The class of the manager + * @return The instance of the manager + * @param The type of the manager + */ + public static T getInstance(@NotNull Class clazz) { + return clazz.cast(SR.plugin().managers().getManager(clazz)); + } + + /** Load the manager */ + public void load() { + loadData(); + } + + /** Unload the manager */ + public void unload() { + saveData(); + } + + /** Save the data */ + public void saveData() { + /* method empty, so it isn't required by the extended child to implement it */ + } + + /** Load the data */ + public void loadData() { + /* method empty, so it isn't required by the extended child to implement it */ + } +} diff --git a/src/main/java/me/unurled/sacredrealms/sr/Managers.java b/src/main/java/me/unurled/sacredrealms/sr/Managers.java new file mode 100644 index 0000000..3554a33 --- /dev/null +++ b/src/main/java/me/unurled/sacredrealms/sr/Managers.java @@ -0,0 +1,78 @@ +package me.unurled.sacredrealms.sr; + +import static me.unurled.sacredrealms.sr.utils.Logger.error; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; +import org.bukkit.Bukkit; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** The Managers class is a class that is used to manage managers. */ +public class Managers { + private final List managerList; + + /** Create a new manager */ + protected Managers() { + managerList = new ArrayList<>(); + } + + /** + * Register a manager + * + * @param clazz The class of the manager + */ + public void register(@NotNull List> clazz) { + int i = 0; + for (Class c : clazz) { + Bukkit.getScheduler() + .runTaskLater( + SR.plugin(), + () -> { + try { + c.getDeclaredConstructor().newInstance(); + } catch (InstantiationException + | IllegalAccessException + | InvocationTargetException + | NoSuchMethodException e) { + error("Failed to register manager: " + c.getSimpleName()); + } + }, + 10L * i); + i++; + } + } + + /** + * Add a manager + * + * @param manager The manager + */ + public void addManager(Manager manager) { + managerList.add(manager); + } + + /** Unload all managers */ + public void unload() { + for (Manager manager : managerList) { + manager.unload(); + } + } + + /** + * Get a manager + * + * @param clazz The class of the manager + * @return The manager + */ + @Nullable + public Manager getManager(Class clazz) { + for (Manager manager : managerList) { + if (manager.getClass().equals(clazz)) { + return manager; + } + } + return null; + } +} diff --git a/src/main/java/me/unurled/sacredrealms/sr/SR.java b/src/main/java/me/unurled/sacredrealms/sr/SR.java index 0baf423..991e23c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/SR.java +++ b/src/main/java/me/unurled/sacredrealms/sr/SR.java @@ -16,18 +16,19 @@ import me.unurled.sacredrealms.sr.components.pack.ResourcePackManager; import me.unurled.sacredrealms.sr.components.pack.animatedjava.AnimatedJavaManager; import me.unurled.sacredrealms.sr.components.pack.background.BackgroundManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager; +import me.unurled.sacredrealms.sr.components.translation.TranslationManager; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; import me.unurled.sacredrealms.sr.config.ConfigManager; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.SRCore; import org.bukkit.plugin.java.JavaPlugin; import xyz.xenondevs.invui.InvUI; public final class SR extends JavaPlugin { private static SR plugin; + private Managers managers; - public static SR getPlugin() { + public static SR plugin() { return plugin; } @@ -43,38 +44,40 @@ public final class SR extends JavaPlugin { public void onEnable() { plugin = this; - PacketEvents.getAPI().init(); + managers = new Managers(); - SRCore.getInstance().setPlugin(this); + PacketEvents.getAPI().init(); InvUI.getInstance().setPlugin(this); - SRCore.getInstance() - .getManagers() - .register( - List.of( - ConfigManager.class, - DataManager.class, - AnimatedJavaManager.class, - PlayerManager.class, - CombatManager.class, - ItemManager.class, - EntityManager.class, - NPCManager.class, - BlockManager.class, - ClientBuildManager.class, - TreasureManager.class, - BackgroundManager.class, - ResourcePackManager.class, - CutsceneManager.class, - RecordingManager.class, - ReplayManager.class)); + managers.register( + List.of( + TranslationManager.class, + ConfigManager.class, + DataManager.class, + AnimatedJavaManager.class, + PlayerManager.class, + CombatManager.class, + ItemManager.class, + EntityManager.class, + NPCManager.class, + BlockManager.class, + ClientBuildManager.class, + TreasureManager.class, + BackgroundManager.class, + ResourcePackManager.class, + CutsceneManager.class, + RecordingManager.class, + ReplayManager.class)); } @Override public void onDisable() { - SRCore.getInstance().unload(); - + managers.unload(); PacketEvents.getAPI().terminate(); } + + public Managers managers() { + return managers; + } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java b/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java index 07ba1d0..259d27c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java +++ b/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java @@ -21,15 +21,11 @@ public class SRLoader implements PluginLoader { public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) { MavenLibraryResolver resolver = new MavenLibraryResolver(); resolver.addDependency( - new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:1.36"), null)); + new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:2.0.0-alpha.14"), null)); resolver.addRepository( new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/") .build()); - resolver.addDependency(new Dependency(new DefaultArtifact("me.unurled:SR-Core:0.1.1"), null)); - resolver.addRepository( - new RemoteRepository.Builder("srcore", "default", "https://repo.unurled.me/releases") - .build()); classpathBuilder.addLibrary(resolver); PluginLibraries pluginLibraries = load(); diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/CommandManager.java b/src/main/java/me/unurled/sacredrealms/sr/commands/CommandManager.java index aaae323..b99a404 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/CommandManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/CommandManager.java @@ -9,6 +9,7 @@ import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.commands.admin.AttributeCommand; import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand; import me.unurled.sacredrealms.sr.commands.admin.EntityTypeCommand; @@ -21,7 +22,6 @@ import me.unurled.sacredrealms.sr.commands.admin.cutscene.RecordCutsceneCommand; import me.unurled.sacredrealms.sr.commands.admin.cutscene.StopRecordingCommand; import me.unurled.sacredrealms.sr.commands.player.DifficultyCommand; import me.unurled.sacredrealms.sr.commands.player.ResetAdventureCommand; -import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; public class CommandManager extends Manager { diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/AttributeCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/AttributeCommand.java index d251202..418b59d 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/AttributeCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/AttributeCommand.java @@ -1,7 +1,7 @@ package me.unurled.sacredrealms.sr.commands.admin; -import static me.unurled.srcore.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; @@ -9,11 +9,11 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.gui.attributes.AttributesGUI; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -160,7 +160,7 @@ public class AttributeCommand implements BasicCommand { return; } Window window = - Window.single() + Window.mergedBuilder() .setViewer(p) .setTitle("Attributes") .setGui(AttributesGUI.createGui(target)) diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ClientBuildCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ClientBuildCommand.java index 1eacfe9..17d6e17 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ClientBuildCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ClientBuildCommand.java @@ -1,7 +1,5 @@ package me.unurled.sacredrealms.sr.commands.admin; -import static me.unurled.srcore.utils.Component.ERROR; -import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.Logger.log; import io.papermc.paper.command.brigadier.BasicCommand; @@ -12,11 +10,12 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.clientbuild.ClientBuild; import me.unurled.sacredrealms.sr.components.clientbuild.ClientBuildManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; @@ -120,7 +119,7 @@ public class ClientBuildCommand implements BasicCommand, Listener { PlayerManager pm = Manager.getInstance(PlayerManager.class); SRPlayer sr = pm.getPlayer(p.getUniqueId()); if (sr == null) { - sender.sendMessage(textComp(ERROR)); + sender.sendMessage(TranslatedComponent.ERROR.component()); return; } sender.sendMessage("Modify the client build and save after you are finished."); @@ -155,7 +154,7 @@ public class ClientBuildCommand implements BasicCommand, Listener { PlayerManager pm = Manager.getInstance(PlayerManager.class); SRPlayer sr = pm.getPlayer(p.getUniqueId()); if (sr == null) { - sender.sendMessage(textComp(ERROR)); + sender.sendMessage(TranslatedComponent.ERROR.component()); return; } sender.sendMessage( diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/EntityTypeCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/EntityTypeCommand.java index 20b029c..224f1f1 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/EntityTypeCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/EntityTypeCommand.java @@ -1,18 +1,17 @@ package me.unurled.sacredrealms.sr.commands.admin; -import static me.unurled.srcore.utils.Component.NOT_PLAYER; -import static me.unurled.srcore.utils.Component.comp; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Arrays; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.entity.EntityManager; import me.unurled.sacredrealms.sr.components.entity.SREntityType; import me.unurled.sacredrealms.sr.gui.entitytype.EntityTypeGUI; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -23,7 +22,7 @@ public class EntityTypeCommand implements BasicCommand { private static void list(@NotNull CommandSender sender, @NotNull String @NotNull [] args) { if (!(sender instanceof Player p)) { - sender.sendMessage(comp(NOT_PLAYER)); + sender.sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } EntityManager em = Manager.getInstance(EntityManager.class); @@ -33,7 +32,11 @@ public class EntityTypeCommand implements BasicCommand { } Window window = - Window.single().setViewer(p).setTitle("List").setGui(EntityTypeGUI.listGui()).build(); + Window.mergedBuilder() + .setViewer(p) + .setTitle("List") + .setGui(EntityTypeGUI.listGui()) + .build(); window.open(); } @@ -43,7 +46,7 @@ public class EntityTypeCommand implements BasicCommand { return; } if (!(sender instanceof Player p)) { - sender.sendMessage(comp(NOT_PLAYER)); + sender.sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } if (args.length < 3) { @@ -54,7 +57,7 @@ public class EntityTypeCommand implements BasicCommand { } SREntityType type = em.getType(args[1]); Window window = - Window.single() + Window.mergedBuilder() .setViewer(p) .setTitle(args[1]) .setGui(EntityTypeGUI.createGui(type)) @@ -109,7 +112,7 @@ public class EntityTypeCommand implements BasicCommand { if (sender instanceof Player p) { // opens gui Window window = - Window.single() + Window.mergedBuilder() .setViewer(p) .setTitle(args[1]) .setGui(EntityTypeGUI.createGui(type)) diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ItemCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ItemCommand.java index 4c6f782..0b729bf 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ItemCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/ItemCommand.java @@ -1,13 +1,14 @@ package me.unurled.sacredrealms.sr.commands.admin; -import static me.unurled.srcore.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.Logger.error; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Arrays; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.ItemManager; @@ -15,7 +16,6 @@ import me.unurled.sacredrealms.sr.components.item.ItemType; import me.unurled.sacredrealms.sr.components.item.Rarity; import me.unurled.sacredrealms.sr.components.item.abilities.Ability; import me.unurled.sacredrealms.sr.components.item.enchantments.Enchantment; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.CommandSender; diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/LevelCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/LevelCommand.java index ac3496c..76758ff 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/LevelCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/LevelCommand.java @@ -4,9 +4,9 @@ import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/SpawnEntityCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/SpawnEntityCommand.java index d7edb66..2785e51 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/SpawnEntityCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/SpawnEntityCommand.java @@ -1,15 +1,13 @@ package me.unurled.sacredrealms.sr.commands.admin; -import static me.unurled.srcore.utils.Component.NO_PERMISSION; -import static me.unurled.srcore.utils.Component.textComp; - import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.entity.EntityManager; import me.unurled.sacredrealms.sr.components.entity.SREntityType; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -57,7 +55,7 @@ public class SpawnEntityCommand implements BasicCommand { public void execute(@NotNull CommandSourceStack commandSourceStack, @NotNull String[] args) { CommandSender sender = commandSourceStack.getSender(); if (!sender.hasPermission("sr.spawn-entity")) { - sender.sendMessage(textComp(NO_PERMISSION)); + sender.sendMessage(TranslatedComponent.NO_PERMISSION.component()); return; } diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/TreasureCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/TreasureCommand.java index ebe5beb..0d74330 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/TreasureCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/TreasureCommand.java @@ -1,17 +1,17 @@ package me.unurled.sacredrealms.sr.commands.admin; -import static me.unurled.srcore.utils.Component.NOT_PLAYER; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Collection; import java.util.List; import java.util.Set; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.treasure.Treasure; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; import me.unurled.sacredrealms.sr.gui.treasure.TreasureGUI; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.block.Block; @@ -33,7 +33,7 @@ public class TreasureCommand implements BasicCommand { private static void delete(@NotNull CommandSender sender, TreasureManager instance) { Block block; if (!(sender instanceof Player p)) { - sender.sendMessage(NOT_PLAYER); + sender.sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } block = p.getTargetBlock(TRANSPARENT, 3); @@ -69,7 +69,7 @@ public class TreasureCommand implements BasicCommand { private static void modify(@NotNull CommandSender sender, TreasureManager instance) { Block block; if (!(sender instanceof Player p)) { - sender.sendMessage(NOT_PLAYER); + sender.sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } block = p.getTargetBlock(TRANSPARENT, 3); @@ -82,7 +82,7 @@ public class TreasureCommand implements BasicCommand { } // open the GUI Window window = - Window.single() + Window.mergedBuilder() .setViewer(p) .setTitle("Modifiy Treasure Chest") .setGui(TreasureGUI.createGui(treasure)) @@ -97,7 +97,7 @@ public class TreasureCommand implements BasicCommand { @NotNull CommandSender sender, @NotNull String @NotNull [] args, TreasureManager instance) { Block block; if (!(sender instanceof Player p)) { - sender.sendMessage(NOT_PLAYER); + sender.sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } block = p.getTargetBlock(TRANSPARENT, 3); diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/CreateCutsceneCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/CreateCutsceneCommand.java index 9522b80..27220c5 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/CreateCutsceneCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/CreateCutsceneCommand.java @@ -1,15 +1,12 @@ package me.unurled.sacredrealms.sr.commands.admin.cutscene; -import static me.unurled.srcore.utils.Component.NOT_PLAYER; -import static me.unurled.srcore.utils.Component.NO_PERMISSION; -import static me.unurled.srcore.utils.Component.textComp; - import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -20,11 +17,11 @@ public class CreateCutsceneCommand implements BasicCommand { @Override public void execute(@NotNull CommandSourceStack sender, String[] args) { if (!(sender.getSender() instanceof Player p)) { - sender.getSender().sendMessage(textComp(NOT_PLAYER)); + sender.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } if (!p.hasPermission("sr.cutscene.create")) { - p.sendMessage(textComp(NO_PERMISSION)); + p.sendMessage(TranslatedComponent.NO_PERMISSION.component()); return; } // get the name diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/RecordCutsceneCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/RecordCutsceneCommand.java index f496017..bef092a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/RecordCutsceneCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/RecordCutsceneCommand.java @@ -1,15 +1,13 @@ package me.unurled.sacredrealms.sr.commands.admin.cutscene; -import static me.unurled.srcore.utils.Component.NO_PERMISSION; -import static me.unurled.srcore.utils.Component.textComp; - import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -24,7 +22,7 @@ public class RecordCutsceneCommand implements BasicCommand { } if (!p.hasPermission("sr.cutscene.create")) { - p.sendMessage(textComp(NO_PERMISSION)); + p.sendMessage(TranslatedComponent.NO_PERMISSION.component()); return; } diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/ReplayCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/ReplayCommand.java index 185d14e..41d0a2c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/ReplayCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/ReplayCommand.java @@ -1,12 +1,9 @@ package me.unurled.sacredrealms.sr.commands.admin.cutscene; -import static me.unurled.srcore.utils.Component.NOT_PLAYER; -import static me.unurled.srcore.utils.Component.NO_PERMISSION; -import static me.unurled.srcore.utils.Component.textComp; - import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Collection; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -15,12 +12,12 @@ public class ReplayCommand implements BasicCommand { @Override public void execute(@NotNull CommandSourceStack stack, String[] args) { if (!(stack.getSender() instanceof Player p)) { - stack.getSender().sendMessage(textComp(NOT_PLAYER)); + stack.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } if (!p.hasPermission("sr.cutscene.replay")) { - p.sendMessage(textComp(NO_PERMISSION)); + p.sendMessage(TranslatedComponent.NO_PERMISSION.component()); } // aaa diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/StopRecordingCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/StopRecordingCommand.java index 33882e0..96ef444 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/StopRecordingCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/admin/cutscene/StopRecordingCommand.java @@ -1,14 +1,11 @@ package me.unurled.sacredrealms.sr.commands.admin.cutscene; -import static me.unurled.srcore.utils.Component.NOT_PLAYER; -import static me.unurled.srcore.utils.Component.NO_PERMISSION; -import static me.unurled.srcore.utils.Component.textComp; - import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Collection; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -17,11 +14,11 @@ public class StopRecordingCommand implements BasicCommand { @Override public void execute(@NotNull CommandSourceStack stack, String[] args) { if (!(stack.getSender() instanceof Player p)) { - stack.getSender().sendMessage(textComp(NOT_PLAYER)); + stack.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component()); return; } if (!p.hasPermission("sr.cutscene.create")) { - p.sendMessage(textComp(NO_PERMISSION)); + p.sendMessage(TranslatedComponent.NO_PERMISSION.component()); return; } diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/player/DifficultyCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/player/DifficultyCommand.java index 200bda9..4d351b0 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/player/DifficultyCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/player/DifficultyCommand.java @@ -1,20 +1,18 @@ package me.unurled.sacredrealms.sr.commands.player; -import static me.unurled.srcore.utils.Component.NOT_PLAYER; -import static me.unurled.srcore.utils.Component.NO_PERMISSION; -import static me.unurled.srcore.utils.Component.PLAYER_NOT_FOUND; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; import java.util.Arrays; import java.util.Collection; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.gui.difficulty.DifficultyGUI; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -51,11 +49,11 @@ public class DifficultyCommand implements BasicCommand { private static void playerHandling( @NotNull CommandSender sender, @NotNull String[] args, @NotNull Player p) { if (!p.hasPermission(DIFFICULTY_SELF)) { - sender.sendMessage(textComp(NO_PERMISSION)); + sender.sendMessage(TranslatedComponent.NO_PERMISSION.component()); return; } if (args.length >= 1 && !p.hasPermission(DIFFICULTY_MANAGE)) { - sender.sendMessage(textComp(NO_PERMISSION)); + sender.sendMessage(TranslatedComponent.NO_PERMISSION.component()); usage(sender); return; } @@ -63,7 +61,7 @@ public class DifficultyCommand implements BasicCommand { if (args.length == 0) { // open gui for sender Window window = - Window.single() + Window.mergedBuilder() .setViewer(p) .setTitle(CHOOSE_DIFFICULTY) .setGui(DifficultyGUI.createGui()) @@ -76,11 +74,11 @@ public class DifficultyCommand implements BasicCommand { // open gui for target player Player target = p.getServer().getPlayer(args[0]); if (target == null) { - sender.sendMessage(textComp(PLAYER_NOT_FOUND)); + sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component()); return; } Window window = - Window.single() + Window.mergedBuilder() .setViewer(p) .setTitle(CHOOSE_DIFFICULTY) .setGui(DifficultyGUI.createGui()) @@ -93,7 +91,7 @@ public class DifficultyCommand implements BasicCommand { // set difficulty for target player Player target = p.getServer().getPlayer(args[0]); if (target == null) { - sender.sendMessage(textComp(PLAYER_NOT_FOUND)); + sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component()); return; } // set difficulty @@ -112,7 +110,7 @@ public class DifficultyCommand implements BasicCommand { Difficulty difficulty) { SRPlayer sr = pm.getPlayer(target.getUniqueId()); if (sr == null) { - sender.sendMessage(textComp(PLAYER_NOT_FOUND)); + sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component()); return; } sr.setDifficulty(difficulty); @@ -127,19 +125,19 @@ public class DifficultyCommand implements BasicCommand { private static void consoleHandler( @NotNull CommandSender sender, @NotNull String @NotNull [] args) { if (args.length == 0) { - sender.sendMessage(textComp(NOT_PLAYER)); + sender.sendMessage(TranslatedComponent.NOT_PLAYER.component()); usage(sender); return; } Player target = Bukkit.getPlayer(args[0]); if (target == null) { - sender.sendMessage(textComp(PLAYER_NOT_FOUND)); + sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component()); return; } if (args.length == 1) { Window window = - Window.single() + Window.mergedBuilder() .setViewer(target) .setTitle(CHOOSE_DIFFICULTY) .setGui(DifficultyGUI.createGui()) diff --git a/src/main/java/me/unurled/sacredrealms/sr/commands/player/ResetAdventureCommand.java b/src/main/java/me/unurled/sacredrealms/sr/commands/player/ResetAdventureCommand.java index 923499b..c322380 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/commands/player/ResetAdventureCommand.java +++ b/src/main/java/me/unurled/sacredrealms/sr/commands/player/ResetAdventureCommand.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.commands.player; -import static me.unurled.srcore.utils.Component.comp; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; @@ -9,10 +9,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Objects; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; @@ -39,7 +39,7 @@ public class ResetAdventureCommand implements BasicCommand { } return; } - OfflinePlayer player = SR.getPlugin().getServer().getOfflinePlayer(args[0]); + OfflinePlayer player = SR.plugin().getServer().getOfflinePlayer(args[0]); boolean status = resetAdventure(player); if (status) { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockItem.java b/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockItem.java index 8926f4a..5221621 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockItem.java @@ -1,7 +1,7 @@ package me.unurled.sacredrealms.sr.components.block; -import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.Logger.error; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockManager.java index d45cea4..c2be6eb 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/block/BlockManager.java @@ -4,8 +4,8 @@ import static me.unurled.sacredrealms.sr.utils.Items.locationToString; import java.util.HashMap; import java.util.Map; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -65,9 +65,9 @@ public class BlockManager extends Manager { public void load() { Bukkit.getScheduler() .runTask( - SR.getPlugin(), + SR.plugin(), () -> { - for (World world : SR.getPlugin().getServer().getWorlds()) { + for (World world : SR.plugin().getServer().getWorlds()) { if (world == null) { continue; } diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/clientbuild/ClientBuildManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/clientbuild/ClientBuildManager.java index 5254dcb..a9247f4 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/clientbuild/ClientBuildManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/clientbuild/ClientBuildManager.java @@ -11,11 +11,11 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.data.BlockData; @@ -41,7 +41,7 @@ public class ClientBuildManager extends Manager { @Override public void load() { super.load(); - Bukkit.getPluginManager().registerEvents(new ClientBuildCommand(), SR.getPlugin()); + Bukkit.getPluginManager().registerEvents(new ClientBuildCommand(), SR.plugin()); } public List getBuilds() { @@ -83,7 +83,7 @@ public class ClientBuildManager extends Manager { if (dh == null) { error("Failed to get DataHandler instance, can't load client builds."); error("Retrying in 10 seconds."); - Bukkit.getScheduler().runTaskLaterAsynchronously(SR.getPlugin(), this::loadData, 200L); + Bukkit.getScheduler().runTaskLaterAsynchronously(SR.plugin(), this::loadData, 200L); return; } List keys = dh.getKeysAll("sr.clientbuild"); @@ -130,7 +130,7 @@ public class ClientBuildManager extends Manager { } Bukkit.getScheduler() .runTaskAsynchronously( - SR.getPlugin(), + SR.plugin(), () -> { for (String name : names) { ClientBuild build = getBuild(name); diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java index cebdb43..5289ba7 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java @@ -1,14 +1,15 @@ package me.unurled.sacredrealms.sr.components.combat; -import static me.unurled.srcore.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.spawnIndicator; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Random; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.entity.EntityManager; import me.unurled.sacredrealms.sr.components.entity.SREntity; @@ -16,7 +17,6 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.utils.Items; -import me.unurled.srcore.api.Manager; import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CreationListener.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CreationListener.java index 12f0023..b53a5eb 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CreationListener.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CreationListener.java @@ -1,11 +1,11 @@ package me.unurled.sacredrealms.sr.components.cutscene; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import static org.bukkit.Material.RED_WOOL; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.utils.Region; import me.unurled.sacredrealms.sr.utils.RegionUtil; -import me.unurled.srcore.api.Manager; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CutsceneManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CutsceneManager.java index 73ad534..1dc6b39 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CutsceneManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/CutsceneManager.java @@ -1,16 +1,16 @@ package me.unurled.sacredrealms.sr.components.cutscene; import static me.unurled.sacredrealms.sr.utils.Items.cancelItem; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker; -import me.unurled.srcore.api.Manager; import net.kyori.adventure.text.TextComponent; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -32,10 +32,7 @@ public class CutsceneManager extends Manager { @Override public void load() { super.load(); - SR.getPlugin() - .getServer() - .getPluginManager() - .registerEvents(new CreationListener(), SR.getPlugin()); + SR.plugin().getServer().getPluginManager().registerEvents(new CreationListener(), SR.plugin()); TickTracker.startTracking(); cutscenes = new ArrayList<>(); cutsceneBeingCreated = new HashMap<>(); diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/RecordingManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/RecordingManager.java index 7470830..2638efd 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/RecordingManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/RecordingManager.java @@ -1,13 +1,13 @@ package me.unurled.sacredrealms.sr.components.cutscene; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.ArrayList; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker; -import me.unurled.srcore.api.Manager; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/Replay.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/Replay.java index 64de72e..a83f84e 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/Replay.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/Replay.java @@ -1,8 +1,5 @@ package me.unurled.sacredrealms.sr.components.cutscene; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; import me.unurled.sacredrealms.sr.components.cutscene.tasks.ReplayTask; @@ -15,19 +12,16 @@ public class Replay { private final Player viewer; private final Recording recording; private final BukkitTask replayTask; - private final Map spawnedEntities; public Replay(Recording recording, @NotNull Player viewer) { this.recording = recording; this.viewer = viewer; - spawnedEntities = new HashMap<>(); viewer.getInventory().clear(); // TODO: control cutscene replay replayTask = - Bukkit.getScheduler() - .runTaskTimerAsynchronously(SR.getPlugin(), new ReplayTask(this), 0L, 1L); + Bukkit.getScheduler().runTaskTimerAsynchronously(SR.plugin(), new ReplayTask(this), 0L, 1L); } public Player viewer() { @@ -47,8 +41,4 @@ public class Replay { replayTask.cancel(); } } - - public Map spawnedEntities() { - return spawnedEntities; - } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/ReplayManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/ReplayManager.java index 78ab4c7..6fadbae 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/ReplayManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/ReplayManager.java @@ -2,8 +2,8 @@ package me.unurled.sacredrealms.sr.components.cutscene; import java.util.HashSet; import java.util.Set; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; -import me.unurled.srcore.api.Manager; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recordable.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recordable.java index c5085a6..8f7252d 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recordable.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recordable.java @@ -1,12 +1,9 @@ package me.unurled.sacredrealms.sr.components.cutscene.recording; -import com.github.retrooper.packetevents.protocol.player.User; -import me.unurled.sacredrealms.sr.components.cutscene.Replay; - public abstract class Recordable { private long tick; - public abstract void replay(Replay replay, User user) throws Exception; + public abstract void replay(); public long tick() { return tick; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recording.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recording.java index 34f5dad..fa5077a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recording.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/Recording.java @@ -37,9 +37,9 @@ public class Recording { this.endTick = 1; // TODO: get tick this.scanEntitiesTask = - Bukkit.getScheduler().runTaskTimer(SR.getPlugin(), new ScanEntityTracker(this), 0L, 20L); + Bukkit.getScheduler().runTaskTimer(SR.plugin(), new ScanEntityTracker(this), 0L, 20L); this.trackLocationTask = - Bukkit.getScheduler().runTaskTimer(SR.getPlugin(), new TrackLocationTask(this), 0L, 1L); + Bukkit.getScheduler().runTaskTimer(SR.plugin(), new TrackLocationTask(this), 0L, 1L); } public Map> recordables() { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/DespawnEntityRecordable.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/DespawnEntityRecordable.java index f2776b6..8c6d608 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/DespawnEntityRecordable.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/DespawnEntityRecordable.java @@ -1,11 +1,7 @@ package me.unurled.sacredrealms.sr.components.cutscene.recording.recordables; -import com.github.retrooper.packetevents.protocol.player.User; -import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerDestroyEntities; import java.util.UUID; -import me.unurled.sacredrealms.sr.components.cutscene.Replay; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable; -import org.jetbrains.annotations.NotNull; public class DespawnEntityRecordable extends Recordable { @@ -18,11 +14,8 @@ public class DespawnEntityRecordable extends Recordable { } @Override - public void replay(@NotNull Replay replay, @NotNull User user) throws Exception { - WrapperPlayServerDestroyEntities destroyEntities = - new WrapperPlayServerDestroyEntities(replay.spawnedEntities().get(entityId)); - user.sendPacket(destroyEntities); - replay.spawnedEntities().remove(entityId); + public void replay() { + // TODO: fake spawn entity } public UUID entityId() { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/LocationChangeRecordable.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/LocationChangeRecordable.java index 91669bf..892eb56 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/LocationChangeRecordable.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/LocationChangeRecordable.java @@ -1,8 +1,6 @@ package me.unurled.sacredrealms.sr.components.cutscene.recording.recordables; -import com.github.retrooper.packetevents.protocol.player.User; import java.util.UUID; -import me.unurled.sacredrealms.sr.components.cutscene.Replay; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable; import org.bukkit.Location; @@ -19,7 +17,7 @@ public class LocationChangeRecordable extends Recordable { } @Override - public void replay(Replay replay, User user) throws Exception {} + public void replay() {} public UUID entityId() { return entityId; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/SpawnEntityRecordable.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/SpawnEntityRecordable.java index 8eb3dd8..aaa21db 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/SpawnEntityRecordable.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/recording/recordables/SpawnEntityRecordable.java @@ -1,20 +1,8 @@ package me.unurled.sacredrealms.sr.components.cutscene.recording.recordables; -import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes; -import com.github.retrooper.packetevents.protocol.player.User; -import com.github.retrooper.packetevents.protocol.player.UserProfile; -import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPlayerInfoUpdate; -import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity; -import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnPlayer; -import io.github.retrooper.packetevents.util.SpigotConversionUtil; -import java.lang.reflect.Field; -import java.util.EnumSet; import java.util.UUID; -import java.util.concurrent.atomic.AtomicInteger; -import me.unurled.sacredrealms.sr.components.cutscene.Replay; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable; import net.kyori.adventure.text.Component; -import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; @@ -45,49 +33,8 @@ public class SpawnEntityRecordable extends Recordable { } @Override - public void replay(Replay replay, User user) throws Exception { // TODO: check everything - - Class entityClass = Class.forName("net.minecraft.world.entity.Entity"); - Field field = entityClass.getDeclaredField("ENTITY_COUNTER"); - field.setAccessible(true); - AtomicInteger ENTITY_COUNTER = (AtomicInteger) field.get(null); - int id = ENTITY_COUNTER.incrementAndGet(); - - if (entityType == EntityType.PLAYER) { - WrapperPlayServerPlayerInfoUpdate.PlayerInfo data = - new WrapperPlayServerPlayerInfoUpdate.PlayerInfo( - new UserProfile(entityId, name.toString()), - false, - 0, - SpigotConversionUtil.fromBukkitGameMode(GameMode.SURVIVAL), - name, - null); - - user.sendPacket( - new WrapperPlayServerPlayerInfoUpdate( - EnumSet.of(WrapperPlayServerPlayerInfoUpdate.Action.ADD_PLAYER), data)); - user.sendPacket( - new WrapperPlayServerSpawnPlayer( - id, entityId, SpigotConversionUtil.fromBukkitLocation(location))); - - replay.spawnedEntities().put(entityId, id); - } else { - com.github.retrooper.packetevents.protocol.entity.type.EntityType entityType1 = - EntityTypes.getByName(entityType.getKey().toString()); - - WrapperPlayServerSpawnEntity spawnEntityPacket = - new WrapperPlayServerSpawnEntity( - id, - UUID.randomUUID(), - entityType1, - SpigotConversionUtil.fromBukkitLocation(location), - 0, - 0, - null); - - user.sendPacket(spawnEntityPacket); - replay.spawnedEntities().put(entityId, id); - } + public void replay() { + // TODO: fake spawn entity } public EntityType entityType() { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ReplayTask.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ReplayTask.java index e612a59..5b43e38 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ReplayTask.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ReplayTask.java @@ -1,27 +1,22 @@ package me.unurled.sacredrealms.sr.components.cutscene.tasks; import static me.unurled.sacredrealms.sr.utils.Logger.error; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; -import com.github.retrooper.packetevents.PacketEvents; -import com.github.retrooper.packetevents.protocol.player.User; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.Replay; import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable; -import me.unurled.srcore.api.Manager; -import org.jetbrains.annotations.NotNull; public class ReplayTask implements Runnable { private final Replay replay; private final ReplayManager rm; - private final User user; private long currentTick = 0; - public ReplayTask(@NotNull Replay replay) { + public ReplayTask(Replay replay) { this.replay = replay; rm = Manager.getInstance(ReplayManager.class); - this.user = PacketEvents.getAPI().getPlayerManager().getUser(replay.viewer()); } @Override @@ -43,7 +38,7 @@ public class ReplayTask implements Runnable { for (Recordable r : recordables) { // figure out how to replay a recordable - r.replay(replay, user); + r.replay(); } } catch (Exception e) { error("Tick: " + currentTick); diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ScanEntityTracker.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ScanEntityTracker.java index 0f69291..ba143e7 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ScanEntityTracker.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/ScanEntityTracker.java @@ -2,11 +2,11 @@ package me.unurled.sacredrealms.sr.components.cutscene.tasks; import java.util.ArrayList; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.SpawnEntityRecordable; -import me.unurled.srcore.api.Manager; import org.bukkit.Chunk; import org.bukkit.Location; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TickTracker.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TickTracker.java index ef551e9..e32284a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TickTracker.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TickTracker.java @@ -7,7 +7,7 @@ public class TickTracker { private static long currentTick = 0; public static void startTracking() { - Bukkit.getScheduler().scheduleSyncRepeatingTask(SR.getPlugin(), () -> currentTick++, 0L, 1L); + Bukkit.getScheduler().scheduleSyncRepeatingTask(SR.plugin(), () -> currentTick++, 0L, 1L); } public static long currentTick() { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TrackLocationTask.java b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TrackLocationTask.java index 9fec3dd..3a428bc 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TrackLocationTask.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/cutscene/tasks/TrackLocationTask.java @@ -1,10 +1,10 @@ package me.unurled.sacredrealms.sr.components.cutscene.tasks; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.DespawnEntityRecordable; import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.LocationChangeRecordable; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.entity.Entity; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/difficulty/Difficulty.java b/src/main/java/me/unurled/sacredrealms/sr/components/difficulty/Difficulty.java index f2321be..6bfca33 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/difficulty/Difficulty.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/difficulty/Difficulty.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.components.difficulty; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java index 3640e22..c2131ae 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/entity/EntityManager.java @@ -8,13 +8,13 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.item.ItemStackDeserializer; import me.unurled.sacredrealms.sr.components.item.ItemStackSerializer; import me.unurled.sacredrealms.sr.components.player.PotionEffectDeserializer; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/entity/SREntity.java b/src/main/java/me/unurled/sacredrealms/sr/components/entity/SREntity.java index d7dfe20..b1e40c5 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/entity/SREntity.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/entity/SREntity.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.components.entity; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.UUID; import me.unurled.sacredrealms.sr.components.attributes.Attribute; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/item/Item.java b/src/main/java/me/unurled/sacredrealms/sr/components/item/Item.java index c2028e6..b119533 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/item/Item.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/item/Item.java @@ -1,8 +1,8 @@ package me.unurled.sacredrealms.sr.components.item; -import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.Items.lore; import static me.unurled.sacredrealms.sr.utils.Logger.error; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/item/ItemManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/item/ItemManager.java index b4319f0..6ba4a85 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/item/ItemManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/item/ItemManager.java @@ -6,9 +6,9 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import java.util.HashMap; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.api.Manager; import org.bukkit.NamespacedKey; import org.bukkit.inventory.ItemStack; import org.bukkit.persistence.PersistentDataType; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/npc/NPCManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/npc/NPCManager.java index e0a1af4..98d3501 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/npc/NPCManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/npc/NPCManager.java @@ -1,13 +1,14 @@ package me.unurled.sacredrealms.sr.components.npc; - import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.UUID; +import lol.pyr.znpcsplus.api.NpcApi; +import lol.pyr.znpcsplus.api.NpcApiProvider; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.utils.ChunkWrapper; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.world.ChunkLoadEvent; @@ -17,6 +18,19 @@ public class NPCManager extends Manager { private final Map> npcPerChunk = new HashMap<>(); public Map npcs = new HashMap<>(); + private NpcApi ncpApi; + + @Override + public void load() { + super.load(); + ncpApi = NpcApiProvider.get(); + } + + @Override + public void unload() { + super.unload(); + ncpApi = null; + } public void register(@NotNull NPCEntity entity) { // TODO: Register the entity @@ -41,7 +55,7 @@ public class NPCManager extends Manager { } public void addEntity(NPCEntity entity) { -// npcs.put(entity.getEntity().getUniqueId(), entity); + // npcs.put(entity.getEntity().getUniqueId(), entity); } @EventHandler @@ -52,7 +66,7 @@ public class NPCManager extends Manager { } Bukkit.getScheduler() .scheduleSyncDelayedTask( - SR.getPlugin(), + SR.plugin(), () -> { HashSet npc = npcPerChunk.get(cw); for (NPCEntity entity : npc) { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/pack/ResourcePackManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/pack/ResourcePackManager.java index dbcf52e..8f3863c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/pack/ResourcePackManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/pack/ResourcePackManager.java @@ -12,13 +12,13 @@ import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.util.UUID; import java.util.zip.ZipOutputStream; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.pack.hosts.HostingProvider; import me.unurled.sacredrealms.sr.components.pack.hosts.RustProvider; import me.unurled.sacredrealms.sr.config.Settings; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.jetbrains.annotations.NotNull; @@ -36,18 +36,17 @@ public class ResourcePackManager extends Manager { @NotNull private static File packFile(String fileName) { try { - new File(SR.getPlugin().getDataFolder(), "pack").mkdirs(); + new File(SR.plugin().getDataFolder(), "pack").mkdirs(); String[] filesInclude = {"assets", "pack.mcmeta"}; - FileOutputStream fos = - new FileOutputStream(new File(SR.getPlugin().getDataFolder(), fileName)); + FileOutputStream fos = new FileOutputStream(new File(SR.plugin().getDataFolder(), fileName)); ZipOutputStream zipOut = new ZipOutputStream(fos); zipOut.setLevel(9); for (String filePath : filesInclude) { - File fileToZip = new File(SR.getPlugin().getDataFolder() + "/pack", filePath); + File fileToZip = new File(SR.plugin().getDataFolder() + "/pack", filePath); if (fileToZip.isDirectory()) { zipDirectory(fileToZip, fileToZip.getName(), zipOut); } else { @@ -60,7 +59,7 @@ public class ResourcePackManager extends Manager { } catch (IOException e) { error("Failed to create resource pack"); } - return new File(SR.getPlugin().getDataFolder(), fileName); + return new File(SR.plugin().getDataFolder(), fileName); } /** Save the data */ @@ -100,7 +99,7 @@ public class ResourcePackManager extends Manager { public void uploadAsync(final File file) { Bukkit.getScheduler() .runTaskAsynchronously( - SR.getPlugin(), + SR.plugin(), () -> { // start the call boolean success; @@ -120,13 +119,13 @@ public class ResourcePackManager extends Manager { @Override public void load() { super.load(); - String zipPath = SR.getPlugin().getDataFolder() + "/" + RESOURCE_PACK_ZIP; + String zipPath = SR.plugin().getDataFolder() + "/" + RESOURCE_PACK_ZIP; Bukkit.getScheduler() .runTaskAsynchronously( - SR.getPlugin(), + SR.plugin(), () -> { - if (new File(SR.getPlugin().getDataFolder(), "pack").exists() + if (new File(SR.plugin().getDataFolder(), "pack").exists() && new File(zipPath).exists()) { log("Resource pack exists"); // create a new zip with files diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/pack/animatedjava/AnimatedJavaManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/pack/animatedjava/AnimatedJavaManager.java index 46b444c..dbbafe4 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/pack/animatedjava/AnimatedJavaManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/pack/animatedjava/AnimatedJavaManager.java @@ -1,5 +1,5 @@ package me.unurled.sacredrealms.sr.components.pack.animatedjava; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.Manager; public class AnimatedJavaManager extends Manager {} diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/pack/background/BackgroundManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/pack/background/BackgroundManager.java index 05fbcaf..ec3801a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/pack/background/BackgroundManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/pack/background/BackgroundManager.java @@ -5,10 +5,10 @@ import static me.unurled.sacredrealms.sr.utils.Logger.warn; import java.io.File; import java.util.HashMap; import java.util.Map; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.utils.character.CharacterArranger; import me.unurled.sacredrealms.sr.utils.character.ConfiguredChar; -import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; public class BackgroundManager extends Manager { @@ -21,7 +21,7 @@ public class BackgroundManager extends Manager { @Override public void loadData() { - File bgFolder = new File(SR.getPlugin().getDataFolder(), "backgrounds"); + File bgFolder = new File(SR.plugin().getDataFolder(), "backgrounds"); if (!bgFolder.exists() && bgFolder.mkdirs()) { saveDefaultBackgrounds(); } @@ -133,7 +133,7 @@ public class BackgroundManager extends Manager { private void saveDefaultBackgrounds() { String[] bgList = new String[] {"b0", "b1", "b2", "b4", "b8", "b16", "b32", "b64", "b128"}; for (String bg : bgList) { - SR.getPlugin().saveResource("backgrounds" + File.separator + bg + ".png", false); + SR.plugin().saveResource("backgrounds" + File.separator + bg + ".png", false); } } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/packet/PacketManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/packet/PacketManager.java index 1f57cc9..791c054 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/packet/PacketManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/packet/PacketManager.java @@ -2,7 +2,7 @@ package me.unurled.sacredrealms.sr.components.packet; import com.github.retrooper.packetevents.PacketEvents; import com.github.retrooper.packetevents.wrapper.PacketWrapper; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.Manager; import org.bukkit.entity.Player; public class PacketManager extends Manager { diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java index 9a9f7a9..b92f6a9 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java @@ -3,7 +3,7 @@ package me.unurled.sacredrealms.sr.components.player; import static me.unurled.sacredrealms.sr.utils.Logger.error; import static me.unurled.sacredrealms.sr.utils.Logger.log; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent; import com.google.gson.Gson; @@ -11,13 +11,13 @@ import com.google.gson.GsonBuilder; import java.net.URI; import java.util.HashMap; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.pack.ResourcePackManager; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.events.player.PlayerLevelUpEvent; import me.unurled.sacredrealms.sr.utils.Items; -import me.unurled.srcore.api.Manager; import net.kyori.adventure.resource.ResourcePackInfo; import net.kyori.adventure.resource.ResourcePackRequest; import org.bukkit.Bukkit; @@ -139,8 +139,7 @@ public class PlayerManager extends Manager { // TODO: does not update when player health has changed for example BukkitTask task = Bukkit.getScheduler() - .runTaskTimerAsynchronously( - SR.getPlugin(), () -> updateActionBar(e.getPlayer()), 0, 20L); + .runTaskTimerAsynchronously(SR.plugin(), () -> updateActionBar(e.getPlayer()), 0, 20L); actionBarTasks.put(e.getPlayer().getUniqueId(), task); e.getPlayer().updateInventory(); @@ -259,7 +258,7 @@ public class PlayerManager extends Manager { public void levelUp(SRPlayer p, int previousLevel) { PlayerLevelUpEvent event = new PlayerLevelUpEvent(p, previousLevel); - Bukkit.getScheduler().runTaskAsynchronously(SR.getPlugin(), event::callEvent); + Bukkit.getScheduler().runTaskAsynchronously(SR.plugin(), event::callEvent); Player player = Bukkit.getPlayer(p.getUuid()); if (player != null) { player.sendMessage(event.getMessage()); diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/player/SRPlayer.java b/src/main/java/me/unurled/sacredrealms/sr/components/player/SRPlayer.java index bc49cd5..b959aef 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/player/SRPlayer.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/player/SRPlayer.java @@ -10,11 +10,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.events.player.PlayerKillEvent; -import me.unurled.srcore.api.Manager; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/player/listener/PlayerBlockEvent.java b/src/main/java/me/unurled/sacredrealms/sr/components/player/listener/PlayerBlockEvent.java index 84f5c4d..9d4d6a9 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/player/listener/PlayerBlockEvent.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/player/listener/PlayerBlockEvent.java @@ -1,8 +1,8 @@ package me.unurled.sacredrealms.sr.components.player.listener; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/pointer/DisplayForPlayer.java b/src/main/java/me/unurled/sacredrealms/sr/components/pointer/DisplayForPlayer.java deleted file mode 100644 index 5edfb8c..0000000 --- a/src/main/java/me/unurled/sacredrealms/sr/components/pointer/DisplayForPlayer.java +++ /dev/null @@ -1,107 +0,0 @@ -package me.unurled.sacredrealms.sr.components.pointer; - -import com.github.retrooper.packetevents.PacketEvents; -import com.github.retrooper.packetevents.protocol.entity.data.EntityData; -import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes; -import com.github.retrooper.packetevents.protocol.player.User; -import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityMetadata; -import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity; -import io.github.retrooper.packetevents.util.SpigotConversionUtil; -import java.util.ArrayList; -import java.util.List; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.BlockState; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.joml.Vector3f; - -// TODO: test this -public class DisplayForPlayer implements Runnable { - - private static final int RENDER_DISTANCE_BLOCKS = 128; - - private final Pointer pointer; - private final Player player; - private final User user; - - public DisplayForPlayer(Pointer pointer, Player player) { - this.pointer = pointer; - this.player = player; - this.user = PacketEvents.getAPI().getPlayerManager().getUser(player); - } - - public static Location getLocationInRange(@NotNull Player player, Location targetLocation) { - Location playerLocation = player.getLocation(); - - // Calculate the distance between player and target location - double distance = playerLocation.distance(targetLocation); - - // If the location is within the render distance, return the original location - if (distance <= RENDER_DISTANCE_BLOCKS) { - return targetLocation; - } - - // If the location is out of range, calculate a new location within the render distance - // Calculate the direction vector from the player to the target - Location direction = - targetLocation - .clone() - .subtract(playerLocation) - .toVector() - .normalize() - .toLocation(player.getWorld()); - - // Create a new location within the render distance pointing towards the target location - return playerLocation.clone().add(direction.multiply(RENDER_DISTANCE_BLOCKS)); - } - - @Override - public void run() { - // get difference between player loc and pointer loc, if it is too large then set pointer - // blockdisplay's location to in range of player - - Location location = getLocationInRange(player, pointer.location()); - - WrapperPlayServerSpawnEntity packet = - new WrapperPlayServerSpawnEntity( - pointer.entityId(), - pointer.entityUUID(), - SpigotConversionUtil.fromBukkitEntityType(EntityType.BLOCK_DISPLAY), - SpigotConversionUtil.fromBukkitLocation(location), - 0, - 0, - null); - - user.sendPacket(packet); - - List list = new ArrayList<>(); - - BlockState ironBar = - player - .getWorld() - .getBlockAt(new Location(player.getWorld(), 0, 0, 0)) - .getState() - .getBlockData() - .createBlockState(); - ironBar.setType(Material.IRON_BARS); - - // make it iron bars - EntityData data = new EntityData(23, EntityDataTypes.BLOCK_STATE, ironBar); - list.add(data); - - // scale - EntityData data2 = new EntityData(12, EntityDataTypes.VECTOR3F, new Vector3f(2, 150, 2)); - list.add(data2); - - // glowing - EntityData glowing = new EntityData(0, EntityDataTypes.BYTE, (byte) 0x40); - list.add(glowing); - - WrapperPlayServerEntityMetadata packet1 = - new WrapperPlayServerEntityMetadata(pointer.entityId(), list); - - user.sendPacket(packet1); - } -} diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/pointer/Pointer.java b/src/main/java/me/unurled/sacredrealms/sr/components/pointer/Pointer.java deleted file mode 100644 index d378a28..0000000 --- a/src/main/java/me/unurled/sacredrealms/sr/components/pointer/Pointer.java +++ /dev/null @@ -1,54 +0,0 @@ -package me.unurled.sacredrealms.sr.components.pointer; - -import java.util.UUID; -import org.bukkit.Location; -import org.bukkit.entity.BlockDisplay; - -public class Pointer { - - private final Location location; - private final int entityId; - private BlockDisplay display; - private UUID entityUUID; - private Location entityLocation; - - public Pointer(int entityId, Location location) { - this.entityId = entityId; - this.location = location; - } - - public Location location() { - return location; - } - - public int entityId() { - return entityId; - } - - public BlockDisplay display() { - return display; - } - - public Pointer setDisplay(BlockDisplay display) { - this.display = display; - return this; - } - - public UUID entityUUID() { - return entityUUID; - } - - public Pointer setEntityUUID(UUID entityUUID) { - this.entityUUID = entityUUID; - return this; - } - - public Location entityLocation() { - return entityLocation; - } - - public Pointer setEntityLocation(Location entityLocation) { - this.entityLocation = entityLocation; - return this; - } -} diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/pointer/PointerManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/pointer/PointerManager.java deleted file mode 100644 index 323ecd0..0000000 --- a/src/main/java/me/unurled/sacredrealms/sr/components/pointer/PointerManager.java +++ /dev/null @@ -1,41 +0,0 @@ -package me.unurled.sacredrealms.sr.components.pointer; - -import static me.unurled.sacredrealms.sr.utils.Logger.error; - -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicInteger; -import me.unurled.sacredrealms.sr.SR; -import me.unurled.srcore.api.Manager; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitTask; - -public class PointerManager extends Manager { - - private final Map tasks = new HashMap<>(); - - public void startPointing(Player player, Location location) { - int id = -1; - try { - Class entityClass = Class.forName("net.minecraft.world.entity.Entity"); - Field field = entityClass.getDeclaredField("ENTITY_COUNTER"); - field.setAccessible(true); - AtomicInteger ENTITY_COUNTER = (AtomicInteger) field.get(null); - id = ENTITY_COUNTER.incrementAndGet(); - } catch (Exception e) { - error("Failed to find Entity counter field in nms."); - } - if (id == -1) { - return; - } - Pointer pointer = new Pointer(id, location); - DisplayForPlayer task = new DisplayForPlayer(pointer, player); - BukkitTask btask = - Bukkit.getScheduler().runTaskTimerAsynchronously(SR.getPlugin(), task, 0, 5L); - tasks.put(player.getUniqueId(), btask); - } -} diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/translation/TranslationManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/translation/TranslationManager.java new file mode 100644 index 0000000..37cba64 --- /dev/null +++ b/src/main/java/me/unurled/sacredrealms/sr/components/translation/TranslationManager.java @@ -0,0 +1,29 @@ +package me.unurled.sacredrealms.sr.components.translation; + +import java.util.Locale; +import java.util.ResourceBundle; +import me.unurled.sacredrealms.sr.Manager; +import net.kyori.adventure.key.Key; +import net.kyori.adventure.translation.GlobalTranslator; +import net.kyori.adventure.translation.TranslationRegistry; +import net.kyori.adventure.util.UTF8ResourceBundleControl; + +public class TranslationManager extends Manager { + private TranslationRegistry registry; + + @Override + public void load() { + super.load(); + registry = TranslationRegistry.create(Key.key("sr:translations")); + ResourceBundle bundle = + ResourceBundle.getBundle("sr.Bundle", Locale.US, UTF8ResourceBundleControl.get()); + registry.registerAll(Locale.US, bundle, true); + GlobalTranslator.translator().addSource(registry); + } + + @Override + public void unload() { + super.unload(); + GlobalTranslator.translator().removeSource(registry); + } +} diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/treasure/Treasure.java b/src/main/java/me/unurled/sacredrealms/sr/components/treasure/Treasure.java index 7c837fe..e0f14d8 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/treasure/Treasure.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/treasure/Treasure.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.components.treasure; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureGenerator.java b/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureGenerator.java index 2acfc81..379fcca 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureGenerator.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureGenerator.java @@ -7,12 +7,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.ItemManager; import me.unurled.sacredrealms.sr.components.item.Rarity; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureManager.java index ddab63a..dd13a20 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/treasure/TreasureManager.java @@ -1,8 +1,8 @@ package me.unurled.sacredrealms.sr.components.treasure; -import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.Logger.error; import static me.unurled.sacredrealms.sr.utils.Logger.log; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -13,11 +13,11 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.annotation.Nullable; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.Material; diff --git a/src/main/java/me/unurled/sacredrealms/sr/config/ConfigManager.java b/src/main/java/me/unurled/sacredrealms/sr/config/ConfigManager.java index e0b3da9..dbabc1a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/config/ConfigManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/config/ConfigManager.java @@ -1,8 +1,8 @@ package me.unurled.sacredrealms.sr.config; import java.io.File; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; -import me.unurled.srcore.api.Manager; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -14,12 +14,12 @@ public class ConfigManager extends Manager { /** Load the data */ @Override public void loadData() { - if (!SR.getPlugin().getDataFolder().exists()) { - SR.getPlugin().getDataFolder().mkdirs(); + if (!SR.plugin().getDataFolder().exists()) { + SR.plugin().getDataFolder().mkdirs(); } - File configFile = new File(SR.getPlugin().getDataFolder(), CONFIG_YML); + File configFile = new File(SR.plugin().getDataFolder(), CONFIG_YML); if (!configFile.exists()) { - SR.getPlugin().saveResource(CONFIG_YML, false); + SR.plugin().saveResource(CONFIG_YML, false); config = YamlConfiguration.loadConfiguration(configFile); } config = YamlConfiguration.loadConfiguration(configFile); @@ -27,10 +27,10 @@ public class ConfigManager extends Manager { @Override public void saveData() { - if (!new File(SR.getPlugin().getDataFolder() + CONFIG_YML).exists()) { - SR.getPlugin().saveDefaultConfig(); + if (!new File(SR.plugin().getDataFolder() + CONFIG_YML).exists()) { + SR.plugin().saveDefaultConfig(); } else { - SR.getPlugin().saveConfig(); + SR.plugin().saveConfig(); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/config/Settings.java b/src/main/java/me/unurled/sacredrealms/sr/config/Settings.java index 1aaa130..2c9d6bd 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/config/Settings.java +++ b/src/main/java/me/unurled/sacredrealms/sr/config/Settings.java @@ -4,8 +4,8 @@ import static me.unurled.sacredrealms.sr.utils.Logger.error; import java.io.File; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; -import me.unurled.srcore.api.Manager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.configuration.ConfigurationSection; @@ -37,9 +37,9 @@ public enum Settings { } public void setValue(Object value) { - SR.getPlugin().getConfig().set(path, value); + SR.plugin().getConfig().set(path, value); try { - SR.getPlugin().getConfig().save(new File(SR.getPlugin().getDataFolder(), "config.yml")); + SR.plugin().getConfig().save(new File(SR.plugin().getDataFolder(), "config.yml")); } catch (Exception e) { error("Failed to save config.yml"); } diff --git a/src/main/java/me/unurled/sacredrealms/sr/data/DataManager.java b/src/main/java/me/unurled/sacredrealms/sr/data/DataManager.java index 11a3d10..ee94762 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/data/DataManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/data/DataManager.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.data; -import me.unurled.srcore.api.Manager; +import me.unurled.sacredrealms.sr.Manager; /** The data and config manager */ public class DataManager extends Manager { diff --git a/src/main/java/me/unurled/sacredrealms/sr/data/Redis.java b/src/main/java/me/unurled/sacredrealms/sr/data/Redis.java index 15342f3..866fa1e 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/data/Redis.java +++ b/src/main/java/me/unurled/sacredrealms/sr/data/Redis.java @@ -3,10 +3,10 @@ package me.unurled.sacredrealms.sr.data; import static me.unurled.sacredrealms.sr.utils.Logger.error; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.config.ConfigManager; import me.unurled.sacredrealms.sr.config.Settings; -import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; import redis.clients.jedis.JedisPooled; @@ -21,7 +21,7 @@ public class Redis implements DataHandler { Integer port = Settings.REDIS_PORT.toInt(); if (host == null || port == null) { error("Failed to get Redis host or port from config, shutting down server."); - SR.getPlugin().getServer().shutdown(); + SR.plugin().getServer().shutdown(); return; } try { @@ -29,11 +29,11 @@ public class Redis implements DataHandler { client.get("test"); } catch (Exception e) { error("Failed to connect to Redis, shutting down server."); - SR.getPlugin().getServer().shutdown(); + SR.plugin().getServer().shutdown(); } } else { error("Failed to get DataManager instance. Can't connect to Redis, shutting down server."); - SR.getPlugin().getServer().shutdown(); + SR.plugin().getServer().shutdown(); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/events/player/PlayerLevelUpEvent.java b/src/main/java/me/unurled/sacredrealms/sr/events/player/PlayerLevelUpEvent.java index 9234ba6..84dfc3a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/events/player/PlayerLevelUpEvent.java +++ b/src/main/java/me/unurled/sacredrealms/sr/events/player/PlayerLevelUpEvent.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.events.player; -import static me.unurled.srcore.utils.Component.comp; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import me.unurled.sacredrealms.sr.components.player.SRPlayer; import net.kyori.adventure.text.Component; diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java index 77b8bd3..048a115 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java @@ -1,26 +1,34 @@ package me.unurled.sacredrealms.sr.gui; import org.bukkit.Material; -import xyz.xenondevs.invui.gui.PagedGui; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractPagedGuiBoundItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.controlitem.PageItem; -public class BackItem extends PageItem { +public class BackItem extends AbstractPagedGuiBoundItem { - public BackItem() { - super(false); - } + public BackItem() {} @Override - public ItemProvider getItemProvider(PagedGui gui) { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); builder - .setDisplayName("§cPrevious Page") + .setCustomName("§cPrevious Page") .addLoreLines( - gui.hasPreviousPage() - ? "§7Go to page §e" + gui.getCurrentPage() + "§7/§e" + gui.getPageAmount() + this.getGui().getPage() > 1 + ? "§7Go to page §e" + + this.getGui().getPage() + + "§7/§e" + + this.getGui().getPageCount() : "§cYou can't go further back"); return builder; } + + @Override + public void handleClick( + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {} } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java index e26666f..970b711 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java @@ -1,27 +1,37 @@ package me.unurled.sacredrealms.sr.gui; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; + import org.bukkit.Material; -import xyz.xenondevs.invui.gui.PagedGui; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractPagedGuiBoundItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.controlitem.PageItem; -public class ForwardItem extends PageItem { +public class ForwardItem extends AbstractPagedGuiBoundItem { - public ForwardItem() { - super(true); - } + public ForwardItem() {} @Override - public ItemProvider getItemProvider(PagedGui gui) { + public @NotNull ItemProvider getItemProvider(@NotNull Player player) { ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE); builder - .setDisplayName("§7Next page") + .setCustomName(comp("Next page")) .addLoreLines( - gui.hasNextPage() - ? "§7Go to page §e" + (gui.getCurrentPage() + 2) + "§7/§e" + gui.getPageAmount() - : "§cThere are no more pages"); + this.getGui().getPage() + 1 < this.getGui().getPageCount() + ? comp( + "Go to page §e" + + (this.getGui().getPage() + 2) + + "§7/§e" + + this.getGui().getPageCount()) + : comp("There are no more pages")); return builder; } + + @Override + public void handleClick(ClickType clickType, Player player, Click click) {} } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java index 87d40b4..53d3eb5 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java @@ -1,24 +1,20 @@ package me.unurled.sacredrealms.sr.gui.attributes; -import static me.unurled.srcore.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.inventoryaccess.component.AdventureComponentWrapper; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class AttributeItem extends AbstractItem { @@ -31,15 +27,8 @@ public class AttributeItem extends AbstractItem { this.targetPlayer = target; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { double value = 0; if (targetPlayer != null) { @@ -50,38 +39,27 @@ public class AttributeItem extends AbstractItem { ItemBuilder ip = switch (attribute) { - case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setDisplayName("Strength " + value); - case AGILITY -> new ItemBuilder(Material.BOW).setDisplayName("Agility " + value); - case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setDisplayName("Mana " + value); - case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setDisplayName("Health " + value); + case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setCustomName("Strength " + value); + case AGILITY -> new ItemBuilder(Material.BOW).setCustomName("Agility " + value); + case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setCustomName("Mana " + value); + case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setCustomName("Health " + value); case LUCK -> - new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setDisplayName("Luck " + value); - case DEFENSE -> new ItemBuilder(Material.SHIELD).setDisplayName("Defense " + value); - case CHARISMA -> - new ItemBuilder(Material.PLAYER_HEAD).setDisplayName("Charisma " + value); + new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setCustomName("Luck " + value); + case DEFENSE -> new ItemBuilder(Material.SHIELD).setCustomName("Defense " + value); + case CHARISMA -> new ItemBuilder(Material.PLAYER_HEAD).setCustomName("Charisma " + value); }; - ip.addLoreLines(new AdventureComponentWrapper(comp("+1 Left Click to increase"))); - ip.addLoreLines(new AdventureComponentWrapper(comp("-1 Right Click to decrease"))); - ip.addLoreLines( - new AdventureComponentWrapper(comp("Shift + Left Click to increase by 10"))); - ip.addLoreLines( - new AdventureComponentWrapper(comp("Shift + Right Click to decrease by 10"))); + ip.addLoreLines(comp("+1 Left Click to increase")); + ip.addLoreLines(comp("-1 Right Click to decrease")); + ip.addLoreLines(comp("Shift + Left Click to increase by 10")); + ip.addLoreLines(comp("Shift + Right Click to decrease by 10")); return ip; } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { if (targetPlayer != null) { PlayerManager playerManager = Manager.getInstance(PlayerManager.class); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java index 781acc5..012b74c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java @@ -1,6 +1,6 @@ package me.unurled.sacredrealms.sr.gui.attributes; -import static me.unurled.srcore.utils.Component.comp; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import org.bukkit.Material; @@ -8,9 +8,8 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import xyz.xenondevs.invui.gui.Gui; -import xyz.xenondevs.invui.gui.Gui.Builder.Normal; +import xyz.xenondevs.invui.gui.Gui.Builder; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.impl.SimpleItem; public class AttributesGUI { @@ -20,9 +19,9 @@ public class AttributesGUI { tMeta.setOwningPlayer(target); tMeta.displayName(comp(target.getName())); t.setItemMeta(tMeta); - Item head = new SimpleItem(t); - Normal gui = - Gui.normal() + Item head = Item.simple(t); + Builder gui = + Gui.builder() .setStructure(".........", "....h....", ".........", ".0123456.") .addIngredient('h', head); for (int i = 0; i < Attribute.values().length; i++) { diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java index 6b6544b..3da1266 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java @@ -6,16 +6,15 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; -import xyz.xenondevs.invui.gui.Gui.Builder.Normal; +import xyz.xenondevs.invui.gui.Gui.Builder; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.impl.SimpleItem; public class DifficultyGUI { public static @NotNull Gui createGui() { - Item cancel = new SimpleItem(cancelItem()); - Item glass = new SimpleItem(glassPane()); - Normal gui = - Gui.normal() + Item cancel = Item.simple(cancelItem()); + Item glass = Item.simple(glassPane()); + Builder gui = + Gui.builder() .setStructure(".........", "..1.2.3..", "....4....", "....5....") .addIngredient('5', cancel) .addIngredient('.', glass) diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java index c7bdad1..0160ca3 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java @@ -1,20 +1,17 @@ package me.unurled.sacredrealms.sr.gui.difficulty; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class DifficultyItem extends AbstractItem { @@ -24,18 +21,12 @@ public class DifficultyItem extends AbstractItem { this.difficulty = difficulty; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { return switch (difficulty) { case EASY -> new ItemBuilder(Material.BREAD) - .setDisplayName("Easy") + .setCustomName("Easy") .addLoreLines( "Is you are a new player or", "someone who just want to", @@ -44,7 +35,7 @@ public class DifficultyItem extends AbstractItem { "Click Here!"); case NORMAL -> new ItemBuilder(Material.GRASS_BLOCK) - .setDisplayName("Normal") + .setCustomName("Normal") .addLoreLines( "Is you are a regular player", "who want to enjoy the game", @@ -53,7 +44,7 @@ public class DifficultyItem extends AbstractItem { "Click Here!"); case HARD -> new ItemBuilder(Material.DIAMOND_SWORD) - .setDisplayName("Hard") + .setCustomName("Hard") .addLoreLines( "Is you are a hardcore player", "who want to enjoy the game", @@ -62,7 +53,7 @@ public class DifficultyItem extends AbstractItem { "Click Here!"); case INSANE -> new ItemBuilder(Material.NETHERITE_SWORD) - .setDisplayName("Insane") + .setCustomName("Insane") .addLoreLines( "Is you are a pro player", "who want to enjoy the game", @@ -73,18 +64,9 @@ public class DifficultyItem extends AbstractItem { }; } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - // Set the player's difficulty + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { PlayerManager pm = Manager.getInstance(PlayerManager.class); if (pm.isSRPlayer(player.getUniqueId())) { SRPlayer sr = pm.getPlayer(player.getUniqueId()); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java index 23f071d..230c3fc 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java @@ -8,14 +8,12 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityArmorItem extends AbstractItem { @@ -57,28 +55,14 @@ public class EntityArmorItem extends AbstractItem { } } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { return new ItemBuilder(stack); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java index a8d9776..f2a92d0 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java @@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityBehaviorItem extends AbstractItem { @@ -21,28 +18,14 @@ public class EntityBehaviorItem extends AbstractItem { // behavior = type.getBehavior(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.NETHERITE_SWORD).setDisplayName("Behavior: " + behavior); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.NETHERITE_SWORD).setCustomName("Behavior: " + behavior); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java index c1a9a55..5db2dfc 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java @@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityExpItem extends AbstractItem { private final Long exp; - public EntityExpItem(SREntityType type) { + public EntityExpItem(@NotNull SREntityType type) { exp = type.getExperience(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setDisplayName("Experience: " + exp); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setCustomName("Experience: " + exp); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java index e00bc8c..09c0bff 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java @@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityItemDisplay extends AbstractItem { @@ -21,28 +18,14 @@ public class EntityItemDisplay extends AbstractItem { name = type.getItem().getType().name(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setDisplayName("Item Display: " + name); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setCustomName("Item Display: " + name); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java index 1b7b4e9..eb1c993 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java @@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityLevelItem extends AbstractItem { private final int level; - public EntityLevelItem(SREntityType type) { + public EntityLevelItem(@NotNull SREntityType type) { level = type.getLevel(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.DIAMOND).setDisplayName("Level: " + level); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.DIAMOND).setCustomName("Level: " + level); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java index 1f6c91c..fcb00c6 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java @@ -3,39 +3,22 @@ package me.unurled.sacredrealms.sr.gui.entitytype; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityLootItem extends AbstractItem { - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.SKELETON_SKULL).setDisplayName("Death Loot"); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.SKELETON_SKULL).setCustomName("Death Loot"); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java index 88eeffc..dd9a2da 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java @@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityNameItem extends AbstractItem { private final String name; - public EntityNameItem(SREntityType type) { + public EntityNameItem(@NotNull SREntityType type) { name = type.getName(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.NAME_TAG).setDisplayName(name); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.NAME_TAG).setCustomName(name); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java index 677b056..db80d22 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java @@ -7,14 +7,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityStatsItem extends AbstractItem { @@ -24,32 +21,18 @@ public class EntityStatsItem extends AbstractItem { attributes = type.getAttributes(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - ItemBuilder builder = new ItemBuilder(Material.APPLE).setDisplayName("Add Stats"); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + ItemBuilder builder = new ItemBuilder(Material.APPLE).setCustomName("Add Stats"); for (Entry entry : attributes.entrySet()) { builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue()); } return builder; } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java index 87ebd7f..06b5891 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java @@ -2,19 +2,18 @@ package me.unurled.sacredrealms.sr.gui.entitytype; import java.util.ArrayList; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.entity.EntityManager; import me.unurled.sacredrealms.sr.components.entity.SREntityType; import me.unurled.sacredrealms.sr.gui.BackItem; import me.unurled.sacredrealms.sr.gui.ForwardItem; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.Markers; import xyz.xenondevs.invui.gui.PagedGui; -import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.SimpleItem; +import xyz.xenondevs.invui.item.ItemBuilder; public class EntityTypeGUI { private EntityTypeGUI() {} @@ -23,10 +22,10 @@ public class EntityTypeGUI { EntityManager em = Manager.getInstance(EntityManager.class); List list = new ArrayList<>(); for (SREntityType type : em.getTypes()) { - SimpleItem simpleItem = new SimpleItem(new ItemBuilder(type.getItem())); + Item simpleItem = Item.simple(new ItemBuilder(type.getItem())); list.add(simpleItem); } - return PagedGui.items() + return PagedGui.itemsBuilder() .setStructure( "# # # # # # # # #", "# X X X X X X X #", @@ -43,9 +42,9 @@ public class EntityTypeGUI { public static @NotNull Gui createGui(SREntityType type) { Item border = - new SimpleItem(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setDisplayName("§r")); + Item.simple(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setCustomName("§r")); - return Gui.normal() + return Gui.builder() .setStructure( "# # # # # # # # #", "# T V O I S N L #", // Type, behaVior, lOot, Item display, Stats, Name, Level diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java index 8d2cb0c..5ae9863 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java @@ -1,20 +1,17 @@ package me.unurled.sacredrealms.sr.gui.entitytype; -import static me.unurled.srcore.utils.Component.comp; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityTypeItem extends AbstractItem { @@ -24,35 +21,21 @@ public class EntityTypeItem extends AbstractItem { this.type = type.getType(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setDisplayName(type.name()); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setCustomName(type.name()); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { player.closeInventory(); player.sendMessage( comp( " entitytype edit " - + event.getView().title() + + player.getOpenInventory().title() + "type")); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java index bfa7c6f..6a6b40d 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java @@ -1,25 +1,26 @@ package me.unurled.sacredrealms.sr.gui.recordings; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.Logger.error; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; public class CutsceneItem extends AbstractItem { @@ -30,11 +31,11 @@ public class CutsceneItem extends AbstractItem { public CutsceneItem(String name, UUID uuid) { this.name = name; this.uuid = uuid; - ID = new NamespacedKey(SR.getPlugin(), "cutscene_id"); + ID = new NamespacedKey(SR.plugin(), "cutscene_id"); } @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack itemStack = new ItemStack(Material.PAPER); ItemMeta itemMeta = itemStack.getItemMeta(); itemMeta.displayName(textComp(name)); @@ -46,26 +47,22 @@ public class CutsceneItem extends AbstractItem { @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { // get uuid - if (event.getCurrentItem() != null) { - String uuid = - event - .getCurrentItem() - .getItemMeta() - .getPersistentDataContainer() - .get(ID, PersistentDataType.STRING); + error( + "Click on CutsceneItem.java: " + + this.uuid + + " by " + + player.getName() + + " it may misfire or fire for the wrong cutscene, I am not sure about the uuid handling here."); + Cutscene cutscene = Manager.getInstance(CutsceneManager.class).findByUUID(this.uuid); - Cutscene cutscene = - Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); - - if (cutscene == null) { - player.sendMessage(textComp("Unexpected error.")); - return; - } - if (clickType.isLeftClick()) { - Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); - } + if (cutscene == null) { + player.sendMessage(textComp("Unexpected error.")); + return; + } + if (clickType.isLeftClick()) { + Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); } } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java index 9d1bc47..d2ee1ed 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java @@ -4,17 +4,17 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane; import java.util.ArrayList; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.gui.BackItem; import me.unurled.sacredrealms.sr.gui.ForwardItem; -import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.Markers; import xyz.xenondevs.invui.gui.PagedGui; -import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.ItemBuilder; public class StartRecordingGui { private StartRecordingGui() {} @@ -28,7 +28,7 @@ public class StartRecordingGui { items.add(item); } - return PagedGui.items() + return PagedGui.itemsBuilder() .setStructure( "# # # # # # # # #", "# X X X X X X X #", diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java index 1e52604..fac0077 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java @@ -4,17 +4,17 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane; import java.util.ArrayList; import java.util.List; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.cutscene.Replay; import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager; import me.unurled.sacredrealms.sr.gui.BackItem; import me.unurled.sacredrealms.sr.gui.ForwardItem; -import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.Markers; import xyz.xenondevs.invui.gui.PagedGui; -import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.ItemBuilder; public class ReplayGui { private ReplayGui() {} @@ -25,7 +25,7 @@ public class ReplayGui { List items = new ArrayList<>(); for (Replay r : rm.replays()) {} - return PagedGui.items() + return PagedGui.itemsBuilder() .setStructure( "# # # # # # # # #", "# X X X X X X X #", diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java index 31a13ed..4fca36a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java @@ -1,25 +1,26 @@ package me.unurled.sacredrealms.sr.gui.replay; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.Logger.error; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.UUID; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; public class ReplayItem extends AbstractItem { private static NamespacedKey ID = null; @@ -27,13 +28,13 @@ public class ReplayItem extends AbstractItem { private final UUID uuid; public ReplayItem(String name, UUID uuid) { - ID = new NamespacedKey(SR.getPlugin(), "cutscene_id"); + ID = new NamespacedKey(SR.plugin(), "cutscene_id"); this.name = name; this.uuid = uuid; } @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack itemStack = new ItemStack(Material.PAPER); ItemMeta itemMeta = itemStack.getItemMeta(); itemMeta.displayName(textComp(name)); @@ -44,29 +45,26 @@ public class ReplayItem extends AbstractItem { @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (event.getCurrentItem() != null) { - String uuid = - event - .getCurrentItem() - .getItemMeta() - .getPersistentDataContainer() - .get(ID, PersistentDataType.STRING); + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { + error( + "Click on CutsceneItem.java: " + + this.uuid + + " by " + + player.getName() + + " it may misfire or fire for the wrong cutscene, I am not sure about the uuid handling here."); - if (uuid == null) { - return; - } + if (uuid == null) { + return; + } - Cutscene cutscene = - Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); + Cutscene cutscene = Manager.getInstance(CutsceneManager.class).findByUUID(this.uuid); - if (cutscene == null) { - player.sendMessage(textComp("Unexpected error.")); - return; - } - if (clickType.isLeftClick()) { - Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); - } + if (cutscene == null) { + player.sendMessage(textComp("Unexpected error.")); + return; + } + if (clickType.isLeftClick()) { + Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); } } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java index ba1f061..a719131 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java @@ -2,44 +2,26 @@ package me.unurled.sacredrealms.sr.gui.treasure; import static me.unurled.sacredrealms.sr.utils.Items.cancelItem; -import me.unurled.sacredrealms.sr.components.treasure.Treasure; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class CancelItem extends AbstractItem { public CancelItem() {} - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { return new ItemBuilder(cancelItem()); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { player.closeInventory(); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java index 12eaf59..ec4f95c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java @@ -1,25 +1,23 @@ package me.unurled.sacredrealms.sr.gui.treasure; -import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.Logger.log; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.util.HashMap; import java.util.Map; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.treasure.Treasure; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class ConfirmItem extends AbstractItem { @@ -29,14 +27,8 @@ public class ConfirmItem extends AbstractItem { this.treasure = treasure; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); ItemMeta confirmMeta = confirm.getItemMeta(); confirmMeta.displayName(textComp("Confirm")); @@ -44,28 +36,16 @@ public class ConfirmItem extends AbstractItem { return new ItemBuilder(confirm); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { Map items = new HashMap<>(); for (int i = 0; i < player.getInventory().getContents().length; i++) { if (i < 9 || i > 35) { log("Skipping slot " + i); continue; } - if (event.getClickedInventory() == null) { - log("Clicked inventory is null"); - continue; - } - ItemStack content = event.getClickedInventory().getItem(i); + ItemStack content = player.getOpenInventory().getItem(i); if (content != null && content.getType() != Material.AIR) { items.put(i, content); log("Added item to items: " + content + " at slot " + i); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java index 5a0fede..0b5b459 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java @@ -1,22 +1,20 @@ package me.unurled.sacredrealms.sr.gui.treasure; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.treasure.Treasure; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; -import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.Click; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class DeleteItem extends AbstractItem { @@ -26,14 +24,8 @@ public class DeleteItem extends AbstractItem { this.treasure = treasure; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE); ItemMeta deleteMeta = delete.getItemMeta(); deleteMeta.displayName(textComp("Delete")); @@ -41,17 +33,9 @@ public class DeleteItem extends AbstractItem { return new ItemBuilder(delete); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { // delete treasure if (!player.hasPermission("sr.treasure.delete")) { return; diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java index 3caa159..17488e1 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java @@ -11,7 +11,6 @@ import xyz.xenondevs.invui.inventory.Inventory; import xyz.xenondevs.invui.inventory.VirtualInventory; import xyz.xenondevs.invui.inventory.event.UpdateReason; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.impl.SimpleItem; public class TreasureGUI { @@ -20,10 +19,10 @@ public class TreasureGUI { @NotNull public static Gui createGui(@NotNull Treasure treasure) { ItemStack itemStack = glassPane(); - Item pane = new SimpleItem(itemStack); + Item pane = Item.simple(itemStack); Inventory inventory = new VirtualInventory(27); - inventory.setPreUpdateHandler( + inventory.addPreUpdateHandler( (itemPreUpdateEvent) -> { if (itemPreUpdateEvent.isAdd() || itemPreUpdateEvent.isRemove() diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/CutsceneUtil.java b/src/main/java/me/unurled/sacredrealms/sr/utils/CutsceneUtil.java index e8aadad..5ad46cb 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/utils/CutsceneUtil.java +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/CutsceneUtil.java @@ -1,14 +1,11 @@ package me.unurled.sacredrealms.sr.utils; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import java.time.Duration; -import java.util.ArrayList; -import java.util.List; import net.kyori.adventure.key.Key; import net.kyori.adventure.title.Title; import net.kyori.adventure.title.Title.Times; -import org.bukkit.Location; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/Items.java b/src/main/java/me/unurled/sacredrealms/sr/utils/Items.java index 1af206e..7e2a757 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/utils/Items.java +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/Items.java @@ -1,14 +1,15 @@ package me.unurled.sacredrealms.sr.utils; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer; -import static me.unurled.srcore.utils.Component.comp; -import static me.unurled.srcore.utils.Component.textComp; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; +import static me.unurled.sacredrealms.sr.utils.component.Component.textComp; import com.google.gson.JsonElement; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.atomic.AtomicReference; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.ItemManager; @@ -16,7 +17,6 @@ import me.unurled.sacredrealms.sr.components.item.ItemStackDeserializer; import me.unurled.sacredrealms.sr.components.item.ItemStackSerializer; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/Logger.java b/src/main/java/me/unurled/sacredrealms/sr/utils/Logger.java index 7fbfc31..2f945f8 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/utils/Logger.java +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/Logger.java @@ -3,6 +3,7 @@ package me.unurled.sacredrealms.sr.utils; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.logger.slf4j.ComponentLogger; +/** The LoggerUtils class is a class that is used to log messages to the console. */ public class Logger { private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("SR"); @@ -10,26 +11,56 @@ public class Logger { private Logger() {} + /** + * Log a message to the console + * + * @param message the message to log + */ public static void log(String message) { logger.info(message); } + /** + * Log a warning to the console + * + * @param message the message to log + */ public static void warn(String message) { logger.warning(message); } + /** + * Log an error to the console + * + * @param message the message to log + */ public static void error(String message) { logger.severe(message); } + /** + * Log a message to the console + * + * @param message the message to log + */ public static void log(Component message) { componentLogger.info(message); } + /** + * Log a warning to the console + * + * @param message the message to log + */ public static void warn(Component message) { componentLogger.warn(message); } + /** + * Log an error to the console + * + * @param message the message to log + */ public static void error(Component message) { componentLogger.error(message); } diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java b/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java index fd327d0..2118cd6 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java @@ -1,14 +1,14 @@ package me.unurled.sacredrealms.sr.utils; -import static me.unurled.srcore.utils.Component.comp; +import static me.unurled.sacredrealms.sr.utils.component.Component.comp; import java.util.List; import java.util.Random; +import me.unurled.sacredrealms.sr.Manager; import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.SRPlayer; -import me.unurled.srcore.api.Manager; import org.bukkit.attribute.AttributeInstance; import org.bukkit.entity.Display; import org.bukkit.entity.Entity; @@ -40,11 +40,9 @@ public class SRPlayerUtils { float value = (float) ((speed + items) / 500.0f); value = Math.min(value, 1.0f); value = Math.max(value, 0f); - AttributeInstance attribute1 = - p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED); + AttributeInstance attribute1 = p.getAttribute(org.bukkit.attribute.Attribute.MOVEMENT_SPEED); if (attribute1 != null) attribute1.setBaseValue(value); - AttributeInstance attribute2 = - p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED); + AttributeInstance attribute2 = p.getAttribute(org.bukkit.attribute.Attribute.FLYING_SPEED); if (attribute2 != null) attribute2.setBaseValue(value); p.setFlySpeed(value); p.setWalkSpeed(value); @@ -57,7 +55,7 @@ public class SRPlayerUtils { // default is 100 so 20 double health = (sr.getAttribute(Attribute.HEALTH) + sr.getTotalItemAttribute(Attribute.HEALTH)) / 5; - AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH); + AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.MAX_HEALTH); if (attribute != null) attribute.setBaseValue(health); p.sendHealthUpdate(); p.updateInventory(); @@ -129,6 +127,6 @@ public class SRPlayerUtils { } height++; } - }.runTaskTimer(SR.getPlugin(), 0, 1); + }.runTaskTimer(SR.plugin(), 0, 1); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/component/Component.java b/src/main/java/me/unurled/sacredrealms/sr/utils/component/Component.java new file mode 100644 index 0000000..70c361a --- /dev/null +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/component/Component.java @@ -0,0 +1,77 @@ +package me.unurled.sacredrealms.sr.utils.component; + +import java.util.List; +import net.kyori.adventure.audience.Audience; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.TranslatableComponent; +import net.kyori.adventure.text.minimessage.MiniMessage; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; + +/** Utility class for working with components. */ +public class Component { + private static MiniMessage miniMessage; + + private Component() {} + + /** + * Converts a string to a MiniMessage component. + * + * @param msg the string to convert + * @return the MiniMessage component + */ + public static net.kyori.adventure.text.@NotNull Component comp(String msg) { + if (miniMessage == null) { + miniMessage = MiniMessage.miniMessage(); + } + return miniMessage.deserialize(msg); + } + + /** + * Converts a string to a TextComponent. + * + * @param msg the string to convert + * @return the TextComponent + */ + public static net.kyori.adventure.text.@NotNull TextComponent textComp(String msg) { + if (miniMessage == null) { + miniMessage = MiniMessage.miniMessage(); + } + return (TextComponent) miniMessage.deserialize(msg); + } + + /** + * Converts a list of strings to a list of MiniMessage components. + * + * @param list the list of strings to convert + * @return the list of MiniMessage components + */ + public static List fromStringList( + @NotNull List list) { + return list.stream().map(Component::comp).toList(); + } + + /** + * Gets an audience for a player. + * + * @param player the player + * @return the audience + */ + @Contract(pure = true) + public static @NotNull Audience audience(Player player) { + return Audience.audience(player); + } + + /** + * Translates using the key and arguments. + * + * @param key the key + * @param args the arguments + * @return the translated string + */ + @Contract(value = "_, _ -> new", pure = true) + public static @NotNull TranslatableComponent translate(String key, TextComponent... args) { + return net.kyori.adventure.text.Component.translatable(key, args); + } +} diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/component/TranslatedComponent.java b/src/main/java/me/unurled/sacredrealms/sr/utils/component/TranslatedComponent.java new file mode 100644 index 0000000..ddddc8d --- /dev/null +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/component/TranslatedComponent.java @@ -0,0 +1,31 @@ +package me.unurled.sacredrealms.sr.utils.component; + +import static me.unurled.sacredrealms.sr.utils.component.Component.translate; + +import net.kyori.adventure.text.TranslatableComponent; + +public enum TranslatedComponent { + ERROR, + NOT_PLAYER, + NO_PERMISSION, + PLAYER_NOT_FOUND; + + TranslatableComponent component; + + TranslatedComponent() {} + + public static void init() { + ERROR.setComponent(translate("error")); + NOT_PLAYER.setComponent(translate("not.player")); + NO_PERMISSION.setComponent(translate("no.permission")); + PLAYER_NOT_FOUND.setComponent(translate("player.not.found")); + } + + private void setComponent(TranslatableComponent component) { + this.component = component; + } + + public TranslatableComponent component() { + return component; + } +} diff --git a/src/main/resources/sr/Bundle_en_US.properties b/src/main/resources/sr/Bundle_en_US.properties new file mode 100644 index 0000000..972c6f8 --- /dev/null +++ b/src/main/resources/sr/Bundle_en_US.properties @@ -0,0 +1,5 @@ +sacred.realms=Sacred Realms: {0} +player.not.found=Player not found. +error=An error occurred while executing this command. Please contact an admin. +no.permission=You do not have permission to use this command. +not.player=You must be a player to use this command. \ No newline at end of file