Compare commits
1 commit
main
...
feature/ci
Author | SHA1 | Date | |
---|---|---|---|
05d32c63f5 |
97 changed files with 994 additions and 773 deletions
|
@ -2,11 +2,12 @@ import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
|
|||
|
||||
plugins {
|
||||
`java-library`
|
||||
id("io.papermc.paperweight.userdev") version "2.0.0-beta.17"
|
||||
id("org.sonarqube") version "6.0.1.5171"
|
||||
id("de.eldoria.plugin-yml.paper") version "0.6.0"
|
||||
id("io.papermc.paperweight.userdev") version "1.7.3"
|
||||
id("org.sonarqube") version "5.1.0.4882"
|
||||
id("net.minecrell.plugin-yml.paper") version "0.6.0"
|
||||
}
|
||||
|
||||
// from 1.20.5+ upward, spigot is not supported
|
||||
paperweight.reobfArtifactConfiguration =
|
||||
io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
||||
|
||||
|
@ -14,14 +15,13 @@ group = "me.unurled.sacredrealms"
|
|||
version = "0.1.0"
|
||||
description = "The main SR plugin."
|
||||
|
||||
val mcVersion = "1.21.4-R0.1-SNAPSHOT"
|
||||
val mcVersion = "1.21.1-R0.1-SNAPSHOT"
|
||||
val redisVersion = "5.2.0-beta4"
|
||||
val invuiVersion = "2.0.0-alpha.14"
|
||||
val invuiVersion = "1.36"
|
||||
val gsonVersion = "2.11.0"
|
||||
val packeteventsVersion = "2.7.0"
|
||||
val znpcsPlusVersion = "2.1.0-SNAPSHOT"
|
||||
val srcoreVersion = "0.1.2"
|
||||
|
||||
val javaVersion = 23
|
||||
val javaVersion = 21
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
@ -33,15 +33,14 @@ repositories {
|
|||
name = "packetevents"
|
||||
url = uri("https://repo.codemc.io/repository/maven-releases/")
|
||||
}
|
||||
maven {
|
||||
name = "unurled"
|
||||
url = uri("https://repo.unurled.me/releases")
|
||||
}
|
||||
maven {
|
||||
name = "cubbossa"
|
||||
url = uri("https://nexus.leonardbausenwein.de/repository/maven-releases/")
|
||||
}
|
||||
// ZNPCsPlus
|
||||
maven {
|
||||
name = "pyrSnapshots"
|
||||
url = uri("https://repo.pyr.lol/snapshots")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -53,9 +52,9 @@ dependencies {
|
|||
|
||||
paperLibrary("redis.clients", "jedis", redisVersion)
|
||||
|
||||
paperLibrary("com.github.retrooper", "packetevents-spigot", packeteventsVersion)
|
||||
paperLibrary("com.github.retrooper", "packetevents-spigot", "2.5.0")
|
||||
|
||||
paperLibrary("lol.pyr", "znpcsplus-api", znpcsPlusVersion)
|
||||
compileOnly("me.unurled:SR-Core:${srcoreVersion}")
|
||||
}
|
||||
|
||||
java {
|
||||
|
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
|
12
gradlew
vendored
12
gradlew
vendored
|
@ -15,8 +15,6 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
|
@ -57,7 +55,7 @@
|
|||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
|
@ -86,7 +84,7 @@ done
|
|||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
@ -114,7 +112,7 @@ case "$( uname )" in #(
|
|||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH="\\\"\\\""
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
|
@ -205,7 +203,7 @@ fi
|
|||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
@ -213,7 +211,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
|
|
26
gradlew.bat
vendored
26
gradlew.bat
vendored
|
@ -13,8 +13,6 @@
|
|||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
|
@ -45,11 +43,11 @@ set JAVA_EXE=java.exe
|
|||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
|
@ -59,22 +57,22 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%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" %*
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
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 */
|
||||
}
|
||||
}
|
|
@ -1,78 +0,0 @@
|
|||
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;
|
||||
}
|
||||
}
|
|
@ -16,19 +16,18 @@ import me.unurled.sacredrealms.sr.components.pack.ResourcePackManager;
|
|||
import me.unurled.sacredrealms.sr.components.pack.animatedjava.AnimatedJavaManager;
|
||||
import me.unurled.sacredrealms.sr.components.pack.background.BackgroundManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.translation.TranslationManager;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
|
||||
import me.unurled.sacredrealms.sr.config.ConfigManager;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.SRCore;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import xyz.xenondevs.invui.InvUI;
|
||||
|
||||
public final class SR extends JavaPlugin {
|
||||
|
||||
private static SR plugin;
|
||||
private Managers managers;
|
||||
|
||||
public static SR plugin() {
|
||||
public static SR getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
|
@ -44,15 +43,16 @@ public final class SR extends JavaPlugin {
|
|||
public void onEnable() {
|
||||
plugin = this;
|
||||
|
||||
managers = new Managers();
|
||||
|
||||
PacketEvents.getAPI().init();
|
||||
|
||||
SRCore.getInstance().setPlugin(this);
|
||||
|
||||
InvUI.getInstance().setPlugin(this);
|
||||
|
||||
managers.register(
|
||||
SRCore.getInstance()
|
||||
.getManagers()
|
||||
.register(
|
||||
List.of(
|
||||
TranslationManager.class,
|
||||
ConfigManager.class,
|
||||
DataManager.class,
|
||||
AnimatedJavaManager.class,
|
||||
|
@ -73,11 +73,8 @@ public final class SR extends JavaPlugin {
|
|||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
managers.unload();
|
||||
SRCore.getInstance().unload();
|
||||
|
||||
PacketEvents.getAPI().terminate();
|
||||
}
|
||||
|
||||
public Managers managers() {
|
||||
return managers;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,11 +21,15 @@ public class SRLoader implements PluginLoader {
|
|||
public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) {
|
||||
MavenLibraryResolver resolver = new MavenLibraryResolver();
|
||||
resolver.addDependency(
|
||||
new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:2.0.0-alpha.14"), null));
|
||||
new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:1.36"), null));
|
||||
resolver.addRepository(
|
||||
new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/")
|
||||
.build());
|
||||
|
||||
resolver.addDependency(new Dependency(new DefaultArtifact("me.unurled:SR-Core:0.1.1"), null));
|
||||
resolver.addRepository(
|
||||
new RemoteRepository.Builder("srcore", "default", "https://repo.unurled.me/releases")
|
||||
.build());
|
||||
classpathBuilder.addLibrary(resolver);
|
||||
|
||||
PluginLibraries pluginLibraries = load();
|
||||
|
|
|
@ -9,7 +9,6 @@ import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager;
|
|||
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.commands.admin.AttributeCommand;
|
||||
import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand;
|
||||
import me.unurled.sacredrealms.sr.commands.admin.EntityTypeCommand;
|
||||
|
@ -22,6 +21,7 @@ import me.unurled.sacredrealms.sr.commands.admin.cutscene.RecordCutsceneCommand;
|
|||
import me.unurled.sacredrealms.sr.commands.admin.cutscene.StopRecordingCommand;
|
||||
import me.unurled.sacredrealms.sr.commands.player.DifficultyCommand;
|
||||
import me.unurled.sacredrealms.sr.commands.player.ResetAdventureCommand;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CommandManager extends Manager {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
|
@ -9,11 +9,11 @@ import java.util.Arrays;
|
|||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.sacredrealms.sr.gui.attributes.AttributesGUI;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -160,7 +160,7 @@ public class AttributeCommand implements BasicCommand {
|
|||
return;
|
||||
}
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(p)
|
||||
.setTitle("Attributes")
|
||||
.setGui(AttributesGUI.createGui(target))
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.ERROR;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.log;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
|
@ -10,12 +12,11 @@ import java.util.HashMap;
|
|||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.clientbuild.ClientBuild;
|
||||
import me.unurled.sacredrealms.sr.components.clientbuild.ClientBuildManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
@ -119,7 +120,7 @@ public class ClientBuildCommand implements BasicCommand, Listener {
|
|||
PlayerManager pm = Manager.getInstance(PlayerManager.class);
|
||||
SRPlayer sr = pm.getPlayer(p.getUniqueId());
|
||||
if (sr == null) {
|
||||
sender.sendMessage(TranslatedComponent.ERROR.component());
|
||||
sender.sendMessage(textComp(ERROR));
|
||||
return;
|
||||
}
|
||||
sender.sendMessage("Modify the client build and save after you are finished.");
|
||||
|
@ -154,7 +155,7 @@ public class ClientBuildCommand implements BasicCommand, Listener {
|
|||
PlayerManager pm = Manager.getInstance(PlayerManager.class);
|
||||
SRPlayer sr = pm.getPlayer(p.getUniqueId());
|
||||
if (sr == null) {
|
||||
sender.sendMessage(TranslatedComponent.ERROR.component());
|
||||
sender.sendMessage(textComp(ERROR));
|
||||
return;
|
||||
}
|
||||
sender.sendMessage(
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.NOT_PLAYER;
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.EntityManager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||
import me.unurled.sacredrealms.sr.gui.entitytype.EntityTypeGUI;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -22,7 +23,7 @@ public class EntityTypeCommand implements BasicCommand {
|
|||
|
||||
private static void list(@NotNull CommandSender sender, @NotNull String @NotNull [] args) {
|
||||
if (!(sender instanceof Player p)) {
|
||||
sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.sendMessage(comp(NOT_PLAYER));
|
||||
return;
|
||||
}
|
||||
EntityManager em = Manager.getInstance(EntityManager.class);
|
||||
|
@ -32,11 +33,7 @@ public class EntityTypeCommand implements BasicCommand {
|
|||
}
|
||||
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
.setViewer(p)
|
||||
.setTitle("List")
|
||||
.setGui(EntityTypeGUI.listGui())
|
||||
.build();
|
||||
Window.single().setViewer(p).setTitle("List").setGui(EntityTypeGUI.listGui()).build();
|
||||
window.open();
|
||||
}
|
||||
|
||||
|
@ -46,7 +43,7 @@ public class EntityTypeCommand implements BasicCommand {
|
|||
return;
|
||||
}
|
||||
if (!(sender instanceof Player p)) {
|
||||
sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.sendMessage(comp(NOT_PLAYER));
|
||||
return;
|
||||
}
|
||||
if (args.length < 3) {
|
||||
|
@ -57,7 +54,7 @@ public class EntityTypeCommand implements BasicCommand {
|
|||
}
|
||||
SREntityType type = em.getType(args[1]);
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(p)
|
||||
.setTitle(args[1])
|
||||
.setGui(EntityTypeGUI.createGui(type))
|
||||
|
@ -112,7 +109,7 @@ public class EntityTypeCommand implements BasicCommand {
|
|||
if (sender instanceof Player p) {
|
||||
// opens gui
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(p)
|
||||
.setTitle(args[1])
|
||||
.setGui(EntityTypeGUI.createGui(type))
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.item.Item;
|
||||
import me.unurled.sacredrealms.sr.components.item.ItemManager;
|
||||
|
@ -16,6 +15,7 @@ import me.unurled.sacredrealms.sr.components.item.ItemType;
|
|||
import me.unurled.sacredrealms.sr.components.item.Rarity;
|
||||
import me.unurled.sacredrealms.sr.components.item.abilities.Ability;
|
||||
import me.unurled.sacredrealms.sr.components.item.enchantments.Enchantment;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
|
|
@ -4,9 +4,9 @@ import io.papermc.paper.command.brigadier.BasicCommand;
|
|||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.NO_PERMISSION;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.EntityManager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -55,7 +57,7 @@ public class SpawnEntityCommand implements BasicCommand {
|
|||
public void execute(@NotNull CommandSourceStack commandSourceStack, @NotNull String[] args) {
|
||||
CommandSender sender = commandSourceStack.getSender();
|
||||
if (!sender.hasPermission("sr.spawn-entity")) {
|
||||
sender.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
sender.sendMessage(textComp(NO_PERMISSION));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.NOT_PLAYER;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.Treasure;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
|
||||
import me.unurled.sacredrealms.sr.gui.treasure.TreasureGUI;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
|
@ -33,7 +33,7 @@ public class TreasureCommand implements BasicCommand {
|
|||
private static void delete(@NotNull CommandSender sender, TreasureManager instance) {
|
||||
Block block;
|
||||
if (!(sender instanceof Player p)) {
|
||||
sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.sendMessage(NOT_PLAYER);
|
||||
return;
|
||||
}
|
||||
block = p.getTargetBlock(TRANSPARENT, 3);
|
||||
|
@ -69,7 +69,7 @@ public class TreasureCommand implements BasicCommand {
|
|||
private static void modify(@NotNull CommandSender sender, TreasureManager instance) {
|
||||
Block block;
|
||||
if (!(sender instanceof Player p)) {
|
||||
sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.sendMessage(NOT_PLAYER);
|
||||
return;
|
||||
}
|
||||
block = p.getTargetBlock(TRANSPARENT, 3);
|
||||
|
@ -82,7 +82,7 @@ public class TreasureCommand implements BasicCommand {
|
|||
}
|
||||
// open the GUI
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(p)
|
||||
.setTitle("Modifiy Treasure Chest")
|
||||
.setGui(TreasureGUI.createGui(treasure))
|
||||
|
@ -97,7 +97,7 @@ public class TreasureCommand implements BasicCommand {
|
|||
@NotNull CommandSender sender, @NotNull String @NotNull [] args, TreasureManager instance) {
|
||||
Block block;
|
||||
if (!(sender instanceof Player p)) {
|
||||
sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.sendMessage(NOT_PLAYER);
|
||||
return;
|
||||
}
|
||||
block = p.getTargetBlock(TRANSPARENT, 3);
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin.cutscene;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.NOT_PLAYER;
|
||||
import static me.unurled.srcore.utils.Component.NO_PERMISSION;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -17,11 +20,11 @@ public class CreateCutsceneCommand implements BasicCommand {
|
|||
@Override
|
||||
public void execute(@NotNull CommandSourceStack sender, String[] args) {
|
||||
if (!(sender.getSender() instanceof Player p)) {
|
||||
sender.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.getSender().sendMessage(textComp(NOT_PLAYER));
|
||||
return;
|
||||
}
|
||||
if (!p.hasPermission("sr.cutscene.create")) {
|
||||
p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
p.sendMessage(textComp(NO_PERMISSION));
|
||||
return;
|
||||
}
|
||||
// get the name
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin.cutscene;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.NO_PERMISSION;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -22,7 +24,7 @@ public class RecordCutsceneCommand implements BasicCommand {
|
|||
}
|
||||
|
||||
if (!p.hasPermission("sr.cutscene.create")) {
|
||||
p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
p.sendMessage(textComp(NO_PERMISSION));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin.cutscene;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.NOT_PLAYER;
|
||||
import static me.unurled.srcore.utils.Component.NO_PERMISSION;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Collection;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -12,12 +15,12 @@ public class ReplayCommand implements BasicCommand {
|
|||
@Override
|
||||
public void execute(@NotNull CommandSourceStack stack, String[] args) {
|
||||
if (!(stack.getSender() instanceof Player p)) {
|
||||
stack.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
stack.getSender().sendMessage(textComp(NOT_PLAYER));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!p.hasPermission("sr.cutscene.replay")) {
|
||||
p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
p.sendMessage(textComp(NO_PERMISSION));
|
||||
}
|
||||
|
||||
// aaa
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
package me.unurled.sacredrealms.sr.commands.admin.cutscene;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.NOT_PLAYER;
|
||||
import static me.unurled.srcore.utils.Component.NO_PERMISSION;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Collection;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -14,11 +17,11 @@ public class StopRecordingCommand implements BasicCommand {
|
|||
@Override
|
||||
public void execute(@NotNull CommandSourceStack stack, String[] args) {
|
||||
if (!(stack.getSender() instanceof Player p)) {
|
||||
stack.getSender().sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
stack.getSender().sendMessage(textComp(NOT_PLAYER));
|
||||
return;
|
||||
}
|
||||
if (!p.hasPermission("sr.cutscene.create")) {
|
||||
p.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
p.sendMessage(textComp(NO_PERMISSION));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
package me.unurled.sacredrealms.sr.commands.player;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.NOT_PLAYER;
|
||||
import static me.unurled.srcore.utils.Component.NO_PERMISSION;
|
||||
import static me.unurled.srcore.utils.Component.PLAYER_NOT_FOUND;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.sacredrealms.sr.gui.difficulty.DifficultyGUI;
|
||||
import me.unurled.sacredrealms.sr.utils.component.TranslatedComponent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -49,11 +51,11 @@ public class DifficultyCommand implements BasicCommand {
|
|||
private static void playerHandling(
|
||||
@NotNull CommandSender sender, @NotNull String[] args, @NotNull Player p) {
|
||||
if (!p.hasPermission(DIFFICULTY_SELF)) {
|
||||
sender.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
sender.sendMessage(textComp(NO_PERMISSION));
|
||||
return;
|
||||
}
|
||||
if (args.length >= 1 && !p.hasPermission(DIFFICULTY_MANAGE)) {
|
||||
sender.sendMessage(TranslatedComponent.NO_PERMISSION.component());
|
||||
sender.sendMessage(textComp(NO_PERMISSION));
|
||||
usage(sender);
|
||||
return;
|
||||
}
|
||||
|
@ -61,7 +63,7 @@ public class DifficultyCommand implements BasicCommand {
|
|||
if (args.length == 0) {
|
||||
// open gui for sender
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(p)
|
||||
.setTitle(CHOOSE_DIFFICULTY)
|
||||
.setGui(DifficultyGUI.createGui())
|
||||
|
@ -74,11 +76,11 @@ public class DifficultyCommand implements BasicCommand {
|
|||
// open gui for target player
|
||||
Player target = p.getServer().getPlayer(args[0]);
|
||||
if (target == null) {
|
||||
sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
|
||||
sender.sendMessage(textComp(PLAYER_NOT_FOUND));
|
||||
return;
|
||||
}
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(p)
|
||||
.setTitle(CHOOSE_DIFFICULTY)
|
||||
.setGui(DifficultyGUI.createGui())
|
||||
|
@ -91,7 +93,7 @@ public class DifficultyCommand implements BasicCommand {
|
|||
// set difficulty for target player
|
||||
Player target = p.getServer().getPlayer(args[0]);
|
||||
if (target == null) {
|
||||
sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
|
||||
sender.sendMessage(textComp(PLAYER_NOT_FOUND));
|
||||
return;
|
||||
}
|
||||
// set difficulty
|
||||
|
@ -110,7 +112,7 @@ public class DifficultyCommand implements BasicCommand {
|
|||
Difficulty difficulty) {
|
||||
SRPlayer sr = pm.getPlayer(target.getUniqueId());
|
||||
if (sr == null) {
|
||||
sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
|
||||
sender.sendMessage(textComp(PLAYER_NOT_FOUND));
|
||||
return;
|
||||
}
|
||||
sr.setDifficulty(difficulty);
|
||||
|
@ -125,19 +127,19 @@ public class DifficultyCommand implements BasicCommand {
|
|||
private static void consoleHandler(
|
||||
@NotNull CommandSender sender, @NotNull String @NotNull [] args) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(TranslatedComponent.NOT_PLAYER.component());
|
||||
sender.sendMessage(textComp(NOT_PLAYER));
|
||||
usage(sender);
|
||||
return;
|
||||
}
|
||||
|
||||
Player target = Bukkit.getPlayer(args[0]);
|
||||
if (target == null) {
|
||||
sender.sendMessage(TranslatedComponent.PLAYER_NOT_FOUND.component());
|
||||
sender.sendMessage(textComp(PLAYER_NOT_FOUND));
|
||||
return;
|
||||
}
|
||||
if (args.length == 1) {
|
||||
Window window =
|
||||
Window.mergedBuilder()
|
||||
Window.single()
|
||||
.setViewer(target)
|
||||
.setTitle(CHOOSE_DIFFICULTY)
|
||||
.setGui(DifficultyGUI.createGui())
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.commands.player;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
|
||||
import io.papermc.paper.command.brigadier.BasicCommand;
|
||||
import io.papermc.paper.command.brigadier.CommandSourceStack;
|
||||
|
@ -9,10 +9,10 @@ import java.util.Collection;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -39,7 +39,7 @@ public class ResetAdventureCommand implements BasicCommand {
|
|||
}
|
||||
return;
|
||||
}
|
||||
OfflinePlayer player = SR.plugin().getServer().getOfflinePlayer(args[0]);
|
||||
OfflinePlayer player = SR.getPlugin().getServer().getOfflinePlayer(args[0]);
|
||||
|
||||
boolean status = resetAdventure(player);
|
||||
if (status) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package me.unurled.sacredrealms.sr.components.block;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
@ -4,8 +4,8 @@ import static me.unurled.sacredrealms.sr.utils.Items.locationToString;
|
|||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
|
@ -65,9 +65,9 @@ public class BlockManager extends Manager {
|
|||
public void load() {
|
||||
Bukkit.getScheduler()
|
||||
.runTask(
|
||||
SR.plugin(),
|
||||
SR.getPlugin(),
|
||||
() -> {
|
||||
for (World world : SR.plugin().getServer().getWorlds()) {
|
||||
for (World world : SR.getPlugin().getServer().getWorlds()) {
|
||||
if (world == null) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -11,11 +11,11 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.commands.admin.ClientBuildCommand;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
@ -41,7 +41,7 @@ public class ClientBuildManager extends Manager {
|
|||
@Override
|
||||
public void load() {
|
||||
super.load();
|
||||
Bukkit.getPluginManager().registerEvents(new ClientBuildCommand(), SR.plugin());
|
||||
Bukkit.getPluginManager().registerEvents(new ClientBuildCommand(), SR.getPlugin());
|
||||
}
|
||||
|
||||
public List<ClientBuild> getBuilds() {
|
||||
|
@ -83,7 +83,7 @@ public class ClientBuildManager extends Manager {
|
|||
if (dh == null) {
|
||||
error("Failed to get DataHandler instance, can't load client builds.");
|
||||
error("Retrying in 10 seconds.");
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(SR.plugin(), this::loadData, 200L);
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(SR.getPlugin(), this::loadData, 200L);
|
||||
return;
|
||||
}
|
||||
List<String> keys = dh.getKeysAll("sr.clientbuild");
|
||||
|
@ -130,7 +130,7 @@ public class ClientBuildManager extends Manager {
|
|||
}
|
||||
Bukkit.getScheduler()
|
||||
.runTaskAsynchronously(
|
||||
SR.plugin(),
|
||||
SR.getPlugin(),
|
||||
() -> {
|
||||
for (String name : names) {
|
||||
ClientBuild build = getBuild(name);
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
package me.unurled.sacredrealms.sr.components.combat;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.spawnIndicator;
|
||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.entity.EntityManager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.SREntity;
|
||||
|
@ -17,6 +16,7 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.sacredrealms.sr.utils.Items;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
import static org.bukkit.Material.RED_WOOL;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.utils.Region;
|
||||
import me.unurled.sacredrealms.sr.utils.RegionUtil;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.Items.cancelItem;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -32,7 +32,10 @@ public class CutsceneManager extends Manager {
|
|||
@Override
|
||||
public void load() {
|
||||
super.load();
|
||||
SR.plugin().getServer().getPluginManager().registerEvents(new CreationListener(), SR.plugin());
|
||||
SR.getPlugin()
|
||||
.getServer()
|
||||
.getPluginManager()
|
||||
.registerEvents(new CreationListener(), SR.getPlugin());
|
||||
TickTracker.startTracking();
|
||||
cutscenes = new ArrayList<>();
|
||||
cutsceneBeingCreated = new HashMap<>();
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.tasks.TickTracker;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.tasks.ReplayTask;
|
||||
|
@ -12,16 +15,19 @@ public class Replay {
|
|||
private final Player viewer;
|
||||
private final Recording recording;
|
||||
private final BukkitTask replayTask;
|
||||
private final Map<UUID, Integer> spawnedEntities;
|
||||
|
||||
public Replay(Recording recording, @NotNull Player viewer) {
|
||||
this.recording = recording;
|
||||
this.viewer = viewer;
|
||||
spawnedEntities = new HashMap<>();
|
||||
|
||||
viewer.getInventory().clear();
|
||||
// TODO: control cutscene replay
|
||||
|
||||
replayTask =
|
||||
Bukkit.getScheduler().runTaskTimerAsynchronously(SR.plugin(), new ReplayTask(this), 0L, 1L);
|
||||
Bukkit.getScheduler()
|
||||
.runTaskTimerAsynchronously(SR.getPlugin(), new ReplayTask(this), 0L, 1L);
|
||||
}
|
||||
|
||||
public Player viewer() {
|
||||
|
@ -41,4 +47,8 @@ public class Replay {
|
|||
replayTask.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
public Map<UUID, Integer> spawnedEntities() {
|
||||
return spawnedEntities;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@ package me.unurled.sacredrealms.sr.components.cutscene;
|
|||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene.recording;
|
||||
|
||||
import com.github.retrooper.packetevents.protocol.player.User;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Replay;
|
||||
|
||||
public abstract class Recordable {
|
||||
private long tick;
|
||||
|
||||
public abstract void replay();
|
||||
public abstract void replay(Replay replay, User user) throws Exception;
|
||||
|
||||
public long tick() {
|
||||
return tick;
|
||||
|
|
|
@ -37,9 +37,9 @@ public class Recording {
|
|||
this.endTick = 1; // TODO: get tick
|
||||
|
||||
this.scanEntitiesTask =
|
||||
Bukkit.getScheduler().runTaskTimer(SR.plugin(), new ScanEntityTracker(this), 0L, 20L);
|
||||
Bukkit.getScheduler().runTaskTimer(SR.getPlugin(), new ScanEntityTracker(this), 0L, 20L);
|
||||
this.trackLocationTask =
|
||||
Bukkit.getScheduler().runTaskTimer(SR.plugin(), new TrackLocationTask(this), 0L, 1L);
|
||||
Bukkit.getScheduler().runTaskTimer(SR.getPlugin(), new TrackLocationTask(this), 0L, 1L);
|
||||
}
|
||||
|
||||
public Map<Long, List<Recordable>> recordables() {
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene.recording.recordables;
|
||||
|
||||
import com.github.retrooper.packetevents.protocol.player.User;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerDestroyEntities;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Replay;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class DespawnEntityRecordable extends Recordable {
|
||||
|
||||
|
@ -14,8 +18,11 @@ public class DespawnEntityRecordable extends Recordable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void replay() {
|
||||
// TODO: fake spawn entity
|
||||
public void replay(@NotNull Replay replay, @NotNull User user) throws Exception {
|
||||
WrapperPlayServerDestroyEntities destroyEntities =
|
||||
new WrapperPlayServerDestroyEntities(replay.spawnedEntities().get(entityId));
|
||||
user.sendPacket(destroyEntities);
|
||||
replay.spawnedEntities().remove(entityId);
|
||||
}
|
||||
|
||||
public UUID entityId() {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene.recording.recordables;
|
||||
|
||||
import com.github.retrooper.packetevents.protocol.player.User;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Replay;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable;
|
||||
import org.bukkit.Location;
|
||||
|
||||
|
@ -17,7 +19,7 @@ public class LocationChangeRecordable extends Recordable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void replay() {}
|
||||
public void replay(Replay replay, User user) throws Exception {}
|
||||
|
||||
public UUID entityId() {
|
||||
return entityId;
|
||||
|
|
|
@ -1,8 +1,20 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene.recording.recordables;
|
||||
|
||||
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
|
||||
import com.github.retrooper.packetevents.protocol.player.User;
|
||||
import com.github.retrooper.packetevents.protocol.player.UserProfile;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerPlayerInfoUpdate;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnPlayer;
|
||||
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.EnumSet;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Replay;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
@ -33,8 +45,49 @@ public class SpawnEntityRecordable extends Recordable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void replay() {
|
||||
// TODO: fake spawn entity
|
||||
public void replay(Replay replay, User user) throws Exception { // TODO: check everything
|
||||
|
||||
Class<?> entityClass = Class.forName("net.minecraft.world.entity.Entity");
|
||||
Field field = entityClass.getDeclaredField("ENTITY_COUNTER");
|
||||
field.setAccessible(true);
|
||||
AtomicInteger ENTITY_COUNTER = (AtomicInteger) field.get(null);
|
||||
int id = ENTITY_COUNTER.incrementAndGet();
|
||||
|
||||
if (entityType == EntityType.PLAYER) {
|
||||
WrapperPlayServerPlayerInfoUpdate.PlayerInfo data =
|
||||
new WrapperPlayServerPlayerInfoUpdate.PlayerInfo(
|
||||
new UserProfile(entityId, name.toString()),
|
||||
false,
|
||||
0,
|
||||
SpigotConversionUtil.fromBukkitGameMode(GameMode.SURVIVAL),
|
||||
name,
|
||||
null);
|
||||
|
||||
user.sendPacket(
|
||||
new WrapperPlayServerPlayerInfoUpdate(
|
||||
EnumSet.of(WrapperPlayServerPlayerInfoUpdate.Action.ADD_PLAYER), data));
|
||||
user.sendPacket(
|
||||
new WrapperPlayServerSpawnPlayer(
|
||||
id, entityId, SpigotConversionUtil.fromBukkitLocation(location)));
|
||||
|
||||
replay.spawnedEntities().put(entityId, id);
|
||||
} else {
|
||||
com.github.retrooper.packetevents.protocol.entity.type.EntityType entityType1 =
|
||||
EntityTypes.getByName(entityType.getKey().toString());
|
||||
|
||||
WrapperPlayServerSpawnEntity spawnEntityPacket =
|
||||
new WrapperPlayServerSpawnEntity(
|
||||
id,
|
||||
UUID.randomUUID(),
|
||||
entityType1,
|
||||
SpigotConversionUtil.fromBukkitLocation(location),
|
||||
0,
|
||||
0,
|
||||
null);
|
||||
|
||||
user.sendPacket(spawnEntityPacket);
|
||||
replay.spawnedEntities().put(entityId, id);
|
||||
}
|
||||
}
|
||||
|
||||
public EntityType entityType() {
|
||||
|
|
|
@ -1,22 +1,27 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene.tasks;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.protocol.player.User;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Replay;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recordable;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ReplayTask implements Runnable {
|
||||
|
||||
private final Replay replay;
|
||||
private final ReplayManager rm;
|
||||
private final User user;
|
||||
private long currentTick = 0;
|
||||
|
||||
public ReplayTask(Replay replay) {
|
||||
public ReplayTask(@NotNull Replay replay) {
|
||||
this.replay = replay;
|
||||
rm = Manager.getInstance(ReplayManager.class);
|
||||
this.user = PacketEvents.getAPI().getPlayerManager().getUser(replay.viewer());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,7 +43,7 @@ public class ReplayTask implements Runnable {
|
|||
|
||||
for (Recordable r : recordables) {
|
||||
// figure out how to replay a recordable
|
||||
r.replay();
|
||||
r.replay(replay, user);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
error("Tick: " + currentTick);
|
||||
|
|
|
@ -2,11 +2,11 @@ package me.unurled.sacredrealms.sr.components.cutscene.tasks;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.SpawnEntityRecordable;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ public class TickTracker {
|
|||
private static long currentTick = 0;
|
||||
|
||||
public static void startTracking() {
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(SR.plugin(), () -> currentTick++, 0L, 1L);
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(SR.getPlugin(), () -> currentTick++, 0L, 1L);
|
||||
}
|
||||
|
||||
public static long currentTick() {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package me.unurled.sacredrealms.sr.components.cutscene.tasks;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.Recording;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.DespawnEntityRecordable;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.recording.recordables.LocationChangeRecordable;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.components.difficulty;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
|
|
@ -8,13 +8,13 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.item.ItemStackDeserializer;
|
||||
import me.unurled.sacredrealms.sr.components.item.ItemStackSerializer;
|
||||
import me.unurled.sacredrealms.sr.components.player.PotionEffectDeserializer;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.components.entity;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package me.unurled.sacredrealms.sr.components.item;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
import static me.unurled.sacredrealms.sr.utils.Items.lore;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
|
|
@ -6,9 +6,9 @@ import com.google.gson.Gson;
|
|||
import com.google.gson.GsonBuilder;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
package me.unurled.sacredrealms.sr.components.npc;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import lol.pyr.znpcsplus.api.NpcApi;
|
||||
import lol.pyr.znpcsplus.api.NpcApiProvider;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.utils.ChunkWrapper;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.world.ChunkLoadEvent;
|
||||
|
@ -18,19 +17,6 @@ public class NPCManager extends Manager {
|
|||
|
||||
private final Map<ChunkWrapper, HashSet<NPCEntity>> npcPerChunk = 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) {
|
||||
// TODO: Register the entity
|
||||
|
@ -66,7 +52,7 @@ public class NPCManager extends Manager {
|
|||
}
|
||||
Bukkit.getScheduler()
|
||||
.scheduleSyncDelayedTask(
|
||||
SR.plugin(),
|
||||
SR.getPlugin(),
|
||||
() -> {
|
||||
HashSet<NPCEntity> npc = npcPerChunk.get(cw);
|
||||
for (NPCEntity entity : npc) {
|
||||
|
|
|
@ -12,13 +12,13 @@ import java.io.IOException;
|
|||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.UUID;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.pack.hosts.HostingProvider;
|
||||
import me.unurled.sacredrealms.sr.components.pack.hosts.RustProvider;
|
||||
import me.unurled.sacredrealms.sr.config.Settings;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -36,17 +36,18 @@ public class ResourcePackManager extends Manager {
|
|||
@NotNull
|
||||
private static File packFile(String fileName) {
|
||||
try {
|
||||
new File(SR.plugin().getDataFolder(), "pack").mkdirs();
|
||||
new File(SR.getPlugin().getDataFolder(), "pack").mkdirs();
|
||||
|
||||
String[] filesInclude = {"assets", "pack.mcmeta"};
|
||||
|
||||
FileOutputStream fos = new FileOutputStream(new File(SR.plugin().getDataFolder(), fileName));
|
||||
FileOutputStream fos =
|
||||
new FileOutputStream(new File(SR.getPlugin().getDataFolder(), fileName));
|
||||
ZipOutputStream zipOut = new ZipOutputStream(fos);
|
||||
|
||||
zipOut.setLevel(9);
|
||||
|
||||
for (String filePath : filesInclude) {
|
||||
File fileToZip = new File(SR.plugin().getDataFolder() + "/pack", filePath);
|
||||
File fileToZip = new File(SR.getPlugin().getDataFolder() + "/pack", filePath);
|
||||
if (fileToZip.isDirectory()) {
|
||||
zipDirectory(fileToZip, fileToZip.getName(), zipOut);
|
||||
} else {
|
||||
|
@ -59,7 +60,7 @@ public class ResourcePackManager extends Manager {
|
|||
} catch (IOException e) {
|
||||
error("Failed to create resource pack");
|
||||
}
|
||||
return new File(SR.plugin().getDataFolder(), fileName);
|
||||
return new File(SR.getPlugin().getDataFolder(), fileName);
|
||||
}
|
||||
|
||||
/** Save the data */
|
||||
|
@ -99,7 +100,7 @@ public class ResourcePackManager extends Manager {
|
|||
public void uploadAsync(final File file) {
|
||||
Bukkit.getScheduler()
|
||||
.runTaskAsynchronously(
|
||||
SR.plugin(),
|
||||
SR.getPlugin(),
|
||||
() -> {
|
||||
// start the call
|
||||
boolean success;
|
||||
|
@ -119,13 +120,13 @@ public class ResourcePackManager extends Manager {
|
|||
@Override
|
||||
public void load() {
|
||||
super.load();
|
||||
String zipPath = SR.plugin().getDataFolder() + "/" + RESOURCE_PACK_ZIP;
|
||||
String zipPath = SR.getPlugin().getDataFolder() + "/" + RESOURCE_PACK_ZIP;
|
||||
|
||||
Bukkit.getScheduler()
|
||||
.runTaskAsynchronously(
|
||||
SR.plugin(),
|
||||
SR.getPlugin(),
|
||||
() -> {
|
||||
if (new File(SR.plugin().getDataFolder(), "pack").exists()
|
||||
if (new File(SR.getPlugin().getDataFolder(), "pack").exists()
|
||||
&& new File(zipPath).exists()) {
|
||||
log("Resource pack exists");
|
||||
// create a new zip with files
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package me.unurled.sacredrealms.sr.components.pack.animatedjava;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
|
||||
public class AnimatedJavaManager extends Manager {}
|
||||
|
|
|
@ -5,10 +5,10 @@ import static me.unurled.sacredrealms.sr.utils.Logger.warn;
|
|||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.utils.character.CharacterArranger;
|
||||
import me.unurled.sacredrealms.sr.utils.character.ConfiguredChar;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class BackgroundManager extends Manager {
|
||||
|
@ -21,7 +21,7 @@ public class BackgroundManager extends Manager {
|
|||
|
||||
@Override
|
||||
public void loadData() {
|
||||
File bgFolder = new File(SR.plugin().getDataFolder(), "backgrounds");
|
||||
File bgFolder = new File(SR.getPlugin().getDataFolder(), "backgrounds");
|
||||
if (!bgFolder.exists() && bgFolder.mkdirs()) {
|
||||
saveDefaultBackgrounds();
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ public class BackgroundManager extends Manager {
|
|||
private void saveDefaultBackgrounds() {
|
||||
String[] bgList = new String[] {"b0", "b1", "b2", "b4", "b8", "b16", "b32", "b64", "b128"};
|
||||
for (String bg : bgList) {
|
||||
SR.plugin().saveResource("backgrounds" + File.separator + bg + ".png", false);
|
||||
SR.getPlugin().saveResource("backgrounds" + File.separator + bg + ".png", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ package me.unurled.sacredrealms.sr.components.packet;
|
|||
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PacketManager extends Manager {
|
||||
|
|
|
@ -3,7 +3,7 @@ package me.unurled.sacredrealms.sr.components.player;
|
|||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.log;
|
||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
|
||||
import com.google.gson.Gson;
|
||||
|
@ -11,13 +11,13 @@ import com.google.gson.GsonBuilder;
|
|||
import java.net.URI;
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.pack.ResourcePackManager;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.sacredrealms.sr.events.player.PlayerLevelUpEvent;
|
||||
import me.unurled.sacredrealms.sr.utils.Items;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import net.kyori.adventure.resource.ResourcePackInfo;
|
||||
import net.kyori.adventure.resource.ResourcePackRequest;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -139,7 +139,8 @@ public class PlayerManager extends Manager {
|
|||
// TODO: does not update when player health has changed for example
|
||||
BukkitTask task =
|
||||
Bukkit.getScheduler()
|
||||
.runTaskTimerAsynchronously(SR.plugin(), () -> updateActionBar(e.getPlayer()), 0, 20L);
|
||||
.runTaskTimerAsynchronously(
|
||||
SR.getPlugin(), () -> updateActionBar(e.getPlayer()), 0, 20L);
|
||||
|
||||
actionBarTasks.put(e.getPlayer().getUniqueId(), task);
|
||||
e.getPlayer().updateInventory();
|
||||
|
@ -258,7 +259,7 @@ public class PlayerManager extends Manager {
|
|||
|
||||
public void levelUp(SRPlayer p, int previousLevel) {
|
||||
PlayerLevelUpEvent event = new PlayerLevelUpEvent(p, previousLevel);
|
||||
Bukkit.getScheduler().runTaskAsynchronously(SR.plugin(), event::callEvent);
|
||||
Bukkit.getScheduler().runTaskAsynchronously(SR.getPlugin(), event::callEvent);
|
||||
Player player = Bukkit.getPlayer(p.getUuid());
|
||||
if (player != null) {
|
||||
player.sendMessage(event.getMessage());
|
||||
|
|
|
@ -10,11 +10,11 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
|
||||
import me.unurled.sacredrealms.sr.components.item.Item;
|
||||
import me.unurled.sacredrealms.sr.events.player.PlayerKillEvent;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package me.unurled.sacredrealms.sr.components.player.listener;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
package me.unurled.sacredrealms.sr.components.pointer;
|
||||
|
||||
import com.github.retrooper.packetevents.PacketEvents;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityData;
|
||||
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||
import com.github.retrooper.packetevents.protocol.player.User;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityMetadata;
|
||||
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
|
||||
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
// TODO: test this
|
||||
public class DisplayForPlayer implements Runnable {
|
||||
|
||||
private static final int RENDER_DISTANCE_BLOCKS = 128;
|
||||
|
||||
private final Pointer pointer;
|
||||
private final Player player;
|
||||
private final User user;
|
||||
|
||||
public DisplayForPlayer(Pointer pointer, Player player) {
|
||||
this.pointer = pointer;
|
||||
this.player = player;
|
||||
this.user = PacketEvents.getAPI().getPlayerManager().getUser(player);
|
||||
}
|
||||
|
||||
public static Location getLocationInRange(@NotNull Player player, Location targetLocation) {
|
||||
Location playerLocation = player.getLocation();
|
||||
|
||||
// Calculate the distance between player and target location
|
||||
double distance = playerLocation.distance(targetLocation);
|
||||
|
||||
// If the location is within the render distance, return the original location
|
||||
if (distance <= RENDER_DISTANCE_BLOCKS) {
|
||||
return targetLocation;
|
||||
}
|
||||
|
||||
// If the location is out of range, calculate a new location within the render distance
|
||||
// Calculate the direction vector from the player to the target
|
||||
Location direction =
|
||||
targetLocation
|
||||
.clone()
|
||||
.subtract(playerLocation)
|
||||
.toVector()
|
||||
.normalize()
|
||||
.toLocation(player.getWorld());
|
||||
|
||||
// Create a new location within the render distance pointing towards the target location
|
||||
return playerLocation.clone().add(direction.multiply(RENDER_DISTANCE_BLOCKS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// get difference between player loc and pointer loc, if it is too large then set pointer
|
||||
// blockdisplay's location to in range of player
|
||||
|
||||
Location location = getLocationInRange(player, pointer.location());
|
||||
|
||||
WrapperPlayServerSpawnEntity packet =
|
||||
new WrapperPlayServerSpawnEntity(
|
||||
pointer.entityId(),
|
||||
pointer.entityUUID(),
|
||||
SpigotConversionUtil.fromBukkitEntityType(EntityType.BLOCK_DISPLAY),
|
||||
SpigotConversionUtil.fromBukkitLocation(location),
|
||||
0,
|
||||
0,
|
||||
null);
|
||||
|
||||
user.sendPacket(packet);
|
||||
|
||||
List<EntityData> list = new ArrayList<>();
|
||||
|
||||
BlockState ironBar =
|
||||
player
|
||||
.getWorld()
|
||||
.getBlockAt(new Location(player.getWorld(), 0, 0, 0))
|
||||
.getState()
|
||||
.getBlockData()
|
||||
.createBlockState();
|
||||
ironBar.setType(Material.IRON_BARS);
|
||||
|
||||
// make it iron bars
|
||||
EntityData data = new EntityData(23, EntityDataTypes.BLOCK_STATE, ironBar);
|
||||
list.add(data);
|
||||
|
||||
// scale
|
||||
EntityData data2 = new EntityData(12, EntityDataTypes.VECTOR3F, new Vector3f(2, 150, 2));
|
||||
list.add(data2);
|
||||
|
||||
// glowing
|
||||
EntityData glowing = new EntityData(0, EntityDataTypes.BYTE, (byte) 0x40);
|
||||
list.add(glowing);
|
||||
|
||||
WrapperPlayServerEntityMetadata packet1 =
|
||||
new WrapperPlayServerEntityMetadata(pointer.entityId(), list);
|
||||
|
||||
user.sendPacket(packet1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package me.unurled.sacredrealms.sr.components.pointer;
|
||||
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.BlockDisplay;
|
||||
|
||||
public class Pointer {
|
||||
|
||||
private final Location location;
|
||||
private final int entityId;
|
||||
private BlockDisplay display;
|
||||
private UUID entityUUID;
|
||||
private Location entityLocation;
|
||||
|
||||
public Pointer(int entityId, Location location) {
|
||||
this.entityId = entityId;
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public Location location() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public int entityId() {
|
||||
return entityId;
|
||||
}
|
||||
|
||||
public BlockDisplay display() {
|
||||
return display;
|
||||
}
|
||||
|
||||
public Pointer setDisplay(BlockDisplay display) {
|
||||
this.display = display;
|
||||
return this;
|
||||
}
|
||||
|
||||
public UUID entityUUID() {
|
||||
return entityUUID;
|
||||
}
|
||||
|
||||
public Pointer setEntityUUID(UUID entityUUID) {
|
||||
this.entityUUID = entityUUID;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Location entityLocation() {
|
||||
return entityLocation;
|
||||
}
|
||||
|
||||
public Pointer setEntityLocation(Location entityLocation) {
|
||||
this.entityLocation = entityLocation;
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package me.unurled.sacredrealms.sr.components.pointer;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
public class PointerManager extends Manager {
|
||||
|
||||
private final Map<UUID, BukkitTask> tasks = new HashMap<>();
|
||||
|
||||
public void startPointing(Player player, Location location) {
|
||||
int id = -1;
|
||||
try {
|
||||
Class<?> entityClass = Class.forName("net.minecraft.world.entity.Entity");
|
||||
Field field = entityClass.getDeclaredField("ENTITY_COUNTER");
|
||||
field.setAccessible(true);
|
||||
AtomicInteger ENTITY_COUNTER = (AtomicInteger) field.get(null);
|
||||
id = ENTITY_COUNTER.incrementAndGet();
|
||||
} catch (Exception e) {
|
||||
error("Failed to find Entity counter field in nms.");
|
||||
}
|
||||
if (id == -1) {
|
||||
return;
|
||||
}
|
||||
Pointer pointer = new Pointer(id, location);
|
||||
DisplayForPlayer task = new DisplayForPlayer(pointer, player);
|
||||
BukkitTask btask =
|
||||
Bukkit.getScheduler().runTaskTimerAsynchronously(SR.getPlugin(), task, 0, 5L);
|
||||
tasks.put(player.getUniqueId(), btask);
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
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);
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.components.treasure;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
|
|
@ -7,12 +7,12 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.item.Item;
|
||||
import me.unurled.sacredrealms.sr.components.item.ItemManager;
|
||||
import me.unurled.sacredrealms.sr.components.item.Rarity;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package me.unurled.sacredrealms.sr.components.treasure;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.log;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
@ -13,11 +13,11 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import javax.annotation.Nullable;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package me.unurled.sacredrealms.sr.config;
|
||||
|
||||
import java.io.File;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
|
@ -14,12 +14,12 @@ public class ConfigManager extends Manager {
|
|||
/** Load the data */
|
||||
@Override
|
||||
public void loadData() {
|
||||
if (!SR.plugin().getDataFolder().exists()) {
|
||||
SR.plugin().getDataFolder().mkdirs();
|
||||
if (!SR.getPlugin().getDataFolder().exists()) {
|
||||
SR.getPlugin().getDataFolder().mkdirs();
|
||||
}
|
||||
File configFile = new File(SR.plugin().getDataFolder(), CONFIG_YML);
|
||||
File configFile = new File(SR.getPlugin().getDataFolder(), CONFIG_YML);
|
||||
if (!configFile.exists()) {
|
||||
SR.plugin().saveResource(CONFIG_YML, false);
|
||||
SR.getPlugin().saveResource(CONFIG_YML, false);
|
||||
config = YamlConfiguration.loadConfiguration(configFile);
|
||||
}
|
||||
config = YamlConfiguration.loadConfiguration(configFile);
|
||||
|
@ -27,10 +27,10 @@ public class ConfigManager extends Manager {
|
|||
|
||||
@Override
|
||||
public void saveData() {
|
||||
if (!new File(SR.plugin().getDataFolder() + CONFIG_YML).exists()) {
|
||||
SR.plugin().saveDefaultConfig();
|
||||
if (!new File(SR.getPlugin().getDataFolder() + CONFIG_YML).exists()) {
|
||||
SR.getPlugin().saveDefaultConfig();
|
||||
} else {
|
||||
SR.plugin().saveConfig();
|
||||
SR.getPlugin().saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
@ -37,9 +37,9 @@ public enum Settings {
|
|||
}
|
||||
|
||||
public void setValue(Object value) {
|
||||
SR.plugin().getConfig().set(path, value);
|
||||
SR.getPlugin().getConfig().set(path, value);
|
||||
try {
|
||||
SR.plugin().getConfig().save(new File(SR.plugin().getDataFolder(), "config.yml"));
|
||||
SR.getPlugin().getConfig().save(new File(SR.getPlugin().getDataFolder(), "config.yml"));
|
||||
} catch (Exception e) {
|
||||
error("Failed to save config.yml");
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.data;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
|
||||
/** The data and config manager */
|
||||
public class DataManager extends Manager {
|
||||
|
|
|
@ -3,10 +3,10 @@ package me.unurled.sacredrealms.sr.data;
|
|||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.config.ConfigManager;
|
||||
import me.unurled.sacredrealms.sr.config.Settings;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import redis.clients.jedis.JedisPooled;
|
||||
|
||||
|
@ -21,7 +21,7 @@ public class Redis implements DataHandler {
|
|||
Integer port = Settings.REDIS_PORT.toInt();
|
||||
if (host == null || port == null) {
|
||||
error("Failed to get Redis host or port from config, shutting down server.");
|
||||
SR.plugin().getServer().shutdown();
|
||||
SR.getPlugin().getServer().shutdown();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
|
@ -29,11 +29,11 @@ public class Redis implements DataHandler {
|
|||
client.get("test");
|
||||
} catch (Exception e) {
|
||||
error("Failed to connect to Redis, shutting down server.");
|
||||
SR.plugin().getServer().shutdown();
|
||||
SR.getPlugin().getServer().shutdown();
|
||||
}
|
||||
} else {
|
||||
error("Failed to get DataManager instance. Can't connect to Redis, shutting down server.");
|
||||
SR.plugin().getServer().shutdown();
|
||||
SR.getPlugin().getServer().shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.events.player;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
|
|
@ -1,34 +1,26 @@
|
|||
package me.unurled.sacredrealms.sr.gui;
|
||||
|
||||
import org.bukkit.Material;
|
||||
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.gui.PagedGui;
|
||||
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 AbstractPagedGuiBoundItem {
|
||||
public class BackItem extends PageItem {
|
||||
|
||||
public BackItem() {}
|
||||
public BackItem() {
|
||||
super(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider(PagedGui<?> gui) {
|
||||
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
|
||||
builder
|
||||
.setCustomName("§cPrevious Page")
|
||||
.setDisplayName("§cPrevious Page")
|
||||
.addLoreLines(
|
||||
this.getGui().getPage() > 1
|
||||
? "§7Go to page §e"
|
||||
+ this.getGui().getPage()
|
||||
+ "§7/§e"
|
||||
+ this.getGui().getPageCount()
|
||||
gui.hasPreviousPage()
|
||||
? "§7Go to page §e" + gui.getCurrentPage() + "§7/§e" + gui.getPageAmount()
|
||||
: "§cYou can't go further back");
|
||||
return builder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {}
|
||||
}
|
||||
|
|
|
@ -1,37 +1,27 @@
|
|||
package me.unurled.sacredrealms.sr.gui;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
|
||||
import org.bukkit.Material;
|
||||
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.gui.PagedGui;
|
||||
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 AbstractPagedGuiBoundItem {
|
||||
public class ForwardItem extends PageItem {
|
||||
|
||||
public ForwardItem() {}
|
||||
public ForwardItem() {
|
||||
super(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player player) {
|
||||
public ItemProvider getItemProvider(PagedGui<?> gui) {
|
||||
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
|
||||
builder
|
||||
.setCustomName(comp("<gray>Next page"))
|
||||
.setDisplayName("§7Next page")
|
||||
.addLoreLines(
|
||||
this.getGui().getPage() + 1 < this.getGui().getPageCount()
|
||||
? comp(
|
||||
"<gray>Go to page §e"
|
||||
+ (this.getGui().getPage() + 2)
|
||||
+ "§7/§e"
|
||||
+ this.getGui().getPageCount())
|
||||
: comp("<red>There are no more pages"));
|
||||
gui.hasNextPage()
|
||||
? "§7Go to page §e" + (gui.getCurrentPage() + 2) + "§7/§e" + gui.getPageAmount()
|
||||
: "§cThere are no more pages");
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleClick(ClickType clickType, Player player, Click click) {}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,24 @@
|
|||
package me.unurled.sacredrealms.sr.gui.attributes;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.inventoryaccess.component.AdventureComponentWrapper;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -27,8 +31,15 @@ public class AttributeItem extends AbstractItem {
|
|||
this.targetPlayer = target;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
|
||||
double value = 0;
|
||||
|
||||
if (targetPlayer != null) {
|
||||
|
@ -39,27 +50,38 @@ public class AttributeItem extends AbstractItem {
|
|||
|
||||
ItemBuilder ip =
|
||||
switch (attribute) {
|
||||
case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setCustomName("Strength " + value);
|
||||
case AGILITY -> new ItemBuilder(Material.BOW).setCustomName("Agility " + value);
|
||||
case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setCustomName("Mana " + value);
|
||||
case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setCustomName("Health " + value);
|
||||
case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setDisplayName("Strength " + value);
|
||||
case AGILITY -> new ItemBuilder(Material.BOW).setDisplayName("Agility " + value);
|
||||
case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setDisplayName("Mana " + value);
|
||||
case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setDisplayName("Health " + value);
|
||||
case LUCK ->
|
||||
new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setCustomName("Luck " + value);
|
||||
case DEFENSE -> new ItemBuilder(Material.SHIELD).setCustomName("Defense " + value);
|
||||
case CHARISMA -> new ItemBuilder(Material.PLAYER_HEAD).setCustomName("Charisma " + value);
|
||||
new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setDisplayName("Luck " + value);
|
||||
case DEFENSE -> new ItemBuilder(Material.SHIELD).setDisplayName("Defense " + value);
|
||||
case CHARISMA ->
|
||||
new ItemBuilder(Material.PLAYER_HEAD).setDisplayName("Charisma " + value);
|
||||
};
|
||||
|
||||
ip.addLoreLines(comp("<green><b>+1</b> Left Click to increase"));
|
||||
ip.addLoreLines(comp("<red><b>-1</b> Right Click to decrease"));
|
||||
ip.addLoreLines(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("<green><b>+1</b> Left Click to increase")));
|
||||
ip.addLoreLines(new AdventureComponentWrapper(comp("<red><b>-1</b> Right Click to decrease")));
|
||||
ip.addLoreLines(
|
||||
new AdventureComponentWrapper(comp("<gray>Shift + Left Click to increase by 10")));
|
||||
ip.addLoreLines(
|
||||
new AdventureComponentWrapper(comp("<gray>Shift + Right Click to decrease by 10")));
|
||||
|
||||
return ip;
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
|
||||
if (targetPlayer != null) {
|
||||
PlayerManager playerManager = Manager.getInstance(PlayerManager.class);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package me.unurled.sacredrealms.sr.gui.attributes;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import org.bukkit.Material;
|
||||
|
@ -8,8 +8,9 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import xyz.xenondevs.invui.gui.Gui;
|
||||
import xyz.xenondevs.invui.gui.Gui.Builder;
|
||||
import xyz.xenondevs.invui.gui.Gui.Builder.Normal;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
||||
|
||||
public class AttributesGUI {
|
||||
|
||||
|
@ -19,9 +20,9 @@ public class AttributesGUI {
|
|||
tMeta.setOwningPlayer(target);
|
||||
tMeta.displayName(comp(target.getName()));
|
||||
t.setItemMeta(tMeta);
|
||||
Item head = Item.simple(t);
|
||||
Builder<?, ?> gui =
|
||||
Gui.builder()
|
||||
Item head = new SimpleItem(t);
|
||||
Normal gui =
|
||||
Gui.normal()
|
||||
.setStructure(".........", "....h....", ".........", ".0123456.")
|
||||
.addIngredient('h', head);
|
||||
for (int i = 0; i < Attribute.values().length; i++) {
|
||||
|
|
|
@ -6,15 +6,16 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
|
|||
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.gui.Gui;
|
||||
import xyz.xenondevs.invui.gui.Gui.Builder;
|
||||
import xyz.xenondevs.invui.gui.Gui.Builder.Normal;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
||||
|
||||
public class DifficultyGUI {
|
||||
public static @NotNull Gui createGui() {
|
||||
Item cancel = Item.simple(cancelItem());
|
||||
Item glass = Item.simple(glassPane());
|
||||
Builder<?, ?> gui =
|
||||
Gui.builder()
|
||||
Item cancel = new SimpleItem(cancelItem());
|
||||
Item glass = new SimpleItem(glassPane());
|
||||
Normal gui =
|
||||
Gui.normal()
|
||||
.setStructure(".........", "..1.2.3..", "....4....", "....5....")
|
||||
.addIngredient('5', cancel)
|
||||
.addIngredient('.', glass)
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
package me.unurled.sacredrealms.sr.gui.difficulty;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -21,12 +24,18 @@ public class DifficultyItem extends AbstractItem {
|
|||
this.difficulty = difficulty;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
return switch (difficulty) {
|
||||
case EASY ->
|
||||
new ItemBuilder(Material.BREAD)
|
||||
.setCustomName("Easy")
|
||||
.setDisplayName("Easy")
|
||||
.addLoreLines(
|
||||
"Is you are a new player or",
|
||||
"someone who just want to",
|
||||
|
@ -35,7 +44,7 @@ public class DifficultyItem extends AbstractItem {
|
|||
"Click Here!");
|
||||
case NORMAL ->
|
||||
new ItemBuilder(Material.GRASS_BLOCK)
|
||||
.setCustomName("Normal")
|
||||
.setDisplayName("Normal")
|
||||
.addLoreLines(
|
||||
"Is you are a regular player",
|
||||
"who want to enjoy the game",
|
||||
|
@ -44,7 +53,7 @@ public class DifficultyItem extends AbstractItem {
|
|||
"Click Here!");
|
||||
case HARD ->
|
||||
new ItemBuilder(Material.DIAMOND_SWORD)
|
||||
.setCustomName("Hard")
|
||||
.setDisplayName("Hard")
|
||||
.addLoreLines(
|
||||
"Is you are a hardcore player",
|
||||
"who want to enjoy the game",
|
||||
|
@ -53,7 +62,7 @@ public class DifficultyItem extends AbstractItem {
|
|||
"Click Here!");
|
||||
case INSANE ->
|
||||
new ItemBuilder(Material.NETHERITE_SWORD)
|
||||
.setCustomName("Insane")
|
||||
.setDisplayName("Insane")
|
||||
.addLoreLines(
|
||||
"Is you are a pro player",
|
||||
"who want to enjoy the game",
|
||||
|
@ -64,9 +73,18 @@ public class DifficultyItem extends AbstractItem {
|
|||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
// Set the player's difficulty
|
||||
PlayerManager pm = Manager.getInstance(PlayerManager.class);
|
||||
if (pm.isSRPlayer(player.getUniqueId())) {
|
||||
SRPlayer sr = pm.getPlayer(player.getUniqueId());
|
||||
|
|
|
@ -8,12 +8,14 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -55,14 +57,28 @@ public class EntityArmorItem extends AbstractItem {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(stack);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,14 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -18,14 +21,28 @@ public class EntityBehaviorItem extends AbstractItem {
|
|||
// behavior = type.getBehavior();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.NETHERITE_SWORD).setCustomName("Behavior: " + behavior);
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.NETHERITE_SWORD).setDisplayName("Behavior: " + behavior);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,28 +4,45 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
import xyz.xenondevs.invui.window.Window;
|
||||
|
||||
public class EntityExpItem extends AbstractItem {
|
||||
|
||||
private final Long exp;
|
||||
|
||||
public EntityExpItem(@NotNull SREntityType type) {
|
||||
public EntityExpItem(SREntityType type) {
|
||||
exp = type.getExperience();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setCustomName("Experience: " + exp);
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setDisplayName("Experience: " + exp);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,14 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -18,14 +21,28 @@ public class EntityItemDisplay extends AbstractItem {
|
|||
name = type.getItem().getType().name();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setCustomName("Item Display: " + name);
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setDisplayName("Item Display: " + name);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,28 +4,45 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
import xyz.xenondevs.invui.window.Window;
|
||||
|
||||
public class EntityLevelItem extends AbstractItem {
|
||||
|
||||
private final int level;
|
||||
|
||||
public EntityLevelItem(@NotNull SREntityType type) {
|
||||
public EntityLevelItem(SREntityType type) {
|
||||
level = type.getLevel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.DIAMOND).setCustomName("Level: " + level);
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.DIAMOND).setDisplayName("Level: " + level);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,22 +3,39 @@ package me.unurled.sacredrealms.sr.gui.entitytype;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
import xyz.xenondevs.invui.window.Window;
|
||||
|
||||
public class EntityLootItem extends AbstractItem {
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.SKELETON_SKULL).setCustomName("Death Loot");
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.SKELETON_SKULL).setDisplayName("Death Loot");
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,28 +4,45 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
import xyz.xenondevs.invui.window.Window;
|
||||
|
||||
public class EntityNameItem extends AbstractItem {
|
||||
|
||||
private final String name;
|
||||
|
||||
public EntityNameItem(@NotNull SREntityType type) {
|
||||
public EntityNameItem(SREntityType type) {
|
||||
name = type.getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.NAME_TAG).setCustomName(name);
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.NAME_TAG).setDisplayName(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,11 +7,14 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -21,18 +24,32 @@ public class EntityStatsItem extends AbstractItem {
|
|||
attributes = type.getAttributes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
ItemBuilder builder = new ItemBuilder(Material.APPLE).setCustomName("Add Stats");
|
||||
public ItemProvider getItemProvider() {
|
||||
ItemBuilder builder = new ItemBuilder(Material.APPLE).setDisplayName("Add Stats");
|
||||
for (Entry<Attribute, Double> entry : attributes.entrySet()) {
|
||||
builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue());
|
||||
}
|
||||
return builder;
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
/* TODO need to implements this */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,18 +2,19 @@ package me.unurled.sacredrealms.sr.gui.entitytype;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.EntityManager;
|
||||
import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||
import me.unurled.sacredrealms.sr.gui.BackItem;
|
||||
import me.unurled.sacredrealms.sr.gui.ForwardItem;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.gui.Gui;
|
||||
import xyz.xenondevs.invui.gui.Markers;
|
||||
import xyz.xenondevs.invui.gui.PagedGui;
|
||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
||||
|
||||
public class EntityTypeGUI {
|
||||
private EntityTypeGUI() {}
|
||||
|
@ -22,10 +23,10 @@ public class EntityTypeGUI {
|
|||
EntityManager em = Manager.getInstance(EntityManager.class);
|
||||
List<Item> list = new ArrayList<>();
|
||||
for (SREntityType type : em.getTypes()) {
|
||||
Item simpleItem = Item.simple(new ItemBuilder(type.getItem()));
|
||||
SimpleItem simpleItem = new SimpleItem(new ItemBuilder(type.getItem()));
|
||||
list.add(simpleItem);
|
||||
}
|
||||
return PagedGui.itemsBuilder()
|
||||
return PagedGui.items()
|
||||
.setStructure(
|
||||
"# # # # # # # # #",
|
||||
"# X X X X X X X #",
|
||||
|
@ -42,9 +43,9 @@ public class EntityTypeGUI {
|
|||
public static @NotNull Gui createGui(SREntityType type) {
|
||||
|
||||
Item border =
|
||||
Item.simple(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setCustomName("§r"));
|
||||
new SimpleItem(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setDisplayName("§r"));
|
||||
|
||||
return Gui.builder()
|
||||
return Gui.normal()
|
||||
.setStructure(
|
||||
"# # # # # # # # #",
|
||||
"# T V O I S N L #", // Type, behaVior, lOot, Item display, Stats, Name, Level
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
package me.unurled.sacredrealms.sr.gui.entitytype;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -21,21 +24,35 @@ public class EntityTypeItem extends AbstractItem {
|
|||
this.type = type.getType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setCustomName(type.name());
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setDisplayName(type.name());
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
player.closeInventory();
|
||||
player.sendMessage(
|
||||
comp(
|
||||
"<click:suggest_command:/entitytype edit "
|
||||
+ player.getOpenInventory().title()
|
||||
+ event.getView().title()
|
||||
+ " type > entitytype edit "
|
||||
+ player.getOpenInventory().title()
|
||||
+ event.getView().title()
|
||||
+ "type"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,26 +1,25 @@
|
|||
package me.unurled.sacredrealms.sr.gui.recordings;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
|
||||
public class CutsceneItem extends AbstractItem {
|
||||
|
||||
|
@ -31,11 +30,11 @@ public class CutsceneItem extends AbstractItem {
|
|||
public CutsceneItem(String name, UUID uuid) {
|
||||
this.name = name;
|
||||
this.uuid = uuid;
|
||||
ID = new NamespacedKey(SR.plugin(), "cutscene_id");
|
||||
ID = new NamespacedKey(SR.getPlugin(), "cutscene_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
ItemStack itemStack = new ItemStack(Material.PAPER);
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.displayName(textComp(name));
|
||||
|
@ -47,15 +46,18 @@ public class CutsceneItem extends AbstractItem {
|
|||
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
// get uuid
|
||||
error(
|
||||
"Click on CutsceneItem.java: "
|
||||
+ this.uuid
|
||||
+ " by "
|
||||
+ player.getName()
|
||||
+ " it may misfire or fire for the wrong cutscene, I am not sure about the uuid handling here.");
|
||||
Cutscene cutscene = Manager.getInstance(CutsceneManager.class).findByUUID(this.uuid);
|
||||
if (event.getCurrentItem() != null) {
|
||||
String uuid =
|
||||
event
|
||||
.getCurrentItem()
|
||||
.getItemMeta()
|
||||
.getPersistentDataContainer()
|
||||
.get(ID, PersistentDataType.STRING);
|
||||
|
||||
Cutscene cutscene =
|
||||
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
|
||||
|
||||
if (cutscene == null) {
|
||||
player.sendMessage(textComp("<red>Unexpected error."));
|
||||
|
@ -66,3 +68,4 @@ public class CutsceneItem extends AbstractItem {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,17 +4,17 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
|
||||
import me.unurled.sacredrealms.sr.gui.BackItem;
|
||||
import me.unurled.sacredrealms.sr.gui.ForwardItem;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.gui.Gui;
|
||||
import xyz.xenondevs.invui.gui.Markers;
|
||||
import xyz.xenondevs.invui.gui.PagedGui;
|
||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
|
||||
public class StartRecordingGui {
|
||||
private StartRecordingGui() {}
|
||||
|
@ -28,7 +28,7 @@ public class StartRecordingGui {
|
|||
items.add(item);
|
||||
}
|
||||
|
||||
return PagedGui.itemsBuilder()
|
||||
return PagedGui.items()
|
||||
.setStructure(
|
||||
"# # # # # # # # #",
|
||||
"# X X X X X X X #",
|
||||
|
|
|
@ -4,17 +4,17 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Replay;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.ReplayManager;
|
||||
import me.unurled.sacredrealms.sr.gui.BackItem;
|
||||
import me.unurled.sacredrealms.sr.gui.ForwardItem;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.gui.Gui;
|
||||
import xyz.xenondevs.invui.gui.Markers;
|
||||
import xyz.xenondevs.invui.gui.PagedGui;
|
||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
|
||||
public class ReplayGui {
|
||||
private ReplayGui() {}
|
||||
|
@ -25,7 +25,7 @@ public class ReplayGui {
|
|||
List<Item> items = new ArrayList<>();
|
||||
for (Replay r : rm.replays()) {}
|
||||
|
||||
return PagedGui.itemsBuilder()
|
||||
return PagedGui.items()
|
||||
.setStructure(
|
||||
"# # # # # # # # #",
|
||||
"# X X X X X X X #",
|
||||
|
|
|
@ -1,26 +1,25 @@
|
|||
package me.unurled.sacredrealms.sr.gui.replay;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.error;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.util.UUID;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.Cutscene;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.CutsceneManager;
|
||||
import me.unurled.sacredrealms.sr.components.cutscene.RecordingManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
|
||||
public class ReplayItem extends AbstractItem {
|
||||
private static NamespacedKey ID = null;
|
||||
|
@ -28,13 +27,13 @@ public class ReplayItem extends AbstractItem {
|
|||
private final UUID uuid;
|
||||
|
||||
public ReplayItem(String name, UUID uuid) {
|
||||
ID = new NamespacedKey(SR.plugin(), "cutscene_id");
|
||||
ID = new NamespacedKey(SR.getPlugin(), "cutscene_id");
|
||||
this.name = name;
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
ItemStack itemStack = new ItemStack(Material.PAPER);
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.displayName(textComp(name));
|
||||
|
@ -45,19 +44,21 @@ public class ReplayItem extends AbstractItem {
|
|||
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
error(
|
||||
"Click on CutsceneItem.java: "
|
||||
+ this.uuid
|
||||
+ " by "
|
||||
+ player.getName()
|
||||
+ " it may misfire or fire for the wrong cutscene, I am not sure about the uuid handling here.");
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
if (event.getCurrentItem() != null) {
|
||||
String uuid =
|
||||
event
|
||||
.getCurrentItem()
|
||||
.getItemMeta()
|
||||
.getPersistentDataContainer()
|
||||
.get(ID, PersistentDataType.STRING);
|
||||
|
||||
if (uuid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Cutscene cutscene = Manager.getInstance(CutsceneManager.class).findByUUID(this.uuid);
|
||||
Cutscene cutscene =
|
||||
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
|
||||
|
||||
if (cutscene == null) {
|
||||
player.sendMessage(textComp("<red>Unexpected error."));
|
||||
|
@ -68,3 +69,4 @@ public class ReplayItem extends AbstractItem {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,26 +2,44 @@ package me.unurled.sacredrealms.sr.gui.treasure;
|
|||
|
||||
import static me.unurled.sacredrealms.sr.utils.Items.cancelItem;
|
||||
|
||||
import me.unurled.sacredrealms.sr.components.treasure.Treasure;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
||||
import xyz.xenondevs.invui.window.Window;
|
||||
|
||||
public class CancelItem extends AbstractItem {
|
||||
|
||||
public CancelItem() {}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
return new ItemBuilder(cancelItem());
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
player.closeInventory();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
package me.unurled.sacredrealms.sr.gui.treasure;
|
||||
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
import static me.unurled.sacredrealms.sr.utils.Logger.log;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.Treasure;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -27,8 +29,14 @@ public class ConfirmItem extends AbstractItem {
|
|||
this.treasure = treasure;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE);
|
||||
ItemMeta confirmMeta = confirm.getItemMeta();
|
||||
confirmMeta.displayName(textComp("<b><green>Confirm</green></b>"));
|
||||
|
@ -36,16 +44,28 @@ public class ConfirmItem extends AbstractItem {
|
|||
return new ItemBuilder(confirm);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
Map<Integer, ItemStack> items = new HashMap<>();
|
||||
for (int i = 0; i < player.getInventory().getContents().length; i++) {
|
||||
if (i < 9 || i > 35) {
|
||||
log("Skipping slot " + i);
|
||||
continue;
|
||||
}
|
||||
ItemStack content = player.getOpenInventory().getItem(i);
|
||||
if (event.getClickedInventory() == null) {
|
||||
log("Clicked inventory is null");
|
||||
continue;
|
||||
}
|
||||
ItemStack content = event.getClickedInventory().getItem(i);
|
||||
if (content != null && content.getType() != Material.AIR) {
|
||||
items.put(i, content);
|
||||
log("Added item to items: " + content + " at slot " + i);
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
package me.unurled.sacredrealms.sr.gui.treasure;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.Treasure;
|
||||
import me.unurled.sacredrealms.sr.components.treasure.TreasureManager;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.xenondevs.invui.Click;
|
||||
import xyz.xenondevs.invui.item.AbstractItem;
|
||||
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
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 {
|
||||
|
||||
|
@ -24,8 +26,14 @@ public class DeleteItem extends AbstractItem {
|
|||
this.treasure = treasure;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
||||
* ({@link #notifyWindows()}).
|
||||
*
|
||||
* @return The {@link ItemProvider}
|
||||
*/
|
||||
@Override
|
||||
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||
public ItemProvider getItemProvider() {
|
||||
ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE);
|
||||
ItemMeta deleteMeta = delete.getItemMeta();
|
||||
deleteMeta.displayName(textComp("<b><red>Delete</red></b>"));
|
||||
|
@ -33,9 +41,17 @@ public class DeleteItem extends AbstractItem {
|
|||
return new ItemBuilder(delete);
|
||||
}
|
||||
|
||||
/**
|
||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
||||
* player.
|
||||
*
|
||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
||||
*/
|
||||
@Override
|
||||
public void handleClick(
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||
// delete treasure
|
||||
if (!player.hasPermission("sr.treasure.delete")) {
|
||||
return;
|
||||
|
|
|
@ -11,6 +11,7 @@ import xyz.xenondevs.invui.inventory.Inventory;
|
|||
import xyz.xenondevs.invui.inventory.VirtualInventory;
|
||||
import xyz.xenondevs.invui.inventory.event.UpdateReason;
|
||||
import xyz.xenondevs.invui.item.Item;
|
||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
||||
|
||||
public class TreasureGUI {
|
||||
|
||||
|
@ -19,10 +20,10 @@ public class TreasureGUI {
|
|||
@NotNull
|
||||
public static Gui createGui(@NotNull Treasure treasure) {
|
||||
ItemStack itemStack = glassPane();
|
||||
Item pane = Item.simple(itemStack);
|
||||
Item pane = new SimpleItem(itemStack);
|
||||
|
||||
Inventory inventory = new VirtualInventory(27);
|
||||
inventory.addPreUpdateHandler(
|
||||
inventory.setPreUpdateHandler(
|
||||
(itemPreUpdateEvent) -> {
|
||||
if (itemPreUpdateEvent.isAdd()
|
||||
|| itemPreUpdateEvent.isRemove()
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
package me.unurled.sacredrealms.sr.utils;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.textComp;
|
||||
import static me.unurled.srcore.utils.Component.textComp;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.kyori.adventure.title.Title;
|
||||
import net.kyori.adventure.title.Title.Times;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
package me.unurled.sacredrealms.sr.utils;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer;
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
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 com.google.gson.JsonElement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.item.Item;
|
||||
import me.unurled.sacredrealms.sr.components.item.ItemManager;
|
||||
|
@ -17,6 +16,7 @@ import me.unurled.sacredrealms.sr.components.item.ItemStackDeserializer;
|
|||
import me.unurled.sacredrealms.sr.components.item.ItemStackSerializer;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
@ -3,7 +3,6 @@ package me.unurled.sacredrealms.sr.utils;
|
|||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.logger.slf4j.ComponentLogger;
|
||||
|
||||
/** The LoggerUtils class is a class that is used to log messages to the console. */
|
||||
public class Logger {
|
||||
|
||||
private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("SR");
|
||||
|
@ -11,56 +10,26 @@ public class Logger {
|
|||
|
||||
private Logger() {}
|
||||
|
||||
/**
|
||||
* Log a message to the console
|
||||
*
|
||||
* @param message the message to log
|
||||
*/
|
||||
public static void log(String message) {
|
||||
logger.info(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a warning to the console
|
||||
*
|
||||
* @param message the message to log
|
||||
*/
|
||||
public static void warn(String message) {
|
||||
logger.warning(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log an error to the console
|
||||
*
|
||||
* @param message the message to log
|
||||
*/
|
||||
public static void error(String message) {
|
||||
logger.severe(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a message to the console
|
||||
*
|
||||
* @param message the message to log
|
||||
*/
|
||||
public static void log(Component message) {
|
||||
componentLogger.info(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a warning to the console
|
||||
*
|
||||
* @param message the message to log
|
||||
*/
|
||||
public static void warn(Component message) {
|
||||
componentLogger.warn(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log an error to the console
|
||||
*
|
||||
* @param message the message to log
|
||||
*/
|
||||
public static void error(Component message) {
|
||||
componentLogger.error(message);
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package me.unurled.sacredrealms.sr.utils;
|
||||
|
||||
import static me.unurled.sacredrealms.sr.utils.component.Component.comp;
|
||||
import static me.unurled.srcore.utils.Component.comp;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import me.unurled.sacredrealms.sr.Manager;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||
import me.unurled.sacredrealms.sr.components.player.SRPlayer;
|
||||
import me.unurled.srcore.api.Manager;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.entity.Display;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
@ -40,9 +40,11 @@ public class SRPlayerUtils {
|
|||
float value = (float) ((speed + items) / 500.0f);
|
||||
value = Math.min(value, 1.0f);
|
||||
value = Math.max(value, 0f);
|
||||
AttributeInstance attribute1 = p.getAttribute(org.bukkit.attribute.Attribute.MOVEMENT_SPEED);
|
||||
AttributeInstance attribute1 =
|
||||
p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED);
|
||||
if (attribute1 != null) attribute1.setBaseValue(value);
|
||||
AttributeInstance attribute2 = p.getAttribute(org.bukkit.attribute.Attribute.FLYING_SPEED);
|
||||
AttributeInstance attribute2 =
|
||||
p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED);
|
||||
if (attribute2 != null) attribute2.setBaseValue(value);
|
||||
p.setFlySpeed(value);
|
||||
p.setWalkSpeed(value);
|
||||
|
@ -55,7 +57,7 @@ public class SRPlayerUtils {
|
|||
// default is 100 so 20
|
||||
double health =
|
||||
(sr.getAttribute(Attribute.HEALTH) + sr.getTotalItemAttribute(Attribute.HEALTH)) / 5;
|
||||
AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.MAX_HEALTH);
|
||||
AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH);
|
||||
if (attribute != null) attribute.setBaseValue(health);
|
||||
p.sendHealthUpdate();
|
||||
p.updateInventory();
|
||||
|
@ -127,6 +129,6 @@ public class SRPlayerUtils {
|
|||
}
|
||||
height++;
|
||||
}
|
||||
}.runTaskTimer(SR.plugin(), 0, 1);
|
||||
}.runTaskTimer(SR.getPlugin(), 0, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
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);
|
||||
}
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
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;
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
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>
|
Loading…
Add table
Add a link
Reference in a new issue