Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
a3fbcbf32a
fix: switch to 2.0 invui and translation
Some checks failed
Build / build (push) Failing after 56s
Format / formatting (push) Failing after 1m2s
2025-06-25 23:18:12 +02:00
b157836887
fix: switch to 2.0 invui and update of minecraft version
Some checks failed
Format / formatting (push) Failing after 47s
Build / build (push) Failing after 10m31s
2024-12-31 01:30:31 +01:00
90 changed files with 755 additions and 695 deletions

View file

@ -2,12 +2,11 @@ import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
plugins { plugins {
`java-library` `java-library`
id("io.papermc.paperweight.userdev") version "1.7.3" id("io.papermc.paperweight.userdev") version "2.0.0-beta.17"
id("org.sonarqube") version "5.1.0.4882" id("org.sonarqube") version "6.0.1.5171"
id("net.minecrell.plugin-yml.paper") version "0.6.0" id("de.eldoria.plugin-yml.paper") version "0.6.0"
} }
// from 1.20.5+ upward, spigot is not supported
paperweight.reobfArtifactConfiguration = paperweight.reobfArtifactConfiguration =
io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
@ -15,13 +14,14 @@ group = "me.unurled.sacredrealms"
version = "0.1.0" version = "0.1.0"
description = "The main SR plugin." 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 redisVersion = "5.2.0-beta4"
val invuiVersion = "1.36" val invuiVersion = "2.0.0-alpha.14"
val gsonVersion = "2.11.0" 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 { repositories {
mavenCentral() mavenCentral()
@ -33,14 +33,15 @@ repositories {
name = "packetevents" name = "packetevents"
url = uri("https://repo.codemc.io/repository/maven-releases/") url = uri("https://repo.codemc.io/repository/maven-releases/")
} }
maven {
name = "unurled"
url = uri("https://repo.unurled.me/releases")
}
maven { maven {
name = "cubbossa" name = "cubbossa"
url = uri("https://nexus.leonardbausenwein.de/repository/maven-releases/") url = uri("https://nexus.leonardbausenwein.de/repository/maven-releases/")
} }
// ZNPCsPlus
maven {
name = "pyrSnapshots"
url = uri("https://repo.pyr.lol/snapshots")
}
} }
dependencies { dependencies {
@ -52,9 +53,9 @@ dependencies {
paperLibrary("redis.clients", "jedis", redisVersion) 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 { java {

Binary file not shown.

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists 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 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

12
gradlew vendored
View file

@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
# SPDX-License-Identifier: Apache-2.0
#
############################################################################## ##############################################################################
# #
@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop. # Darwin, MinGW, and NonStop.
# #
# (3) This script is generated from the Groovy template # (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. # within the Gradle project.
# #
# You can find Gradle at https://github.com/gradle/gradle/. # You can find Gradle at https://github.com/gradle/gradle/.
@ -84,7 +86,7 @@ done
# shellcheck disable=SC2034 # shellcheck disable=SC2034
APP_BASE_NAME=${0##*/} APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) # 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. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum MAX_FD=maximum
@ -112,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;; NONSTOP* ) nonstop=true ;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
@ -203,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command: # 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. # 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 # * 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. # treated as '${Hostname}' itself on the command line.
@ -211,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \ set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \ "-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \ -classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@" "$@"
# Stop when "xargs" is not available. # Stop when "xargs" is not available.

26
gradlew.bat vendored
View file

@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and @rem See the License for the specific language governing permissions and
@rem limitations under the License. @rem limitations under the License.
@rem @rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off @if "%DEBUG%"=="" @echo off
@rem ########################################################################## @rem ##########################################################################
@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute if %ERRORLEVEL% equ 0 goto execute
echo. echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. echo location of your Java installation. 1>&2
goto fail goto fail
@ -57,22 +59,22 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute if exist "%JAVA_EXE%" goto execute
echo. echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. echo location of your Java installation. 1>&2
goto fail goto fail
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=
@rem Execute Gradle @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 :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell

View file

@ -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 <T> The type of the manager
*/
public static <T extends Manager> T getInstance(@NotNull Class<T> 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 */
}
}

View file

@ -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<Manager> 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<Class<? extends Manager>> clazz) {
int i = 0;
for (Class<? extends Manager> 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<? extends Manager> clazz) {
for (Manager manager : managerList) {
if (manager.getClass().equals(clazz)) {
return manager;
}
}
return null;
}
}

View file

@ -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.animatedjava.AnimatedJavaManager;
import me.unurled.sacredrealms.sr.components.pack.background.BackgroundManager; import me.unurled.sacredrealms.sr.components.pack.background.BackgroundManager;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; 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.components.treasure.TreasureManager;
import me.unurled.sacredrealms.sr.config.ConfigManager; import me.unurled.sacredrealms.sr.config.ConfigManager;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.SRCore;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import xyz.xenondevs.invui.InvUI; import xyz.xenondevs.invui.InvUI;
public final class SR extends JavaPlugin { public final class SR extends JavaPlugin {
private static SR plugin; private static SR plugin;
private Managers managers;
public static SR getPlugin() { public static SR plugin() {
return plugin; return plugin;
} }
@ -43,38 +44,40 @@ public final class SR extends JavaPlugin {
public void onEnable() { public void onEnable() {
plugin = this; plugin = this;
PacketEvents.getAPI().init(); managers = new Managers();
SRCore.getInstance().setPlugin(this); PacketEvents.getAPI().init();
InvUI.getInstance().setPlugin(this); InvUI.getInstance().setPlugin(this);
SRCore.getInstance() managers.register(
.getManagers() List.of(
.register( TranslationManager.class,
List.of( ConfigManager.class,
ConfigManager.class, DataManager.class,
DataManager.class, AnimatedJavaManager.class,
AnimatedJavaManager.class, PlayerManager.class,
PlayerManager.class, CombatManager.class,
CombatManager.class, ItemManager.class,
ItemManager.class, EntityManager.class,
EntityManager.class, NPCManager.class,
NPCManager.class, BlockManager.class,
BlockManager.class, ClientBuildManager.class,
ClientBuildManager.class, TreasureManager.class,
TreasureManager.class, BackgroundManager.class,
BackgroundManager.class, ResourcePackManager.class,
ResourcePackManager.class, CutsceneManager.class,
CutsceneManager.class, RecordingManager.class,
RecordingManager.class, ReplayManager.class));
ReplayManager.class));
} }
@Override @Override
public void onDisable() { public void onDisable() {
SRCore.getInstance().unload(); managers.unload();
PacketEvents.getAPI().terminate(); PacketEvents.getAPI().terminate();
} }
public Managers managers() {
return managers;
}
} }

View file

@ -21,15 +21,11 @@ public class SRLoader implements PluginLoader {
public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) { public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) {
MavenLibraryResolver resolver = new MavenLibraryResolver(); MavenLibraryResolver resolver = new MavenLibraryResolver();
resolver.addDependency( 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( resolver.addRepository(
new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/") new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/")
.build()); .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); classpathBuilder.addLibrary(resolver);
PluginLibraries pluginLibraries = load(); PluginLibraries pluginLibraries = load();

View file

@ -9,6 +9,7 @@ import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager;
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
import java.util.Collection; import java.util.Collection;
import java.util.List; 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.AttributeCommand;
import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand; import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand;
import me.unurled.sacredrealms.sr.commands.admin.EntityTypeCommand; 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.admin.cutscene.StopRecordingCommand;
import me.unurled.sacredrealms.sr.commands.player.DifficultyCommand; import me.unurled.sacredrealms.sr.commands.player.DifficultyCommand;
import me.unurled.sacredrealms.sr.commands.player.ResetAdventureCommand; import me.unurled.sacredrealms.sr.commands.player.ResetAdventureCommand;
import me.unurled.srcore.api.Manager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class CommandManager extends Manager { public class CommandManager extends Manager {

View file

@ -1,7 +1,7 @@
package me.unurled.sacredrealms.sr.commands.admin; 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.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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
@ -9,11 +9,11 @@ import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; 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.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.sacredrealms.sr.gui.attributes.AttributesGUI; import me.unurled.sacredrealms.sr.gui.attributes.AttributesGUI;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -160,7 +160,7 @@ public class AttributeCommand implements BasicCommand {
return; return;
} }
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(p) .setViewer(p)
.setTitle("Attributes") .setTitle("Attributes")
.setGui(AttributesGUI.createGui(target)) .setGui(AttributesGUI.createGui(target))

View file

@ -1,7 +1,5 @@
package me.unurled.sacredrealms.sr.commands.admin; 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 static me.unurled.sacredrealms.sr.utils.Logger.log;
import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.BasicCommand;
@ -12,11 +10,12 @@ import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map.Entry; 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.ClientBuild;
import me.unurled.sacredrealms.sr.components.clientbuild.ClientBuildManager; import me.unurled.sacredrealms.sr.components.clientbuild.ClientBuildManager;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; 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.Location;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
@ -120,7 +119,7 @@ public class ClientBuildCommand implements BasicCommand, Listener {
PlayerManager pm = Manager.getInstance(PlayerManager.class); PlayerManager pm = Manager.getInstance(PlayerManager.class);
SRPlayer sr = pm.getPlayer(p.getUniqueId()); SRPlayer sr = pm.getPlayer(p.getUniqueId());
if (sr == null) { if (sr == null) {
sender.sendMessage(textComp(ERROR)); sender.sendMessage(TranslatedComponent.ERROR.component());
return; return;
} }
sender.sendMessage("Modify the client build and save after you are finished."); 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); PlayerManager pm = Manager.getInstance(PlayerManager.class);
SRPlayer sr = pm.getPlayer(p.getUniqueId()); SRPlayer sr = pm.getPlayer(p.getUniqueId());
if (sr == null) { if (sr == null) {
sender.sendMessage(textComp(ERROR)); sender.sendMessage(TranslatedComponent.ERROR.component());
return; return;
} }
sender.sendMessage( sender.sendMessage(

View file

@ -1,18 +1,17 @@
package me.unurled.sacredrealms.sr.commands.admin; package me.unurled.sacredrealms.sr.commands.admin;
import static me.unurled.srcore.utils.Component.NOT_PLAYER; import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
import static me.unurled.srcore.utils.Component.comp;
import static me.unurled.srcore.utils.Component.textComp;
import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; 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.EntityManager;
import me.unurled.sacredrealms.sr.components.entity.SREntityType; import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import me.unurled.sacredrealms.sr.gui.entitytype.EntityTypeGUI; 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.command.CommandSender;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; 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) { private static void list(@NotNull CommandSender sender, @NotNull String @NotNull [] args) {
if (!(sender instanceof Player p)) { if (!(sender instanceof Player p)) {
sender.sendMessage(comp(NOT_PLAYER)); sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
EntityManager em = Manager.getInstance(EntityManager.class); EntityManager em = Manager.getInstance(EntityManager.class);
@ -33,7 +32,11 @@ public class EntityTypeCommand implements BasicCommand {
} }
Window window = Window window =
Window.single().setViewer(p).setTitle("List").setGui(EntityTypeGUI.listGui()).build(); Window.mergedBuilder()
.setViewer(p)
.setTitle("List")
.setGui(EntityTypeGUI.listGui())
.build();
window.open(); window.open();
} }
@ -43,7 +46,7 @@ public class EntityTypeCommand implements BasicCommand {
return; return;
} }
if (!(sender instanceof Player p)) { if (!(sender instanceof Player p)) {
sender.sendMessage(comp(NOT_PLAYER)); sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
if (args.length < 3) { if (args.length < 3) {
@ -54,7 +57,7 @@ public class EntityTypeCommand implements BasicCommand {
} }
SREntityType type = em.getType(args[1]); SREntityType type = em.getType(args[1]);
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(p) .setViewer(p)
.setTitle(args[1]) .setTitle(args[1])
.setGui(EntityTypeGUI.createGui(type)) .setGui(EntityTypeGUI.createGui(type))
@ -109,7 +112,7 @@ public class EntityTypeCommand implements BasicCommand {
if (sender instanceof Player p) { if (sender instanceof Player p) {
// opens gui // opens gui
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(p) .setViewer(p)
.setTitle(args[1]) .setTitle(args[1])
.setGui(EntityTypeGUI.createGui(type)) .setGui(EntityTypeGUI.createGui(type))

View file

@ -1,13 +1,14 @@
package me.unurled.sacredrealms.sr.commands.admin; 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.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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.Item;
import me.unurled.sacredrealms.sr.components.item.ItemManager; 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.Rarity;
import me.unurled.sacredrealms.sr.components.item.abilities.Ability; import me.unurled.sacredrealms.sr.components.item.abilities.Ability;
import me.unurled.sacredrealms.sr.components.item.enchantments.Enchantment; import me.unurled.sacredrealms.sr.components.item.enchantments.Enchantment;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View file

@ -4,9 +4,9 @@ import io.papermc.paper.command.brigadier.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Collection; import java.util.Collection;
import java.util.List; 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.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View file

@ -1,15 +1,13 @@
package me.unurled.sacredrealms.sr.commands.admin; 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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Collection; import java.util.Collection;
import java.util.List; 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.EntityManager;
import me.unurled.sacredrealms.sr.components.entity.SREntityType; 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.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -57,7 +55,7 @@ public class SpawnEntityCommand implements BasicCommand {
public void execute(@NotNull CommandSourceStack commandSourceStack, @NotNull String[] args) { public void execute(@NotNull CommandSourceStack commandSourceStack, @NotNull String[] args) {
CommandSender sender = commandSourceStack.getSender(); CommandSender sender = commandSourceStack.getSender();
if (!sender.hasPermission("sr.spawn-entity")) { if (!sender.hasPermission("sr.spawn-entity")) {
sender.sendMessage(textComp(NO_PERMISSION)); sender.sendMessage(TranslatedComponent.NO_PERMISSION.component());
return; return;
} }

View file

@ -1,17 +1,17 @@
package me.unurled.sacredrealms.sr.commands.admin; package me.unurled.sacredrealms.sr.commands.admin;
import static me.unurled.srcore.utils.Component.NOT_PLAYER; import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
import static me.unurled.srcore.utils.Component.textComp;
import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Set; 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.Treasure;
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
import me.unurled.sacredrealms.sr.gui.treasure.TreasureGUI; 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 net.kyori.adventure.text.Component;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@ -33,7 +33,7 @@ public class TreasureCommand implements BasicCommand {
private static void delete(@NotNull CommandSender sender, TreasureManager instance) { private static void delete(@NotNull CommandSender sender, TreasureManager instance) {
Block block; Block block;
if (!(sender instanceof Player p)) { if (!(sender instanceof Player p)) {
sender.sendMessage(NOT_PLAYER); sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
block = p.getTargetBlock(TRANSPARENT, 3); block = p.getTargetBlock(TRANSPARENT, 3);
@ -69,7 +69,7 @@ public class TreasureCommand implements BasicCommand {
private static void modify(@NotNull CommandSender sender, TreasureManager instance) { private static void modify(@NotNull CommandSender sender, TreasureManager instance) {
Block block; Block block;
if (!(sender instanceof Player p)) { if (!(sender instanceof Player p)) {
sender.sendMessage(NOT_PLAYER); sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
block = p.getTargetBlock(TRANSPARENT, 3); block = p.getTargetBlock(TRANSPARENT, 3);
@ -82,7 +82,7 @@ public class TreasureCommand implements BasicCommand {
} }
// open the GUI // open the GUI
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(p) .setViewer(p)
.setTitle("Modifiy Treasure Chest") .setTitle("Modifiy Treasure Chest")
.setGui(TreasureGUI.createGui(treasure)) .setGui(TreasureGUI.createGui(treasure))
@ -97,7 +97,7 @@ public class TreasureCommand implements BasicCommand {
@NotNull CommandSender sender, @NotNull String @NotNull [] args, TreasureManager instance) { @NotNull CommandSender sender, @NotNull String @NotNull [] args, TreasureManager instance) {
Block block; Block block;
if (!(sender instanceof Player p)) { if (!(sender instanceof Player p)) {
sender.sendMessage(NOT_PLAYER); sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
block = p.getTargetBlock(TRANSPARENT, 3); block = p.getTargetBlock(TRANSPARENT, 3);

View file

@ -1,15 +1,12 @@
package me.unurled.sacredrealms.sr.commands.admin.cutscene; 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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; 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.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -20,11 +17,11 @@ public class CreateCutsceneCommand implements BasicCommand {
@Override @Override
public void execute(@NotNull CommandSourceStack sender, String[] args) { public void execute(@NotNull CommandSourceStack sender, String[] args) {
if (!(sender.getSender() instanceof Player p)) { if (!(sender.getSender() instanceof Player p)) {
sender.getSender().sendMessage(textComp(NOT_PLAYER)); sender.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
if (!p.hasPermission("sr.cutscene.create")) { if (!p.hasPermission("sr.cutscene.create")) {
p.sendMessage(textComp(NO_PERMISSION)); p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
return; return;
} }
// get the name // get the name

View file

@ -1,15 +1,13 @@
package me.unurled.sacredrealms.sr.commands.admin.cutscene; 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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; 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.Cutscene;
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; 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.Recording;
import me.unurled.srcore.api.Manager; import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -24,7 +22,7 @@ public class RecordCutsceneCommand implements BasicCommand {
} }
if (!p.hasPermission("sr.cutscene.create")) { if (!p.hasPermission("sr.cutscene.create")) {
p.sendMessage(textComp(NO_PERMISSION)); p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
return; return;
} }

View file

@ -1,12 +1,9 @@
package me.unurled.sacredrealms.sr.commands.admin.cutscene; 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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Collection; import java.util.Collection;
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -15,12 +12,12 @@ public class ReplayCommand implements BasicCommand {
@Override @Override
public void execute(@NotNull CommandSourceStack stack, String[] args) { public void execute(@NotNull CommandSourceStack stack, String[] args) {
if (!(stack.getSender() instanceof Player p)) { if (!(stack.getSender() instanceof Player p)) {
stack.getSender().sendMessage(textComp(NOT_PLAYER)); stack.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
if (!p.hasPermission("sr.cutscene.replay")) { if (!p.hasPermission("sr.cutscene.replay")) {
p.sendMessage(textComp(NO_PERMISSION)); p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
} }
// aaa // aaa

View file

@ -1,14 +1,11 @@
package me.unurled.sacredrealms.sr.commands.admin.cutscene; 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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Collection; import java.util.Collection;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; 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.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -17,11 +14,11 @@ public class StopRecordingCommand implements BasicCommand {
@Override @Override
public void execute(@NotNull CommandSourceStack stack, String[] args) { public void execute(@NotNull CommandSourceStack stack, String[] args) {
if (!(stack.getSender() instanceof Player p)) { if (!(stack.getSender() instanceof Player p)) {
stack.getSender().sendMessage(textComp(NOT_PLAYER)); stack.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component());
return; return;
} }
if (!p.hasPermission("sr.cutscene.create")) { if (!p.hasPermission("sr.cutscene.create")) {
p.sendMessage(textComp(NO_PERMISSION)); p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
return; return;
} }

View file

@ -1,20 +1,18 @@
package me.unurled.sacredrealms.sr.commands.player; package me.unurled.sacredrealms.sr.commands.player;
import static me.unurled.srcore.utils.Component.NOT_PLAYER; import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
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 io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.sacredrealms.sr.gui.difficulty.DifficultyGUI; 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.audience.Audience;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -51,11 +49,11 @@ public class DifficultyCommand implements BasicCommand {
private static void playerHandling( private static void playerHandling(
@NotNull CommandSender sender, @NotNull String[] args, @NotNull Player p) { @NotNull CommandSender sender, @NotNull String[] args, @NotNull Player p) {
if (!p.hasPermission(DIFFICULTY_SELF)) { if (!p.hasPermission(DIFFICULTY_SELF)) {
sender.sendMessage(textComp(NO_PERMISSION)); sender.sendMessage(TranslatedComponent.NO_PERMISSION.component());
return; return;
} }
if (args.length >= 1 && !p.hasPermission(DIFFICULTY_MANAGE)) { if (args.length >= 1 && !p.hasPermission(DIFFICULTY_MANAGE)) {
sender.sendMessage(textComp(NO_PERMISSION)); sender.sendMessage(TranslatedComponent.NO_PERMISSION.component());
usage(sender); usage(sender);
return; return;
} }
@ -63,7 +61,7 @@ public class DifficultyCommand implements BasicCommand {
if (args.length == 0) { if (args.length == 0) {
// open gui for sender // open gui for sender
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(p) .setViewer(p)
.setTitle(CHOOSE_DIFFICULTY) .setTitle(CHOOSE_DIFFICULTY)
.setGui(DifficultyGUI.createGui()) .setGui(DifficultyGUI.createGui())
@ -76,11 +74,11 @@ public class DifficultyCommand implements BasicCommand {
// open gui for target player // open gui for target player
Player target = p.getServer().getPlayer(args[0]); Player target = p.getServer().getPlayer(args[0]);
if (target == null) { if (target == null) {
sender.sendMessage(textComp(PLAYER_NOT_FOUND)); sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
return; return;
} }
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(p) .setViewer(p)
.setTitle(CHOOSE_DIFFICULTY) .setTitle(CHOOSE_DIFFICULTY)
.setGui(DifficultyGUI.createGui()) .setGui(DifficultyGUI.createGui())
@ -93,7 +91,7 @@ public class DifficultyCommand implements BasicCommand {
// set difficulty for target player // set difficulty for target player
Player target = p.getServer().getPlayer(args[0]); Player target = p.getServer().getPlayer(args[0]);
if (target == null) { if (target == null) {
sender.sendMessage(textComp(PLAYER_NOT_FOUND)); sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
return; return;
} }
// set difficulty // set difficulty
@ -112,7 +110,7 @@ public class DifficultyCommand implements BasicCommand {
Difficulty difficulty) { Difficulty difficulty) {
SRPlayer sr = pm.getPlayer(target.getUniqueId()); SRPlayer sr = pm.getPlayer(target.getUniqueId());
if (sr == null) { if (sr == null) {
sender.sendMessage(textComp(PLAYER_NOT_FOUND)); sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
return; return;
} }
sr.setDifficulty(difficulty); sr.setDifficulty(difficulty);
@ -127,19 +125,19 @@ public class DifficultyCommand implements BasicCommand {
private static void consoleHandler( private static void consoleHandler(
@NotNull CommandSender sender, @NotNull String @NotNull [] args) { @NotNull CommandSender sender, @NotNull String @NotNull [] args) {
if (args.length == 0) { if (args.length == 0) {
sender.sendMessage(textComp(NOT_PLAYER)); sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
usage(sender); usage(sender);
return; return;
} }
Player target = Bukkit.getPlayer(args[0]); Player target = Bukkit.getPlayer(args[0]);
if (target == null) { if (target == null) {
sender.sendMessage(textComp(PLAYER_NOT_FOUND)); sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
return; return;
} }
if (args.length == 1) { if (args.length == 1) {
Window window = Window window =
Window.single() Window.mergedBuilder()
.setViewer(target) .setViewer(target)
.setTitle(CHOOSE_DIFFICULTY) .setTitle(CHOOSE_DIFFICULTY)
.setGui(DifficultyGUI.createGui()) .setGui(DifficultyGUI.createGui())

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.commands.player; 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.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack; import io.papermc.paper.command.brigadier.CommandSourceStack;
@ -9,10 +9,10 @@ import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -39,7 +39,7 @@ public class ResetAdventureCommand implements BasicCommand {
} }
return; return;
} }
OfflinePlayer player = SR.getPlugin().getServer().getOfflinePlayer(args[0]); OfflinePlayer player = SR.plugin().getServer().getOfflinePlayer(args[0]);
boolean status = resetAdventure(player); boolean status = resetAdventure(player);
if (status) { if (status) {

View file

@ -1,7 +1,7 @@
package me.unurled.sacredrealms.sr.components.block; 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.Logger.error;
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -4,8 +4,8 @@ import static me.unurled.sacredrealms.sr.utils.Items.locationToString;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location; import org.bukkit.Location;
@ -65,9 +65,9 @@ public class BlockManager extends Manager {
public void load() { public void load() {
Bukkit.getScheduler() Bukkit.getScheduler()
.runTask( .runTask(
SR.getPlugin(), SR.plugin(),
() -> { () -> {
for (World world : SR.getPlugin().getServer().getWorlds()) { for (World world : SR.plugin().getServer().getWorlds()) {
if (world == null) { if (world == null) {
continue; continue;
} }

View file

@ -11,11 +11,11 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.UUID; import java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand; import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand;
import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataHandler;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
@ -41,7 +41,7 @@ public class ClientBuildManager extends Manager {
@Override @Override
public void load() { public void load() {
super.load(); super.load();
Bukkit.getPluginManager().registerEvents(new ClientBuildCommand(), SR.getPlugin()); Bukkit.getPluginManager().registerEvents(new ClientBuildCommand(), SR.plugin());
} }
public List<ClientBuild> getBuilds() { public List<ClientBuild> getBuilds() {
@ -83,7 +83,7 @@ public class ClientBuildManager extends Manager {
if (dh == null) { if (dh == null) {
error("Failed to get DataHandler instance, can't load client builds."); error("Failed to get DataHandler instance, can't load client builds.");
error("Retrying in 10 seconds."); error("Retrying in 10 seconds.");
Bukkit.getScheduler().runTaskLaterAsynchronously(SR.getPlugin(), this::loadData, 200L); Bukkit.getScheduler().runTaskLaterAsynchronously(SR.plugin(), this::loadData, 200L);
return; return;
} }
List<String> keys = dh.getKeysAll("sr.clientbuild"); List<String> keys = dh.getKeysAll("sr.clientbuild");
@ -130,7 +130,7 @@ public class ClientBuildManager extends Manager {
} }
Bukkit.getScheduler() Bukkit.getScheduler()
.runTaskAsynchronously( .runTaskAsynchronously(
SR.getPlugin(), SR.plugin(),
() -> { () -> {
for (String name : names) { for (String name : names) {
ClientBuild build = getBuild(name); ClientBuild build = getBuild(name);

View file

@ -1,14 +1,15 @@
package me.unurled.sacredrealms.sr.components.combat; 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.spawnIndicator;
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; 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.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Random; import java.util.Random;
import java.util.UUID; import java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.entity.EntityManager; import me.unurled.sacredrealms.sr.components.entity.EntityManager;
import me.unurled.sacredrealms.sr.components.entity.SREntity; 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.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.sacredrealms.sr.utils.Items; import me.unurled.sacredrealms.sr.utils.Items;
import me.unurled.srcore.api.Manager;
import org.bukkit.Particle; import org.bukkit.Particle;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;

View file

@ -1,11 +1,11 @@
package me.unurled.sacredrealms.sr.components.cutscene; 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 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.Region;
import me.unurled.sacredrealms.sr.utils.RegionUtil; import me.unurled.sacredrealms.sr.utils.RegionUtil;
import me.unurled.srcore.api.Manager;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View file

@ -1,16 +1,16 @@
package me.unurled.sacredrealms.sr.components.cutscene; package me.unurled.sacredrealms.sr.components.cutscene;
import static me.unurled.sacredrealms.sr.utils.Items.cancelItem; 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.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker; import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker;
import me.unurled.srcore.api.Manager;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -32,10 +32,7 @@ public class CutsceneManager extends Manager {
@Override @Override
public void load() { public void load() {
super.load(); super.load();
SR.getPlugin() SR.plugin().getServer().getPluginManager().registerEvents(new CreationListener(), SR.plugin());
.getServer()
.getPluginManager()
.registerEvents(new CreationListener(), SR.getPlugin());
TickTracker.startTracking(); TickTracker.startTracking();
cutscenes = new ArrayList<>(); cutscenes = new ArrayList<>();
cutsceneBeingCreated = new HashMap<>(); cutsceneBeingCreated = new HashMap<>();

View file

@ -1,13 +1,13 @@
package me.unurled.sacredrealms.sr.components.cutscene; 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.ArrayList;
import java.util.List; 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.Recordable;
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker; import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker;
import me.unurled.srcore.api.Manager;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View file

@ -21,8 +21,7 @@ public class Replay {
// TODO: control cutscene replay // TODO: control cutscene replay
replayTask = replayTask =
Bukkit.getScheduler() Bukkit.getScheduler().runTaskTimerAsynchronously(SR.plugin(), new ReplayTask(this), 0L, 1L);
.runTaskTimerAsynchronously(SR.getPlugin(), new ReplayTask(this), 0L, 1L);
} }
public Player viewer() { public Player viewer() {

View file

@ -2,8 +2,8 @@ package me.unurled.sacredrealms.sr.components.cutscene;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
import me.unurled.srcore.api.Manager;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View file

@ -37,9 +37,9 @@ public class Recording {
this.endTick = 1; // TODO: get tick this.endTick = 1; // TODO: get tick
this.scanEntitiesTask = this.scanEntitiesTask =
Bukkit.getScheduler().runTaskTimer(SR.getPlugin(), new ScanEntityTracker(this), 0L, 20L); Bukkit.getScheduler().runTaskTimer(SR.plugin(), new ScanEntityTracker(this), 0L, 20L);
this.trackLocationTask = this.trackLocationTask =
Bukkit.getScheduler().runTaskTimer(SR.getPlugin(), new TrackLocationTask(this), 0L, 1L); Bukkit.getScheduler().runTaskTimer(SR.plugin(), new TrackLocationTask(this), 0L, 1L);
} }
public Map<Long, List<Recordable>> recordables() { public Map<Long, List<Recordable>> recordables() {

View file

@ -1,12 +1,12 @@
package me.unurled.sacredrealms.sr.components.cutscene.tasks; package me.unurled.sacredrealms.sr.components.cutscene.tasks;
import static me.unurled.sacredrealms.sr.utils.Logger.error; 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 me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.cutscene.Replay; import me.unurled.sacredrealms.sr.components.cutscene.Replay;
import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager; import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager;
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable; import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable;
import me.unurled.srcore.api.Manager;
public class ReplayTask implements Runnable { public class ReplayTask implements Runnable {

View file

@ -2,11 +2,11 @@ package me.unurled.sacredrealms.sr.components.cutscene.tasks;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.Cutscene;
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; 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.Recording;
import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.SpawnEntityRecordable; import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.SpawnEntityRecordable;
import me.unurled.srcore.api.Manager;
import org.bukkit.Chunk; import org.bukkit.Chunk;
import org.bukkit.Location; import org.bukkit.Location;

View file

@ -7,7 +7,7 @@ public class TickTracker {
private static long currentTick = 0; private static long currentTick = 0;
public static void startTracking() { public static void startTracking() {
Bukkit.getScheduler().scheduleSyncRepeatingTask(SR.getPlugin(), () -> currentTick++, 0L, 1L); Bukkit.getScheduler().scheduleSyncRepeatingTask(SR.plugin(), () -> currentTick++, 0L, 1L);
} }
public static long currentTick() { public static long currentTick() {

View file

@ -1,10 +1,10 @@
package me.unurled.sacredrealms.sr.components.cutscene.tasks; 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.RecordingManager;
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording; 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.DespawnEntityRecordable;
import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.LocationChangeRecordable; import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.LocationChangeRecordable;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.components.difficulty; 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.TextComponent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View file

@ -8,13 +8,13 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.item.ItemStackDeserializer; import me.unurled.sacredrealms.sr.components.item.ItemStackDeserializer;
import me.unurled.sacredrealms.sr.components.item.ItemStackSerializer; import me.unurled.sacredrealms.sr.components.item.ItemStackSerializer;
import me.unurled.sacredrealms.sr.components.player.PotionEffectDeserializer; import me.unurled.sacredrealms.sr.components.player.PotionEffectDeserializer;
import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataHandler;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.components.entity; 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 java.util.UUID;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;

View file

@ -1,8 +1,8 @@
package me.unurled.sacredrealms.sr.components.item; 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.Items.lore;
import static me.unurled.sacredrealms.sr.utils.Logger.error; 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.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;

View file

@ -6,9 +6,9 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataHandler;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;

View file

@ -1,13 +1,14 @@
package me.unurled.sacredrealms.sr.components.npc; package me.unurled.sacredrealms.sr.components.npc;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.UUID; 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.SR;
import me.unurled.sacredrealms.sr.utils.ChunkWrapper; import me.unurled.sacredrealms.sr.utils.ChunkWrapper;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.event.world.ChunkLoadEvent;
@ -17,6 +18,19 @@ public class NPCManager extends Manager {
private final Map<ChunkWrapper, HashSet<NPCEntity>> npcPerChunk = new HashMap<>(); private final Map<ChunkWrapper, HashSet<NPCEntity>> npcPerChunk = new HashMap<>();
public Map<UUID, NPCEntity> npcs = new HashMap<>(); public Map<UUID, NPCEntity> 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) { public void register(@NotNull NPCEntity entity) {
// TODO: Register the entity // TODO: Register the entity
@ -41,7 +55,7 @@ public class NPCManager extends Manager {
} }
public void addEntity(NPCEntity entity) { public void addEntity(NPCEntity entity) {
// npcs.put(entity.getEntity().getUniqueId(), entity); // npcs.put(entity.getEntity().getUniqueId(), entity);
} }
@EventHandler @EventHandler
@ -52,7 +66,7 @@ public class NPCManager extends Manager {
} }
Bukkit.getScheduler() Bukkit.getScheduler()
.scheduleSyncDelayedTask( .scheduleSyncDelayedTask(
SR.getPlugin(), SR.plugin(),
() -> { () -> {
HashSet<NPCEntity> npc = npcPerChunk.get(cw); HashSet<NPCEntity> npc = npcPerChunk.get(cw);
for (NPCEntity entity : npc) { for (NPCEntity entity : npc) {

View file

@ -12,13 +12,13 @@ import java.io.IOException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.UUID; import java.util.UUID;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.pack.hosts.HostingProvider; import me.unurled.sacredrealms.sr.components.pack.hosts.HostingProvider;
import me.unurled.sacredrealms.sr.components.pack.hosts.RustProvider; import me.unurled.sacredrealms.sr.components.pack.hosts.RustProvider;
import me.unurled.sacredrealms.sr.config.Settings; import me.unurled.sacredrealms.sr.config.Settings;
import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataHandler;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -36,18 +36,17 @@ public class ResourcePackManager extends Manager {
@NotNull @NotNull
private static File packFile(String fileName) { private static File packFile(String fileName) {
try { try {
new File(SR.getPlugin().getDataFolder(), "pack").mkdirs(); new File(SR.plugin().getDataFolder(), "pack").mkdirs();
String[] filesInclude = {"assets", "pack.mcmeta"}; String[] filesInclude = {"assets", "pack.mcmeta"};
FileOutputStream fos = FileOutputStream fos = new FileOutputStream(new File(SR.plugin().getDataFolder(), fileName));
new FileOutputStream(new File(SR.getPlugin().getDataFolder(), fileName));
ZipOutputStream zipOut = new ZipOutputStream(fos); ZipOutputStream zipOut = new ZipOutputStream(fos);
zipOut.setLevel(9); zipOut.setLevel(9);
for (String filePath : filesInclude) { 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()) { if (fileToZip.isDirectory()) {
zipDirectory(fileToZip, fileToZip.getName(), zipOut); zipDirectory(fileToZip, fileToZip.getName(), zipOut);
} else { } else {
@ -60,7 +59,7 @@ public class ResourcePackManager extends Manager {
} catch (IOException e) { } catch (IOException e) {
error("Failed to create resource pack"); error("Failed to create resource pack");
} }
return new File(SR.getPlugin().getDataFolder(), fileName); return new File(SR.plugin().getDataFolder(), fileName);
} }
/** Save the data */ /** Save the data */
@ -100,7 +99,7 @@ public class ResourcePackManager extends Manager {
public void uploadAsync(final File file) { public void uploadAsync(final File file) {
Bukkit.getScheduler() Bukkit.getScheduler()
.runTaskAsynchronously( .runTaskAsynchronously(
SR.getPlugin(), SR.plugin(),
() -> { () -> {
// start the call // start the call
boolean success; boolean success;
@ -120,13 +119,13 @@ public class ResourcePackManager extends Manager {
@Override @Override
public void load() { public void load() {
super.load(); super.load();
String zipPath = SR.getPlugin().getDataFolder() + "/" + RESOURCE_PACK_ZIP; String zipPath = SR.plugin().getDataFolder() + "/" + RESOURCE_PACK_ZIP;
Bukkit.getScheduler() Bukkit.getScheduler()
.runTaskAsynchronously( .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()) { && new File(zipPath).exists()) {
log("Resource pack exists"); log("Resource pack exists");
// create a new zip with files // create a new zip with files

View file

@ -1,5 +1,5 @@
package me.unurled.sacredrealms.sr.components.pack.animatedjava; 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 {} public class AnimatedJavaManager extends Manager {}

View file

@ -5,10 +5,10 @@ import static me.unurled.sacredrealms.sr.utils.Logger.warn;
import java.io.File; import java.io.File;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.utils.character.CharacterArranger; import me.unurled.sacredrealms.sr.utils.character.CharacterArranger;
import me.unurled.sacredrealms.sr.utils.character.ConfiguredChar; import me.unurled.sacredrealms.sr.utils.character.ConfiguredChar;
import me.unurled.srcore.api.Manager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class BackgroundManager extends Manager { public class BackgroundManager extends Manager {
@ -21,7 +21,7 @@ public class BackgroundManager extends Manager {
@Override @Override
public void loadData() { public void loadData() {
File bgFolder = new File(SR.getPlugin().getDataFolder(), "backgrounds"); File bgFolder = new File(SR.plugin().getDataFolder(), "backgrounds");
if (!bgFolder.exists() && bgFolder.mkdirs()) { if (!bgFolder.exists() && bgFolder.mkdirs()) {
saveDefaultBackgrounds(); saveDefaultBackgrounds();
} }
@ -133,7 +133,7 @@ public class BackgroundManager extends Manager {
private void saveDefaultBackgrounds() { private void saveDefaultBackgrounds() {
String[] bgList = new String[] {"b0", "b1", "b2", "b4", "b8", "b16", "b32", "b64", "b128"}; String[] bgList = new String[] {"b0", "b1", "b2", "b4", "b8", "b16", "b32", "b64", "b128"};
for (String bg : bgList) { for (String bg : bgList) {
SR.getPlugin().saveResource("backgrounds" + File.separator + bg + ".png", false); SR.plugin().saveResource("backgrounds" + File.separator + bg + ".png", false);
} }
} }
} }

View file

@ -2,7 +2,7 @@ package me.unurled.sacredrealms.sr.components.packet;
import com.github.retrooper.packetevents.PacketEvents; import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.wrapper.PacketWrapper; import com.github.retrooper.packetevents.wrapper.PacketWrapper;
import me.unurled.srcore.api.Manager; import me.unurled.sacredrealms.sr.Manager;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class PacketManager extends Manager { public class PacketManager extends Manager {

View file

@ -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.error;
import static me.unurled.sacredrealms.sr.utils.Logger.log; import static me.unurled.sacredrealms.sr.utils.Logger.log;
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; 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.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -11,13 +11,13 @@ import com.google.gson.GsonBuilder;
import java.net.URI; import java.net.URI;
import java.util.HashMap; import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.pack.ResourcePackManager; import me.unurled.sacredrealms.sr.components.pack.ResourcePackManager;
import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataHandler;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.sacredrealms.sr.events.player.PlayerLevelUpEvent; import me.unurled.sacredrealms.sr.events.player.PlayerLevelUpEvent;
import me.unurled.sacredrealms.sr.utils.Items; import me.unurled.sacredrealms.sr.utils.Items;
import me.unurled.srcore.api.Manager;
import net.kyori.adventure.resource.ResourcePackInfo; import net.kyori.adventure.resource.ResourcePackInfo;
import net.kyori.adventure.resource.ResourcePackRequest; import net.kyori.adventure.resource.ResourcePackRequest;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -139,8 +139,7 @@ public class PlayerManager extends Manager {
// TODO: does not update when player health has changed for example // TODO: does not update when player health has changed for example
BukkitTask task = BukkitTask task =
Bukkit.getScheduler() Bukkit.getScheduler()
.runTaskTimerAsynchronously( .runTaskTimerAsynchronously(SR.plugin(), () -> updateActionBar(e.getPlayer()), 0, 20L);
SR.getPlugin(), () -> updateActionBar(e.getPlayer()), 0, 20L);
actionBarTasks.put(e.getPlayer().getUniqueId(), task); actionBarTasks.put(e.getPlayer().getUniqueId(), task);
e.getPlayer().updateInventory(); e.getPlayer().updateInventory();
@ -259,7 +258,7 @@ public class PlayerManager extends Manager {
public void levelUp(SRPlayer p, int previousLevel) { public void levelUp(SRPlayer p, int previousLevel) {
PlayerLevelUpEvent event = new PlayerLevelUpEvent(p, 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()); Player player = Bukkit.getPlayer(p.getUuid());
if (player != null) { if (player != null) {
player.sendMessage(event.getMessage()); player.sendMessage(event.getMessage());

View file

@ -10,11 +10,11 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.Item;
import me.unurled.sacredrealms.sr.events.player.PlayerKillEvent; import me.unurled.sacredrealms.sr.events.player.PlayerKillEvent;
import me.unurled.srcore.api.Manager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;

View file

@ -1,8 +1,8 @@
package me.unurled.sacredrealms.sr.components.player.listener; 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.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View file

@ -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);
}
}

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.components.treasure; 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.HashMap;
import java.util.Map; import java.util.Map;

View file

@ -7,12 +7,12 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random; import java.util.Random;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.Item;
import me.unurled.sacredrealms.sr.components.item.ItemManager; import me.unurled.sacredrealms.sr.components.item.ItemManager;
import me.unurled.sacredrealms.sr.components.item.Rarity; import me.unurled.sacredrealms.sr.components.item.Rarity;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View file

@ -1,8 +1,8 @@
package me.unurled.sacredrealms.sr.components.treasure; 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.error;
import static me.unurled.sacredrealms.sr.utils.Logger.log; 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.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
@ -13,11 +13,11 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import javax.annotation.Nullable; 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.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.sacredrealms.sr.data.DataHandler; import me.unurled.sacredrealms.sr.data.DataHandler;
import me.unurled.sacredrealms.sr.data.DataManager; import me.unurled.sacredrealms.sr.data.DataManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Chunk; import org.bukkit.Chunk;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;

View file

@ -1,8 +1,8 @@
package me.unurled.sacredrealms.sr.config; package me.unurled.sacredrealms.sr.config;
import java.io.File; import java.io.File;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.srcore.api.Manager;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@ -14,12 +14,12 @@ public class ConfigManager extends Manager {
/** Load the data */ /** Load the data */
@Override @Override
public void loadData() { public void loadData() {
if (!SR.getPlugin().getDataFolder().exists()) { if (!SR.plugin().getDataFolder().exists()) {
SR.getPlugin().getDataFolder().mkdirs(); 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()) { if (!configFile.exists()) {
SR.getPlugin().saveResource(CONFIG_YML, false); SR.plugin().saveResource(CONFIG_YML, false);
config = YamlConfiguration.loadConfiguration(configFile); config = YamlConfiguration.loadConfiguration(configFile);
} }
config = YamlConfiguration.loadConfiguration(configFile); config = YamlConfiguration.loadConfiguration(configFile);
@ -27,10 +27,10 @@ public class ConfigManager extends Manager {
@Override @Override
public void saveData() { public void saveData() {
if (!new File(SR.getPlugin().getDataFolder() + CONFIG_YML).exists()) { if (!new File(SR.plugin().getDataFolder() + CONFIG_YML).exists()) {
SR.getPlugin().saveDefaultConfig(); SR.plugin().saveDefaultConfig();
} else { } else {
SR.getPlugin().saveConfig(); SR.plugin().saveConfig();
} }
} }

View file

@ -4,8 +4,8 @@ import static me.unurled.sacredrealms.sr.utils.Logger.error;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.srcore.api.Manager;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -37,9 +37,9 @@ public enum Settings {
} }
public void setValue(Object value) { public void setValue(Object value) {
SR.getPlugin().getConfig().set(path, value); SR.plugin().getConfig().set(path, value);
try { 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) { } catch (Exception e) {
error("Failed to save config.yml"); error("Failed to save config.yml");
} }

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.data; package me.unurled.sacredrealms.sr.data;
import me.unurled.srcore.api.Manager; import me.unurled.sacredrealms.sr.Manager;
/** The data and config manager */ /** The data and config manager */
public class DataManager extends Manager { public class DataManager extends Manager {

View file

@ -3,10 +3,10 @@ package me.unurled.sacredrealms.sr.data;
import static me.unurled.sacredrealms.sr.utils.Logger.error; import static me.unurled.sacredrealms.sr.utils.Logger.error;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.config.ConfigManager; import me.unurled.sacredrealms.sr.config.ConfigManager;
import me.unurled.sacredrealms.sr.config.Settings; import me.unurled.sacredrealms.sr.config.Settings;
import me.unurled.srcore.api.Manager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import redis.clients.jedis.JedisPooled; import redis.clients.jedis.JedisPooled;
@ -21,7 +21,7 @@ public class Redis implements DataHandler {
Integer port = Settings.REDIS_PORT.toInt(); Integer port = Settings.REDIS_PORT.toInt();
if (host == null || port == null) { if (host == null || port == null) {
error("Failed to get Redis host or port from config, shutting down server."); error("Failed to get Redis host or port from config, shutting down server.");
SR.getPlugin().getServer().shutdown(); SR.plugin().getServer().shutdown();
return; return;
} }
try { try {
@ -29,11 +29,11 @@ public class Redis implements DataHandler {
client.get("test"); client.get("test");
} catch (Exception e) { } catch (Exception e) {
error("Failed to connect to Redis, shutting down server."); error("Failed to connect to Redis, shutting down server.");
SR.getPlugin().getServer().shutdown(); SR.plugin().getServer().shutdown();
} }
} else { } else {
error("Failed to get DataManager instance. Can't connect to Redis, shutting down server."); error("Failed to get DataManager instance. Can't connect to Redis, shutting down server.");
SR.getPlugin().getServer().shutdown(); SR.plugin().getServer().shutdown();
} }
} }

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.events.player; 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 me.unurled.sacredrealms.sr.components.player.SRPlayer;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;

View file

@ -1,26 +1,34 @@
package me.unurled.sacredrealms.sr.gui; package me.unurled.sacredrealms.sr.gui;
import org.bukkit.Material; 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.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() { public BackItem() {}
super(false);
}
@Override @Override
public ItemProvider getItemProvider(PagedGui<?> gui) { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
builder builder
.setDisplayName("§cPrevious Page") .setCustomName("§cPrevious Page")
.addLoreLines( .addLoreLines(
gui.hasPreviousPage() this.getGui().getPage() > 1
? "§7Go to page §e" + gui.getCurrentPage() + "§7/§e" + gui.getPageAmount() ? "§7Go to page §e"
+ this.getGui().getPage()
+ "§7/§e"
+ this.getGui().getPageCount()
: "§cYou can't go further back"); : "§cYou can't go further back");
return builder; return builder;
} }
@Override
public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {}
} }

View file

@ -1,27 +1,37 @@
package me.unurled.sacredrealms.sr.gui; package me.unurled.sacredrealms.sr.gui;
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
import org.bukkit.Material; 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.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() { public ForwardItem() {}
super(true);
}
@Override @Override
public ItemProvider getItemProvider(PagedGui<?> gui) { public @NotNull ItemProvider getItemProvider(@NotNull Player player) {
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE); ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
builder builder
.setDisplayName("§7Next page") .setCustomName(comp("<gray>Next page"))
.addLoreLines( .addLoreLines(
gui.hasNextPage() this.getGui().getPage() + 1 < this.getGui().getPageCount()
? "§7Go to page §e" + (gui.getCurrentPage() + 2) + "§7/§e" + gui.getPageAmount() ? comp(
: "§cThere are no more pages"); "<gray>Go to page §e"
+ (this.getGui().getPage() + 2)
+ "§7/§e"
+ this.getGui().getPageCount())
: comp("<red>There are no more pages"));
return builder; return builder;
} }
@Override
public void handleClick(ClickType clickType, Player player, Click click) {}
} }

View file

@ -1,24 +1,20 @@
package me.unurled.sacredrealms.sr.gui.attributes; 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.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.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.xenondevs.inventoryaccess.component.AdventureComponentWrapper; import xyz.xenondevs.invui.Click;
import xyz.xenondevs.invui.item.Item; import xyz.xenondevs.invui.item.AbstractItem;
import xyz.xenondevs.invui.item.ItemBuilder;
import xyz.xenondevs.invui.item.ItemProvider; 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 { public class AttributeItem extends AbstractItem {
@ -31,15 +27,8 @@ public class AttributeItem extends AbstractItem {
this.targetPlayer = target; 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
double value = 0; double value = 0;
if (targetPlayer != null) { if (targetPlayer != null) {
@ -50,38 +39,27 @@ public class AttributeItem extends AbstractItem {
ItemBuilder ip = ItemBuilder ip =
switch (attribute) { switch (attribute) {
case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setDisplayName("Strength " + value); case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setCustomName("Strength " + value);
case AGILITY -> new ItemBuilder(Material.BOW).setDisplayName("Agility " + value); case AGILITY -> new ItemBuilder(Material.BOW).setCustomName("Agility " + value);
case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setDisplayName("Mana " + value); case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setCustomName("Mana " + value);
case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setDisplayName("Health " + value); case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setCustomName("Health " + value);
case LUCK -> case LUCK ->
new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setDisplayName("Luck " + value); new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setCustomName("Luck " + value);
case DEFENSE -> new ItemBuilder(Material.SHIELD).setDisplayName("Defense " + value); case DEFENSE -> new ItemBuilder(Material.SHIELD).setCustomName("Defense " + value);
case CHARISMA -> case CHARISMA -> new ItemBuilder(Material.PLAYER_HEAD).setCustomName("Charisma " + value);
new ItemBuilder(Material.PLAYER_HEAD).setDisplayName("Charisma " + value);
}; };
ip.addLoreLines(new AdventureComponentWrapper(comp("<green><b>+1</b> Left Click to increase"))); ip.addLoreLines(comp("<green><b>+1</b> Left Click to increase"));
ip.addLoreLines(new AdventureComponentWrapper(comp("<red><b>-1</b> Right Click to decrease"))); ip.addLoreLines(comp("<red><b>-1</b> Right Click to decrease"));
ip.addLoreLines( ip.addLoreLines(comp("<gray>Shift + Left Click to increase by 10"));
new AdventureComponentWrapper(comp("<gray>Shift + Left Click to increase by 10"))); ip.addLoreLines(comp("<gray>Shift + Right Click to decrease by 10"));
ip.addLoreLines(
new AdventureComponentWrapper(comp("<gray>Shift + Right Click to decrease by 10")));
return ip; 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 @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
if (targetPlayer != null) { if (targetPlayer != null) {
PlayerManager playerManager = Manager.getInstance(PlayerManager.class); PlayerManager playerManager = Manager.getInstance(PlayerManager.class);

View file

@ -1,6 +1,6 @@
package me.unurled.sacredrealms.sr.gui.attributes; 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 me.unurled.sacredrealms.sr.components.attributes.Attribute;
import org.bukkit.Material; import org.bukkit.Material;
@ -8,9 +8,8 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.inventory.meta.SkullMeta;
import xyz.xenondevs.invui.gui.Gui; 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.Item;
import xyz.xenondevs.invui.item.impl.SimpleItem;
public class AttributesGUI { public class AttributesGUI {
@ -20,9 +19,9 @@ public class AttributesGUI {
tMeta.setOwningPlayer(target); tMeta.setOwningPlayer(target);
tMeta.displayName(comp(target.getName())); tMeta.displayName(comp(target.getName()));
t.setItemMeta(tMeta); t.setItemMeta(tMeta);
Item head = new SimpleItem(t); Item head = Item.simple(t);
Normal gui = Builder<?, ?> gui =
Gui.normal() Gui.builder()
.setStructure(".........", "....h....", ".........", ".0123456.") .setStructure(".........", "....h....", ".........", ".0123456.")
.addIngredient('h', head); .addIngredient('h', head);
for (int i = 0; i < Attribute.values().length; i++) { for (int i = 0; i < Attribute.values().length; i++) {

View file

@ -6,16 +6,15 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.xenondevs.invui.gui.Gui; 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.Item;
import xyz.xenondevs.invui.item.impl.SimpleItem;
public class DifficultyGUI { public class DifficultyGUI {
public static @NotNull Gui createGui() { public static @NotNull Gui createGui() {
Item cancel = new SimpleItem(cancelItem()); Item cancel = Item.simple(cancelItem());
Item glass = new SimpleItem(glassPane()); Item glass = Item.simple(glassPane());
Normal gui = Builder<?, ?> gui =
Gui.normal() Gui.builder()
.setStructure(".........", "..1.2.3..", "....4....", "....5....") .setStructure(".........", "..1.2.3..", "....4....", "....5....")
.addIngredient('5', cancel) .addIngredient('5', cancel)
.addIngredient('.', glass) .addIngredient('.', glass)

View file

@ -1,20 +1,17 @@
package me.unurled.sacredrealms.sr.gui.difficulty; 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.difficulty.Difficulty;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class DifficultyItem extends AbstractItem {
@ -24,18 +21,12 @@ public class DifficultyItem extends AbstractItem {
this.difficulty = difficulty; 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return switch (difficulty) { return switch (difficulty) {
case EASY -> case EASY ->
new ItemBuilder(Material.BREAD) new ItemBuilder(Material.BREAD)
.setDisplayName("Easy") .setCustomName("Easy")
.addLoreLines( .addLoreLines(
"Is you are a new player or", "Is you are a new player or",
"someone who just want to", "someone who just want to",
@ -44,7 +35,7 @@ public class DifficultyItem extends AbstractItem {
"Click Here!"); "Click Here!");
case NORMAL -> case NORMAL ->
new ItemBuilder(Material.GRASS_BLOCK) new ItemBuilder(Material.GRASS_BLOCK)
.setDisplayName("Normal") .setCustomName("Normal")
.addLoreLines( .addLoreLines(
"Is you are a regular player", "Is you are a regular player",
"who want to enjoy the game", "who want to enjoy the game",
@ -53,7 +44,7 @@ public class DifficultyItem extends AbstractItem {
"Click Here!"); "Click Here!");
case HARD -> case HARD ->
new ItemBuilder(Material.DIAMOND_SWORD) new ItemBuilder(Material.DIAMOND_SWORD)
.setDisplayName("Hard") .setCustomName("Hard")
.addLoreLines( .addLoreLines(
"Is you are a hardcore player", "Is you are a hardcore player",
"who want to enjoy the game", "who want to enjoy the game",
@ -62,7 +53,7 @@ public class DifficultyItem extends AbstractItem {
"Click Here!"); "Click Here!");
case INSANE -> case INSANE ->
new ItemBuilder(Material.NETHERITE_SWORD) new ItemBuilder(Material.NETHERITE_SWORD)
.setDisplayName("Insane") .setCustomName("Insane")
.addLoreLines( .addLoreLines(
"Is you are a pro player", "Is you are a pro player",
"who want to enjoy the game", "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 @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
// Set the player's difficulty
PlayerManager pm = Manager.getInstance(PlayerManager.class); PlayerManager pm = Manager.getInstance(PlayerManager.class);
if (pm.isSRPlayer(player.getUniqueId())) { if (pm.isSRPlayer(player.getUniqueId())) {
SRPlayer sr = pm.getPlayer(player.getUniqueId()); SRPlayer sr = pm.getPlayer(player.getUniqueId());

View file

@ -8,14 +8,12 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(stack); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityBehaviorItem extends AbstractItem {
@ -21,28 +18,14 @@ public class EntityBehaviorItem extends AbstractItem {
// behavior = type.getBehavior(); // 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.NETHERITE_SWORD).setDisplayName("Behavior: " + behavior); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityExpItem extends AbstractItem {
private final Long exp; private final Long exp;
public EntityExpItem(SREntityType type) { public EntityExpItem(@NotNull SREntityType type) {
exp = type.getExperience(); 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setDisplayName("Experience: " + exp); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityItemDisplay extends AbstractItem {
@ -21,28 +18,14 @@ public class EntityItemDisplay extends AbstractItem {
name = type.getItem().getType().name(); 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setDisplayName("Item Display: " + name); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityLevelItem extends AbstractItem {
private final int level; private final int level;
public EntityLevelItem(SREntityType type) { public EntityLevelItem(@NotNull SREntityType type) {
level = type.getLevel(); 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.DIAMOND).setDisplayName("Level: " + level); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -3,39 +3,22 @@ package me.unurled.sacredrealms.sr.gui.entitytype;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.SKELETON_SKULL).setDisplayName("Death Loot"); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityNameItem extends AbstractItem {
private final String name; private final String name;
public EntityNameItem(SREntityType type) { public EntityNameItem(@NotNull SREntityType type) {
name = type.getName(); 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.NAME_TAG).setDisplayName(name); 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -7,14 +7,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityStatsItem extends AbstractItem {
@ -24,32 +21,18 @@ public class EntityStatsItem extends AbstractItem {
attributes = type.getAttributes(); 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
ItemBuilder builder = new ItemBuilder(Material.APPLE).setDisplayName("Add Stats"); ItemBuilder builder = new ItemBuilder(Material.APPLE).setCustomName("Add Stats");
for (Entry<Attribute, Double> entry : attributes.entrySet()) { for (Entry<Attribute, Double> entry : attributes.entrySet()) {
builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue()); builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue());
} }
return builder; 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 @Override
public void handleClick( 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 */ /* TODO need to implements this */
} }
} }

View file

@ -2,19 +2,18 @@ package me.unurled.sacredrealms.sr.gui.entitytype;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.EntityManager;
import me.unurled.sacredrealms.sr.components.entity.SREntityType; import me.unurled.sacredrealms.sr.components.entity.SREntityType;
import me.unurled.sacredrealms.sr.gui.BackItem; import me.unurled.sacredrealms.sr.gui.BackItem;
import me.unurled.sacredrealms.sr.gui.ForwardItem; import me.unurled.sacredrealms.sr.gui.ForwardItem;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.xenondevs.invui.gui.Gui; import xyz.xenondevs.invui.gui.Gui;
import xyz.xenondevs.invui.gui.Markers;
import xyz.xenondevs.invui.gui.PagedGui; import xyz.xenondevs.invui.gui.PagedGui;
import xyz.xenondevs.invui.gui.structure.Markers;
import xyz.xenondevs.invui.item.Item; import xyz.xenondevs.invui.item.Item;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.ItemBuilder;
import xyz.xenondevs.invui.item.impl.SimpleItem;
public class EntityTypeGUI { public class EntityTypeGUI {
private EntityTypeGUI() {} private EntityTypeGUI() {}
@ -23,10 +22,10 @@ public class EntityTypeGUI {
EntityManager em = Manager.getInstance(EntityManager.class); EntityManager em = Manager.getInstance(EntityManager.class);
List<Item> list = new ArrayList<>(); List<Item> list = new ArrayList<>();
for (SREntityType type : em.getTypes()) { for (SREntityType type : em.getTypes()) {
SimpleItem simpleItem = new SimpleItem(new ItemBuilder(type.getItem())); Item simpleItem = Item.simple(new ItemBuilder(type.getItem()));
list.add(simpleItem); list.add(simpleItem);
} }
return PagedGui.items() return PagedGui.itemsBuilder()
.setStructure( .setStructure(
"# # # # # # # # #", "# # # # # # # # #",
"# X X X X X X X #", "# X X X X X X X #",
@ -43,9 +42,9 @@ public class EntityTypeGUI {
public static @NotNull Gui createGui(SREntityType type) { public static @NotNull Gui createGui(SREntityType type) {
Item border = 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( .setStructure(
"# # # # # # # # #", "# # # # # # # # #",
"# T V O I S N L #", // Type, behaVior, lOot, Item display, Stats, Name, Level "# T V O I S N L #", // Type, behaVior, lOot, Item display, Stats, Name, Level

View file

@ -1,20 +1,17 @@
package me.unurled.sacredrealms.sr.gui.entitytype; 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 me.unurled.sacredrealms.sr.components.entity.SREntityType;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 { public class EntityTypeItem extends AbstractItem {
@ -24,35 +21,21 @@ public class EntityTypeItem extends AbstractItem {
this.type = type.getType(); 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setDisplayName(type.name()); 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 @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
player.closeInventory(); player.closeInventory();
player.sendMessage( player.sendMessage(
comp( comp(
"<click:suggest_command:/entitytype edit " "<click:suggest_command:/entitytype edit "
+ event.getView().title() + player.getOpenInventory().title()
+ " type > entitytype edit " + " type > entitytype edit "
+ event.getView().title() + player.getOpenInventory().title()
+ "type")); + "type"));
} }
} }

View file

@ -1,25 +1,26 @@
package me.unurled.sacredrealms.sr.gui.recordings; 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 java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull; 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.ItemProvider;
import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.impl.AbstractItem;
public class CutsceneItem extends AbstractItem { public class CutsceneItem extends AbstractItem {
@ -30,11 +31,11 @@ public class CutsceneItem extends AbstractItem {
public CutsceneItem(String name, UUID uuid) { public CutsceneItem(String name, UUID uuid) {
this.name = name; this.name = name;
this.uuid = uuid; this.uuid = uuid;
ID = new NamespacedKey(SR.getPlugin(), "cutscene_id"); ID = new NamespacedKey(SR.plugin(), "cutscene_id");
} }
@Override @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
ItemStack itemStack = new ItemStack(Material.PAPER); ItemStack itemStack = new ItemStack(Material.PAPER);
ItemMeta itemMeta = itemStack.getItemMeta(); ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.displayName(textComp(name)); itemMeta.displayName(textComp(name));
@ -46,26 +47,22 @@ public class CutsceneItem extends AbstractItem {
@Override @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
// get uuid // get uuid
if (event.getCurrentItem() != null) { error(
String uuid = "Click on CutsceneItem.java: "
event + this.uuid
.getCurrentItem() + " by "
.getItemMeta() + player.getName()
.getPersistentDataContainer() + " it may misfire or fire for the wrong cutscene, I am not sure about the uuid handling here.");
.get(ID, PersistentDataType.STRING); Cutscene cutscene = Manager.getInstance(CutsceneManager.class).findByUUID(this.uuid);
Cutscene cutscene = if (cutscene == null) {
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); player.sendMessage(textComp("<red>Unexpected error."));
return;
if (cutscene == null) { }
player.sendMessage(textComp("<red>Unexpected error.")); if (clickType.isLeftClick()) {
return; Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
}
if (clickType.isLeftClick()) {
Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
}
} }
} }
} }

View file

@ -4,17 +4,17 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.Cutscene;
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
import me.unurled.sacredrealms.sr.gui.BackItem; import me.unurled.sacredrealms.sr.gui.BackItem;
import me.unurled.sacredrealms.sr.gui.ForwardItem; import me.unurled.sacredrealms.sr.gui.ForwardItem;
import me.unurled.srcore.api.Manager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.xenondevs.invui.gui.Gui; import xyz.xenondevs.invui.gui.Gui;
import xyz.xenondevs.invui.gui.Markers;
import xyz.xenondevs.invui.gui.PagedGui; import xyz.xenondevs.invui.gui.PagedGui;
import xyz.xenondevs.invui.gui.structure.Markers;
import xyz.xenondevs.invui.item.Item; import xyz.xenondevs.invui.item.Item;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.ItemBuilder;
public class StartRecordingGui { public class StartRecordingGui {
private StartRecordingGui() {} private StartRecordingGui() {}
@ -28,7 +28,7 @@ public class StartRecordingGui {
items.add(item); items.add(item);
} }
return PagedGui.items() return PagedGui.itemsBuilder()
.setStructure( .setStructure(
"# # # # # # # # #", "# # # # # # # # #",
"# X X X X X X X #", "# X X X X X X X #",

View file

@ -4,17 +4,17 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.Replay;
import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager; import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager;
import me.unurled.sacredrealms.sr.gui.BackItem; import me.unurled.sacredrealms.sr.gui.BackItem;
import me.unurled.sacredrealms.sr.gui.ForwardItem; import me.unurled.sacredrealms.sr.gui.ForwardItem;
import me.unurled.srcore.api.Manager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.xenondevs.invui.gui.Gui; import xyz.xenondevs.invui.gui.Gui;
import xyz.xenondevs.invui.gui.Markers;
import xyz.xenondevs.invui.gui.PagedGui; import xyz.xenondevs.invui.gui.PagedGui;
import xyz.xenondevs.invui.gui.structure.Markers;
import xyz.xenondevs.invui.item.Item; import xyz.xenondevs.invui.item.Item;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.ItemBuilder;
public class ReplayGui { public class ReplayGui {
private ReplayGui() {} private ReplayGui() {}
@ -25,7 +25,7 @@ public class ReplayGui {
List<Item> items = new ArrayList<>(); List<Item> items = new ArrayList<>();
for (Replay r : rm.replays()) {} for (Replay r : rm.replays()) {}
return PagedGui.items() return PagedGui.itemsBuilder()
.setStructure( .setStructure(
"# # # # # # # # #", "# # # # # # # # #",
"# X X X X X X X #", "# X X X X X X X #",

View file

@ -1,25 +1,26 @@
package me.unurled.sacredrealms.sr.gui.replay; 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 java.util.UUID;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene; import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager; import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager; import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull; 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.ItemProvider;
import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.impl.AbstractItem;
public class ReplayItem extends AbstractItem { public class ReplayItem extends AbstractItem {
private static NamespacedKey ID = null; private static NamespacedKey ID = null;
@ -27,13 +28,13 @@ public class ReplayItem extends AbstractItem {
private final UUID uuid; private final UUID uuid;
public ReplayItem(String name, 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.name = name;
this.uuid = uuid; this.uuid = uuid;
} }
@Override @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
ItemStack itemStack = new ItemStack(Material.PAPER); ItemStack itemStack = new ItemStack(Material.PAPER);
ItemMeta itemMeta = itemStack.getItemMeta(); ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.displayName(textComp(name)); itemMeta.displayName(textComp(name));
@ -44,29 +45,26 @@ public class ReplayItem extends AbstractItem {
@Override @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
if (event.getCurrentItem() != null) { error(
String uuid = "Click on CutsceneItem.java: "
event + this.uuid
.getCurrentItem() + " by "
.getItemMeta() + player.getName()
.getPersistentDataContainer() + " it may misfire or fire for the wrong cutscene, I am not sure about the uuid handling here.");
.get(ID, PersistentDataType.STRING);
if (uuid == null) { if (uuid == null) {
return; return;
} }
Cutscene cutscene = Cutscene cutscene = Manager.getInstance(CutsceneManager.class).findByUUID(this.uuid);
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
if (cutscene == null) { if (cutscene == null) {
player.sendMessage(textComp("<red>Unexpected error.")); player.sendMessage(textComp("<red>Unexpected error."));
return; return;
} }
if (clickType.isLeftClick()) { if (clickType.isLeftClick()) {
Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
}
} }
} }
} }

View file

@ -2,44 +2,26 @@ package me.unurled.sacredrealms.sr.gui.treasure;
import static me.unurled.sacredrealms.sr.utils.Items.cancelItem; 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.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; 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.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 class CancelItem extends AbstractItem {
public CancelItem() {} public CancelItem() {}
/**
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
* ({@link #notifyWindows()}).
*
* @return The {@link ItemProvider}
*/
@Override @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
return new ItemBuilder(cancelItem()); 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 @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
player.closeInventory(); player.closeInventory();
} }
} }

View file

@ -1,25 +1,23 @@
package me.unurled.sacredrealms.sr.gui.treasure; 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.Logger.log;
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; 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.Treasure;
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull; 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.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 { public class ConfirmItem extends AbstractItem {
@ -29,14 +27,8 @@ public class ConfirmItem extends AbstractItem {
this.treasure = treasure; 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE);
ItemMeta confirmMeta = confirm.getItemMeta(); ItemMeta confirmMeta = confirm.getItemMeta();
confirmMeta.displayName(textComp("<b><green>Confirm</green></b>")); confirmMeta.displayName(textComp("<b><green>Confirm</green></b>"));
@ -44,28 +36,16 @@ public class ConfirmItem extends AbstractItem {
return new ItemBuilder(confirm); 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 @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
Map<Integer, ItemStack> items = new HashMap<>(); Map<Integer, ItemStack> items = new HashMap<>();
for (int i = 0; i < player.getInventory().getContents().length; i++) { for (int i = 0; i < player.getInventory().getContents().length; i++) {
if (i < 9 || i > 35) { if (i < 9 || i > 35) {
log("Skipping slot " + i); log("Skipping slot " + i);
continue; continue;
} }
if (event.getClickedInventory() == null) { ItemStack content = player.getOpenInventory().getItem(i);
log("Clicked inventory is null");
continue;
}
ItemStack content = event.getClickedInventory().getItem(i);
if (content != null && content.getType() != Material.AIR) { if (content != null && content.getType() != Material.AIR) {
items.put(i, content); items.put(i, content);
log("Added item to items: " + content + " at slot " + i); log("Added item to items: " + content + " at slot " + i);

View file

@ -1,22 +1,20 @@
package me.unurled.sacredrealms.sr.gui.treasure; 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.Treasure;
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager; import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
import me.unurled.srcore.api.Manager;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull; 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.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 { public class DeleteItem extends AbstractItem {
@ -26,14 +24,8 @@ public class DeleteItem extends AbstractItem {
this.treasure = treasure; 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 @Override
public ItemProvider getItemProvider() { public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE); ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE);
ItemMeta deleteMeta = delete.getItemMeta(); ItemMeta deleteMeta = delete.getItemMeta();
deleteMeta.displayName(textComp("<b><red>Delete</red></b>")); deleteMeta.displayName(textComp("<b><red>Delete</red></b>"));
@ -41,17 +33,9 @@ public class DeleteItem extends AbstractItem {
return new ItemBuilder(delete); 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 @Override
public void handleClick( public void handleClick(
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
// delete treasure // delete treasure
if (!player.hasPermission("sr.treasure.delete")) { if (!player.hasPermission("sr.treasure.delete")) {
return; return;

View file

@ -11,7 +11,6 @@ import xyz.xenondevs.invui.inventory.Inventory;
import xyz.xenondevs.invui.inventory.VirtualInventory; import xyz.xenondevs.invui.inventory.VirtualInventory;
import xyz.xenondevs.invui.inventory.event.UpdateReason; import xyz.xenondevs.invui.inventory.event.UpdateReason;
import xyz.xenondevs.invui.item.Item; import xyz.xenondevs.invui.item.Item;
import xyz.xenondevs.invui.item.impl.SimpleItem;
public class TreasureGUI { public class TreasureGUI {
@ -20,10 +19,10 @@ public class TreasureGUI {
@NotNull @NotNull
public static Gui createGui(@NotNull Treasure treasure) { public static Gui createGui(@NotNull Treasure treasure) {
ItemStack itemStack = glassPane(); ItemStack itemStack = glassPane();
Item pane = new SimpleItem(itemStack); Item pane = Item.simple(itemStack);
Inventory inventory = new VirtualInventory(27); Inventory inventory = new VirtualInventory(27);
inventory.setPreUpdateHandler( inventory.addPreUpdateHandler(
(itemPreUpdateEvent) -> { (itemPreUpdateEvent) -> {
if (itemPreUpdateEvent.isAdd() if (itemPreUpdateEvent.isAdd()
|| itemPreUpdateEvent.isRemove() || itemPreUpdateEvent.isRemove()

View file

@ -1,14 +1,11 @@
package me.unurled.sacredrealms.sr.utils; 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.time.Duration;
import java.util.ArrayList;
import java.util.List;
import net.kyori.adventure.key.Key; import net.kyori.adventure.key.Key;
import net.kyori.adventure.title.Title; import net.kyori.adventure.title.Title;
import net.kyori.adventure.title.Title.Times; import net.kyori.adventure.title.Title.Times;
import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View file

@ -1,14 +1,15 @@
package me.unurled.sacredrealms.sr.utils; package me.unurled.sacredrealms.sr.utils;
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer;
import static me.unurled.srcore.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicReference; 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.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.item.Item; import me.unurled.sacredrealms.sr.components.item.Item;
import me.unurled.sacredrealms.sr.components.item.ItemManager; 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.item.ItemStackSerializer;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View file

@ -3,6 +3,7 @@ package me.unurled.sacredrealms.sr.utils;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.logger.slf4j.ComponentLogger; 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 { public class Logger {
private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("SR"); private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("SR");
@ -10,26 +11,56 @@ public class Logger {
private Logger() {} private Logger() {}
/**
* Log a message to the console
*
* @param message the message to log
*/
public static void log(String message) { public static void log(String message) {
logger.info(message); logger.info(message);
} }
/**
* Log a warning to the console
*
* @param message the message to log
*/
public static void warn(String message) { public static void warn(String message) {
logger.warning(message); logger.warning(message);
} }
/**
* Log an error to the console
*
* @param message the message to log
*/
public static void error(String message) { public static void error(String message) {
logger.severe(message); logger.severe(message);
} }
/**
* Log a message to the console
*
* @param message the message to log
*/
public static void log(Component message) { public static void log(Component message) {
componentLogger.info(message); componentLogger.info(message);
} }
/**
* Log a warning to the console
*
* @param message the message to log
*/
public static void warn(Component message) { public static void warn(Component message) {
componentLogger.warn(message); componentLogger.warn(message);
} }
/**
* Log an error to the console
*
* @param message the message to log
*/
public static void error(Component message) { public static void error(Component message) {
componentLogger.error(message); componentLogger.error(message);
} }

View file

@ -1,14 +1,14 @@
package me.unurled.sacredrealms.sr.utils; 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.List;
import java.util.Random; import java.util.Random;
import me.unurled.sacredrealms.sr.Manager;
import me.unurled.sacredrealms.sr.SR; import me.unurled.sacredrealms.sr.SR;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.player.PlayerManager; import me.unurled.sacredrealms.sr.components.player.PlayerManager;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import me.unurled.srcore.api.Manager;
import org.bukkit.attribute.AttributeInstance; import org.bukkit.attribute.AttributeInstance;
import org.bukkit.entity.Display; import org.bukkit.entity.Display;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@ -40,11 +40,9 @@ public class SRPlayerUtils {
float value = (float) ((speed + items) / 500.0f); float value = (float) ((speed + items) / 500.0f);
value = Math.min(value, 1.0f); value = Math.min(value, 1.0f);
value = Math.max(value, 0f); value = Math.max(value, 0f);
AttributeInstance attribute1 = AttributeInstance attribute1 = p.getAttribute(org.bukkit.attribute.Attribute.MOVEMENT_SPEED);
p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED);
if (attribute1 != null) attribute1.setBaseValue(value); if (attribute1 != null) attribute1.setBaseValue(value);
AttributeInstance attribute2 = AttributeInstance attribute2 = p.getAttribute(org.bukkit.attribute.Attribute.FLYING_SPEED);
p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED);
if (attribute2 != null) attribute2.setBaseValue(value); if (attribute2 != null) attribute2.setBaseValue(value);
p.setFlySpeed(value); p.setFlySpeed(value);
p.setWalkSpeed(value); p.setWalkSpeed(value);
@ -57,7 +55,7 @@ public class SRPlayerUtils {
// default is 100 so 20 // default is 100 so 20
double health = double health =
(sr.getAttribute(Attribute.HEALTH) + sr.getTotalItemAttribute(Attribute.HEALTH)) / 5; (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); if (attribute != null) attribute.setBaseValue(health);
p.sendHealthUpdate(); p.sendHealthUpdate();
p.updateInventory(); p.updateInventory();
@ -129,6 +127,6 @@ public class SRPlayerUtils {
} }
height++; height++;
} }
}.runTaskTimer(SR.getPlugin(), 0, 1); }.runTaskTimer(SR.plugin(), 0, 1);
} }
} }

View file

@ -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<net.kyori.adventure.text.Component> fromStringList(
@NotNull List<String> 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);
}
}

View file

@ -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;
}
}

View file

@ -0,0 +1,5 @@
sacred.realms=Sacred Realms: {0}
player.not.found=<red>Player not found.</red>
error=<red>An error occurred while executing this command. Please contact an admin.</red>
no.permission=<red>You do not have permission to use this command.</red>
not.player=<red>You must be a player to use this command.</red>