fix: switch to 2.0 invui and update of minecraft version
This commit is contained in:
parent
41ae6a2572
commit
b157836887
31 changed files with 233 additions and 465 deletions
|
@ -2,12 +2,11 @@ import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
id("io.papermc.paperweight.userdev") version "1.7.3"
|
id("io.papermc.paperweight.userdev") version "2.0.0-beta.10"
|
||||||
id("org.sonarqube") version "5.1.0.4882"
|
id("org.sonarqube") version "6.0.1.5171"
|
||||||
id("net.minecrell.plugin-yml.paper") version "0.6.0"
|
id("de.eldoria.plugin-yml.paper") version "0.6.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
// from 1.20.5+ upward, spigot is not supported
|
|
||||||
paperweight.reobfArtifactConfiguration =
|
paperweight.reobfArtifactConfiguration =
|
||||||
io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
||||||
|
|
||||||
|
@ -15,13 +14,14 @@ group = "me.unurled.sacredrealms"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "The main SR plugin."
|
description = "The main SR plugin."
|
||||||
|
|
||||||
val mcVersion = "1.21.1-R0.1-SNAPSHOT"
|
val mcVersion = "1.21.4-R0.1-SNAPSHOT"
|
||||||
val redisVersion = "5.2.0-beta4"
|
val redisVersion = "5.2.0-beta4"
|
||||||
val invuiVersion = "1.36"
|
val invuiVersion = "2.0.0-alpha.6"
|
||||||
val gsonVersion = "2.11.0"
|
val gsonVersion = "2.11.0"
|
||||||
val srcoreVersion = "0.1.2"
|
val srcoreVersion = "0.2.0"
|
||||||
|
val packeteventsVersion = "2.7.0"
|
||||||
|
|
||||||
val javaVersion = 21
|
val javaVersion = 23
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
@ -52,7 +52,7 @@ dependencies {
|
||||||
|
|
||||||
paperLibrary("redis.clients", "jedis", redisVersion)
|
paperLibrary("redis.clients", "jedis", redisVersion)
|
||||||
|
|
||||||
paperLibrary("com.github.retrooper", "packetevents-spigot", "2.5.0")
|
paperLibrary("com.github.retrooper", "packetevents-spigot", packeteventsVersion)
|
||||||
|
|
||||||
compileOnly("me.unurled:SR-Core:${srcoreVersion}")
|
compileOnly("me.unurled:SR-Core:${srcoreVersion}")
|
||||||
}
|
}
|
||||||
|
|
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
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
7
gradlew
vendored
7
gradlew
vendored
|
@ -15,6 +15,8 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
|
@ -55,7 +57,7 @@
|
||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
|
@ -84,7 +86,8 @@ done
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
|
||||||
|
' "$PWD" ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
|
|
22
gradlew.bat
vendored
22
gradlew.bat
vendored
|
@ -13,6 +13,8 @@
|
||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
|
@rem SPDX-License-Identifier: Apache-2.0
|
||||||
|
@rem
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
|
@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,12 @@ public class SRLoader implements PluginLoader {
|
||||||
public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) {
|
public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) {
|
||||||
MavenLibraryResolver resolver = new MavenLibraryResolver();
|
MavenLibraryResolver resolver = new MavenLibraryResolver();
|
||||||
resolver.addDependency(
|
resolver.addDependency(
|
||||||
new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:1.36"), null));
|
new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:2.0.0-alpha.6"), null));
|
||||||
resolver.addRepository(
|
resolver.addRepository(
|
||||||
new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/")
|
new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
resolver.addDependency(new Dependency(new DefaultArtifact("me.unurled:SR-Core:0.1.1"), null));
|
resolver.addDependency(new Dependency(new DefaultArtifact("me.unurled:SR-Core:0.2.0"), null));
|
||||||
resolver.addRepository(
|
resolver.addRepository(
|
||||||
new RemoteRepository.Builder("srcore", "default", "https://repo.unurled.me/releases")
|
new RemoteRepository.Builder("srcore", "default", "https://repo.unurled.me/releases")
|
||||||
.build());
|
.build());
|
||||||
|
|
|
@ -1,26 +1,34 @@
|
||||||
package me.unurled.sacredrealms.sr.gui;
|
package me.unurled.sacredrealms.sr.gui;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import xyz.xenondevs.invui.gui.PagedGui;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import xyz.xenondevs.invui.item.AbstractPagedGuiBoundItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.controlitem.PageItem;
|
|
||||||
|
|
||||||
public class BackItem extends PageItem {
|
public class BackItem extends AbstractPagedGuiBoundItem {
|
||||||
|
|
||||||
public BackItem() {
|
public BackItem() {}
|
||||||
super(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider(PagedGui<?> gui) {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
|
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
|
||||||
builder
|
builder
|
||||||
.setDisplayName("§cPrevious Page")
|
.setCustomName("§cPrevious Page")
|
||||||
.addLoreLines(
|
.addLoreLines(
|
||||||
gui.hasPreviousPage()
|
this.getGui().hasPreviousPage()
|
||||||
? "§7Go to page §e" + gui.getCurrentPage() + "§7/§e" + gui.getPageAmount()
|
? "§7Go to page §e"
|
||||||
|
+ this.getGui().getPage()
|
||||||
|
+ "§7/§e"
|
||||||
|
+ this.getGui().getPageAmount()
|
||||||
: "§cYou can't go further back");
|
: "§cYou can't go further back");
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleClick(
|
||||||
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,38 @@
|
||||||
package me.unurled.sacredrealms.sr.gui;
|
package me.unurled.sacredrealms.sr.gui;
|
||||||
|
|
||||||
|
import static me.unurled.srcore.utils.Component.comp;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import xyz.xenondevs.invui.gui.PagedGui;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import xyz.xenondevs.invui.item.AbstractPagedGuiBoundItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.controlitem.PageItem;
|
|
||||||
|
|
||||||
public class ForwardItem extends PageItem {
|
public class ForwardItem extends AbstractPagedGuiBoundItem {
|
||||||
|
|
||||||
public ForwardItem() {
|
public ForwardItem() {}
|
||||||
super(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider(PagedGui<?> gui) {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player player) {
|
||||||
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
|
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
|
||||||
builder
|
builder
|
||||||
.setDisplayName("§7Next page")
|
.setCustomName(comp("<gray>Next page"))
|
||||||
.addLoreLines(
|
.addLoreLines(
|
||||||
gui.hasNextPage()
|
this.getGui().hasNextPage()
|
||||||
? "§7Go to page §e" + (gui.getCurrentPage() + 2) + "§7/§e" + gui.getPageAmount()
|
? comp(
|
||||||
: "§cThere are no more pages");
|
"<gray>Go to page §e"
|
||||||
|
+ (this.getGui().getPage() + 2)
|
||||||
|
+ "§7/§e"
|
||||||
|
+ this.getGui().getPageAmount())
|
||||||
|
: comp("<red>There are no more pages"));
|
||||||
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleClick(
|
||||||
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package me.unurled.sacredrealms.sr.gui.attributes;
|
package me.unurled.sacredrealms.sr.gui.attributes;
|
||||||
|
|
||||||
import static me.unurled.srcore.utils.Component.comp;
|
|
||||||
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer;
|
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer;
|
||||||
|
import static me.unurled.srcore.utils.Component.comp;
|
||||||
|
|
||||||
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
|
||||||
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
import me.unurled.sacredrealms.sr.components.player.PlayerManager;
|
||||||
|
@ -10,15 +10,11 @@ import me.unurled.srcore.api.Manager;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.inventoryaccess.component.AdventureComponentWrapper;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class AttributeItem extends AbstractItem {
|
public class AttributeItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -31,15 +27,8 @@ public class AttributeItem extends AbstractItem {
|
||||||
this.targetPlayer = target;
|
this.targetPlayer = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
|
|
||||||
double value = 0;
|
double value = 0;
|
||||||
|
|
||||||
if (targetPlayer != null) {
|
if (targetPlayer != null) {
|
||||||
|
@ -50,38 +39,27 @@ public class AttributeItem extends AbstractItem {
|
||||||
|
|
||||||
ItemBuilder ip =
|
ItemBuilder ip =
|
||||||
switch (attribute) {
|
switch (attribute) {
|
||||||
case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setDisplayName("Strength " + value);
|
case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setCustomName("Strength " + value);
|
||||||
case AGILITY -> new ItemBuilder(Material.BOW).setDisplayName("Agility " + value);
|
case AGILITY -> new ItemBuilder(Material.BOW).setCustomName("Agility " + value);
|
||||||
case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setDisplayName("Mana " + value);
|
case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setCustomName("Mana " + value);
|
||||||
case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setDisplayName("Health " + value);
|
case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setCustomName("Health " + value);
|
||||||
case LUCK ->
|
case LUCK ->
|
||||||
new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setDisplayName("Luck " + value);
|
new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setCustomName("Luck " + value);
|
||||||
case DEFENSE -> new ItemBuilder(Material.SHIELD).setDisplayName("Defense " + value);
|
case DEFENSE -> new ItemBuilder(Material.SHIELD).setCustomName("Defense " + value);
|
||||||
case CHARISMA ->
|
case CHARISMA -> new ItemBuilder(Material.PLAYER_HEAD).setCustomName("Charisma " + value);
|
||||||
new ItemBuilder(Material.PLAYER_HEAD).setDisplayName("Charisma " + value);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ip.addLoreLines(new AdventureComponentWrapper(comp("<green><b>+1</b> Left Click to increase")));
|
ip.addLoreLines(comp("<green><b>+1</b> Left Click to increase"));
|
||||||
ip.addLoreLines(new AdventureComponentWrapper(comp("<red><b>-1</b> Right Click to decrease")));
|
ip.addLoreLines(comp("<red><b>-1</b> Right Click to decrease"));
|
||||||
ip.addLoreLines(
|
ip.addLoreLines(comp("<gray>Shift + Left Click to increase by 10"));
|
||||||
new AdventureComponentWrapper(comp("<gray>Shift + Left Click to increase by 10")));
|
ip.addLoreLines(comp("<gray>Shift + Right Click to decrease by 10"));
|
||||||
ip.addLoreLines(
|
|
||||||
new AdventureComponentWrapper(comp("<gray>Shift + Right Click to decrease by 10")));
|
|
||||||
|
|
||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
|
|
||||||
if (targetPlayer != null) {
|
if (targetPlayer != null) {
|
||||||
PlayerManager playerManager = Manager.getInstance(PlayerManager.class);
|
PlayerManager playerManager = Manager.getInstance(PlayerManager.class);
|
||||||
|
|
|
@ -8,9 +8,8 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
import xyz.xenondevs.invui.gui.Gui;
|
import xyz.xenondevs.invui.gui.Gui;
|
||||||
import xyz.xenondevs.invui.gui.Gui.Builder.Normal;
|
import xyz.xenondevs.invui.gui.Gui.Builder;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
|
||||||
|
|
||||||
public class AttributesGUI {
|
public class AttributesGUI {
|
||||||
|
|
||||||
|
@ -20,8 +19,8 @@ public class AttributesGUI {
|
||||||
tMeta.setOwningPlayer(target);
|
tMeta.setOwningPlayer(target);
|
||||||
tMeta.displayName(comp(target.getName()));
|
tMeta.displayName(comp(target.getName()));
|
||||||
t.setItemMeta(tMeta);
|
t.setItemMeta(tMeta);
|
||||||
Item head = new SimpleItem(t);
|
Item head = Item.simple(t);
|
||||||
Normal gui =
|
Builder<?, ?> gui =
|
||||||
Gui.normal()
|
Gui.normal()
|
||||||
.setStructure(".........", "....h....", ".........", ".0123456.")
|
.setStructure(".........", "....h....", ".........", ".0123456.")
|
||||||
.addIngredient('h', head);
|
.addIngredient('h', head);
|
||||||
|
|
|
@ -6,15 +6,14 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane;
|
||||||
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
|
import me.unurled.sacredrealms.sr.components.difficulty.Difficulty;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.gui.Gui;
|
import xyz.xenondevs.invui.gui.Gui;
|
||||||
import xyz.xenondevs.invui.gui.Gui.Builder.Normal;
|
import xyz.xenondevs.invui.gui.Gui.Builder;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
|
||||||
|
|
||||||
public class DifficultyGUI {
|
public class DifficultyGUI {
|
||||||
public static @NotNull Gui createGui() {
|
public static @NotNull Gui createGui() {
|
||||||
Item cancel = new SimpleItem(cancelItem());
|
Item cancel = Item.simple(cancelItem());
|
||||||
Item glass = new SimpleItem(glassPane());
|
Item glass = Item.simple(glassPane());
|
||||||
Normal gui =
|
Builder<?, ?> gui =
|
||||||
Gui.normal()
|
Gui.normal()
|
||||||
.setStructure(".........", "..1.2.3..", "....4....", "....5....")
|
.setStructure(".........", "..1.2.3..", "....4....", "....5....")
|
||||||
.addIngredient('5', cancel)
|
.addIngredient('5', cancel)
|
||||||
|
|
|
@ -7,14 +7,11 @@ import me.unurled.srcore.api.Manager;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class DifficultyItem extends AbstractItem {
|
public class DifficultyItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -24,18 +21,12 @@ public class DifficultyItem extends AbstractItem {
|
||||||
this.difficulty = difficulty;
|
this.difficulty = difficulty;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return switch (difficulty) {
|
return switch (difficulty) {
|
||||||
case EASY ->
|
case EASY ->
|
||||||
new ItemBuilder(Material.BREAD)
|
new ItemBuilder(Material.BREAD)
|
||||||
.setDisplayName("Easy")
|
.setCustomName("Easy")
|
||||||
.addLoreLines(
|
.addLoreLines(
|
||||||
"Is you are a new player or",
|
"Is you are a new player or",
|
||||||
"someone who just want to",
|
"someone who just want to",
|
||||||
|
@ -44,7 +35,7 @@ public class DifficultyItem extends AbstractItem {
|
||||||
"Click Here!");
|
"Click Here!");
|
||||||
case NORMAL ->
|
case NORMAL ->
|
||||||
new ItemBuilder(Material.GRASS_BLOCK)
|
new ItemBuilder(Material.GRASS_BLOCK)
|
||||||
.setDisplayName("Normal")
|
.setCustomName("Normal")
|
||||||
.addLoreLines(
|
.addLoreLines(
|
||||||
"Is you are a regular player",
|
"Is you are a regular player",
|
||||||
"who want to enjoy the game",
|
"who want to enjoy the game",
|
||||||
|
@ -53,7 +44,7 @@ public class DifficultyItem extends AbstractItem {
|
||||||
"Click Here!");
|
"Click Here!");
|
||||||
case HARD ->
|
case HARD ->
|
||||||
new ItemBuilder(Material.DIAMOND_SWORD)
|
new ItemBuilder(Material.DIAMOND_SWORD)
|
||||||
.setDisplayName("Hard")
|
.setCustomName("Hard")
|
||||||
.addLoreLines(
|
.addLoreLines(
|
||||||
"Is you are a hardcore player",
|
"Is you are a hardcore player",
|
||||||
"who want to enjoy the game",
|
"who want to enjoy the game",
|
||||||
|
@ -62,7 +53,7 @@ public class DifficultyItem extends AbstractItem {
|
||||||
"Click Here!");
|
"Click Here!");
|
||||||
case INSANE ->
|
case INSANE ->
|
||||||
new ItemBuilder(Material.NETHERITE_SWORD)
|
new ItemBuilder(Material.NETHERITE_SWORD)
|
||||||
.setDisplayName("Insane")
|
.setCustomName("Insane")
|
||||||
.addLoreLines(
|
.addLoreLines(
|
||||||
"Is you are a pro player",
|
"Is you are a pro player",
|
||||||
"who want to enjoy the game",
|
"who want to enjoy the game",
|
||||||
|
@ -73,18 +64,9 @@ public class DifficultyItem extends AbstractItem {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
// Set the player's difficulty
|
|
||||||
PlayerManager pm = Manager.getInstance(PlayerManager.class);
|
PlayerManager pm = Manager.getInstance(PlayerManager.class);
|
||||||
if (pm.isSRPlayer(player.getUniqueId())) {
|
if (pm.isSRPlayer(player.getUniqueId())) {
|
||||||
SRPlayer sr = pm.getPlayer(player.getUniqueId());
|
SRPlayer sr = pm.getPlayer(player.getUniqueId());
|
||||||
|
|
|
@ -8,14 +8,12 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityArmorItem extends AbstractItem {
|
public class EntityArmorItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -57,28 +55,14 @@ public class EntityArmorItem extends AbstractItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(stack);
|
return new ItemBuilder(stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityBehaviorItem extends AbstractItem {
|
public class EntityBehaviorItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -21,28 +18,14 @@ public class EntityBehaviorItem extends AbstractItem {
|
||||||
// behavior = type.getBehavior();
|
// behavior = type.getBehavior();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.NETHERITE_SWORD).setDisplayName("Behavior: " + behavior);
|
return new ItemBuilder(Material.NETHERITE_SWORD).setCustomName("Behavior: " + behavior);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityExpItem extends AbstractItem {
|
public class EntityExpItem extends AbstractItem {
|
||||||
|
|
||||||
private final Long exp;
|
private final Long exp;
|
||||||
|
|
||||||
public EntityExpItem(SREntityType type) {
|
public EntityExpItem(@NotNull SREntityType type) {
|
||||||
exp = type.getExperience();
|
exp = type.getExperience();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setDisplayName("Experience: " + exp);
|
return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setCustomName("Experience: " + exp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityItemDisplay extends AbstractItem {
|
public class EntityItemDisplay extends AbstractItem {
|
||||||
|
|
||||||
|
@ -21,28 +18,14 @@ public class EntityItemDisplay extends AbstractItem {
|
||||||
name = type.getItem().getType().name();
|
name = type.getItem().getType().name();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setDisplayName("Item Display: " + name);
|
return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setCustomName("Item Display: " + name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityLevelItem extends AbstractItem {
|
public class EntityLevelItem extends AbstractItem {
|
||||||
|
|
||||||
private final int level;
|
private final int level;
|
||||||
|
|
||||||
public EntityLevelItem(SREntityType type) {
|
public EntityLevelItem(@NotNull SREntityType type) {
|
||||||
level = type.getLevel();
|
level = type.getLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.DIAMOND).setDisplayName("Level: " + level);
|
return new ItemBuilder(Material.DIAMOND).setCustomName("Level: " + level);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,39 +3,22 @@ package me.unurled.sacredrealms.sr.gui.entitytype;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityLootItem extends AbstractItem {
|
public class EntityLootItem extends AbstractItem {
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.SKELETON_SKULL).setDisplayName("Death Loot");
|
return new ItemBuilder(Material.SKELETON_SKULL).setCustomName("Death Loot");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityNameItem extends AbstractItem {
|
public class EntityNameItem extends AbstractItem {
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
public EntityNameItem(SREntityType type) {
|
public EntityNameItem(@NotNull SREntityType type) {
|
||||||
name = type.getName();
|
name = type.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.NAME_TAG).setDisplayName(name);
|
return new ItemBuilder(Material.NAME_TAG).setCustomName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityStatsItem extends AbstractItem {
|
public class EntityStatsItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -24,32 +21,18 @@ public class EntityStatsItem extends AbstractItem {
|
||||||
attributes = type.getAttributes();
|
attributes = type.getAttributes();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
ItemBuilder builder = new ItemBuilder(Material.APPLE).setDisplayName("Add Stats");
|
ItemBuilder builder = new ItemBuilder(Material.APPLE).setCustomName("Add Stats");
|
||||||
for (Entry<Attribute, Double> entry : attributes.entrySet()) {
|
for (Entry<Attribute, Double> entry : attributes.entrySet()) {
|
||||||
builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue());
|
builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue());
|
||||||
}
|
}
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
/* TODO need to implements this */
|
/* TODO need to implements this */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,11 +10,10 @@ import me.unurled.srcore.api.Manager;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.gui.Gui;
|
import xyz.xenondevs.invui.gui.Gui;
|
||||||
|
import xyz.xenondevs.invui.gui.Markers;
|
||||||
import xyz.xenondevs.invui.gui.PagedGui;
|
import xyz.xenondevs.invui.gui.PagedGui;
|
||||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
|
||||||
|
|
||||||
public class EntityTypeGUI {
|
public class EntityTypeGUI {
|
||||||
private EntityTypeGUI() {}
|
private EntityTypeGUI() {}
|
||||||
|
@ -23,7 +22,7 @@ public class EntityTypeGUI {
|
||||||
EntityManager em = Manager.getInstance(EntityManager.class);
|
EntityManager em = Manager.getInstance(EntityManager.class);
|
||||||
List<Item> list = new ArrayList<>();
|
List<Item> list = new ArrayList<>();
|
||||||
for (SREntityType type : em.getTypes()) {
|
for (SREntityType type : em.getTypes()) {
|
||||||
SimpleItem simpleItem = new SimpleItem(new ItemBuilder(type.getItem()));
|
Item simpleItem = Item.simple(new ItemBuilder(type.getItem()));
|
||||||
list.add(simpleItem);
|
list.add(simpleItem);
|
||||||
}
|
}
|
||||||
return PagedGui.items()
|
return PagedGui.items()
|
||||||
|
@ -43,7 +42,7 @@ public class EntityTypeGUI {
|
||||||
public static @NotNull Gui createGui(SREntityType type) {
|
public static @NotNull Gui createGui(SREntityType type) {
|
||||||
|
|
||||||
Item border =
|
Item border =
|
||||||
new SimpleItem(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setDisplayName("§r"));
|
Item.simple(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setCustomName("§r"));
|
||||||
|
|
||||||
return Gui.normal()
|
return Gui.normal()
|
||||||
.setStructure(
|
.setStructure(
|
||||||
|
|
|
@ -7,14 +7,11 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class EntityTypeItem extends AbstractItem {
|
public class EntityTypeItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -24,35 +21,21 @@ public class EntityTypeItem extends AbstractItem {
|
||||||
this.type = type.getType();
|
this.type = type.getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setDisplayName(type.name());
|
return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setCustomName(type.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
comp(
|
comp(
|
||||||
"<click:suggest_command:/entitytype edit "
|
"<click:suggest_command:/entitytype edit "
|
||||||
+ event.getView().title()
|
+ player.getOpenInventory().title()
|
||||||
+ " type > entitytype edit "
|
+ " type > entitytype edit "
|
||||||
+ event.getView().title()
|
+ player.getOpenInventory().title()
|
||||||
+ "type"));
|
+ "type"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,14 +12,14 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.persistence.PersistentDataType;
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
|
|
||||||
public class CutsceneItem extends AbstractItem {
|
public class CutsceneItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ public class CutsceneItem extends AbstractItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
ItemStack itemStack = new ItemStack(Material.PAPER);
|
ItemStack itemStack = new ItemStack(Material.PAPER);
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
itemMeta.displayName(textComp(name));
|
itemMeta.displayName(textComp(name));
|
||||||
|
@ -46,26 +46,24 @@ public class CutsceneItem extends AbstractItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
// get uuid
|
// get uuid
|
||||||
if (event.getCurrentItem() != null) {
|
String uuid =
|
||||||
String uuid =
|
click
|
||||||
event
|
.getCursor()
|
||||||
.getCurrentItem()
|
.getItemMeta()
|
||||||
.getItemMeta()
|
.getPersistentDataContainer()
|
||||||
.getPersistentDataContainer()
|
.get(ID, PersistentDataType.STRING);
|
||||||
.get(ID, PersistentDataType.STRING);
|
|
||||||
|
|
||||||
Cutscene cutscene =
|
Cutscene cutscene =
|
||||||
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
|
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
|
||||||
|
|
||||||
if (cutscene == null) {
|
if (cutscene == null) {
|
||||||
player.sendMessage(textComp("<red>Unexpected error."));
|
player.sendMessage(textComp("<red>Unexpected error."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (clickType.isLeftClick()) {
|
if (clickType.isLeftClick()) {
|
||||||
Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
|
Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,10 +11,10 @@ import me.unurled.sacredrealms.sr.gui.ForwardItem;
|
||||||
import me.unurled.srcore.api.Manager;
|
import me.unurled.srcore.api.Manager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.gui.Gui;
|
import xyz.xenondevs.invui.gui.Gui;
|
||||||
|
import xyz.xenondevs.invui.gui.Markers;
|
||||||
import xyz.xenondevs.invui.gui.PagedGui;
|
import xyz.xenondevs.invui.gui.PagedGui;
|
||||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
|
|
||||||
public class StartRecordingGui {
|
public class StartRecordingGui {
|
||||||
private StartRecordingGui() {}
|
private StartRecordingGui() {}
|
||||||
|
|
|
@ -11,10 +11,10 @@ import me.unurled.sacredrealms.sr.gui.ForwardItem;
|
||||||
import me.unurled.srcore.api.Manager;
|
import me.unurled.srcore.api.Manager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.gui.Gui;
|
import xyz.xenondevs.invui.gui.Gui;
|
||||||
|
import xyz.xenondevs.invui.gui.Markers;
|
||||||
import xyz.xenondevs.invui.gui.PagedGui;
|
import xyz.xenondevs.invui.gui.PagedGui;
|
||||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
|
|
||||||
public class ReplayGui {
|
public class ReplayGui {
|
||||||
private ReplayGui() {}
|
private ReplayGui() {}
|
||||||
|
|
|
@ -12,14 +12,14 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.persistence.PersistentDataType;
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
|
|
||||||
public class ReplayItem extends AbstractItem {
|
public class ReplayItem extends AbstractItem {
|
||||||
private static NamespacedKey ID = null;
|
private static NamespacedKey ID = null;
|
||||||
|
@ -33,7 +33,7 @@ public class ReplayItem extends AbstractItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
ItemStack itemStack = new ItemStack(Material.PAPER);
|
ItemStack itemStack = new ItemStack(Material.PAPER);
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
itemMeta.displayName(textComp(name));
|
itemMeta.displayName(textComp(name));
|
||||||
|
@ -44,29 +44,27 @@ public class ReplayItem extends AbstractItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
if (event.getCurrentItem() != null) {
|
String uuid =
|
||||||
String uuid =
|
click
|
||||||
event
|
.getCursor()
|
||||||
.getCurrentItem()
|
.getItemMeta()
|
||||||
.getItemMeta()
|
.getPersistentDataContainer()
|
||||||
.getPersistentDataContainer()
|
.get(ID, PersistentDataType.STRING);
|
||||||
.get(ID, PersistentDataType.STRING);
|
|
||||||
|
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Cutscene cutscene =
|
Cutscene cutscene =
|
||||||
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
|
Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid));
|
||||||
|
|
||||||
if (cutscene == null) {
|
if (cutscene == null) {
|
||||||
player.sendMessage(textComp("<red>Unexpected error."));
|
player.sendMessage(textComp("<red>Unexpected error."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (clickType.isLeftClick()) {
|
if (clickType.isLeftClick()) {
|
||||||
Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
|
Manager.getInstance(RecordingManager.class).startRecording(cutscene, player);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,44 +2,26 @@ package me.unurled.sacredrealms.sr.gui.treasure;
|
||||||
|
|
||||||
import static me.unurled.sacredrealms.sr.utils.Items.cancelItem;
|
import static me.unurled.sacredrealms.sr.utils.Items.cancelItem;
|
||||||
|
|
||||||
import me.unurled.sacredrealms.sr.components.treasure.Treasure;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class CancelItem extends AbstractItem {
|
public class CancelItem extends AbstractItem {
|
||||||
|
|
||||||
public CancelItem() {}
|
public CancelItem() {}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
return new ItemBuilder(cancelItem());
|
return new ItemBuilder(cancelItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package me.unurled.sacredrealms.sr.gui.treasure;
|
package me.unurled.sacredrealms.sr.gui.treasure;
|
||||||
|
|
||||||
import static me.unurled.srcore.utils.Component.textComp;
|
|
||||||
import static me.unurled.sacredrealms.sr.utils.Logger.log;
|
import static me.unurled.sacredrealms.sr.utils.Logger.log;
|
||||||
|
import static me.unurled.srcore.utils.Component.textComp;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -11,15 +11,13 @@ import me.unurled.srcore.api.Manager;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class ConfirmItem extends AbstractItem {
|
public class ConfirmItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -29,14 +27,8 @@ public class ConfirmItem extends AbstractItem {
|
||||||
this.treasure = treasure;
|
this.treasure = treasure;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE);
|
ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE);
|
||||||
ItemMeta confirmMeta = confirm.getItemMeta();
|
ItemMeta confirmMeta = confirm.getItemMeta();
|
||||||
confirmMeta.displayName(textComp("<b><green>Confirm</green></b>"));
|
confirmMeta.displayName(textComp("<b><green>Confirm</green></b>"));
|
||||||
|
@ -44,28 +36,16 @@ public class ConfirmItem extends AbstractItem {
|
||||||
return new ItemBuilder(confirm);
|
return new ItemBuilder(confirm);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
Map<Integer, ItemStack> items = new HashMap<>();
|
Map<Integer, ItemStack> items = new HashMap<>();
|
||||||
for (int i = 0; i < player.getInventory().getContents().length; i++) {
|
for (int i = 0; i < player.getInventory().getContents().length; i++) {
|
||||||
if (i < 9 || i > 35) {
|
if (i < 9 || i > 35) {
|
||||||
log("Skipping slot " + i);
|
log("Skipping slot " + i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (event.getClickedInventory() == null) {
|
ItemStack content = player.getOpenInventory().getItem(i);
|
||||||
log("Clicked inventory is null");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
ItemStack content = event.getClickedInventory().getItem(i);
|
|
||||||
if (content != null && content.getType() != Material.AIR) {
|
if (content != null && content.getType() != Material.AIR) {
|
||||||
items.put(i, content);
|
items.put(i, content);
|
||||||
log("Added item to items: " + content + " at slot " + i);
|
log("Added item to items: " + content + " at slot " + i);
|
||||||
|
|
|
@ -8,15 +8,13 @@ import me.unurled.srcore.api.Manager;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.AbstractItem;
|
||||||
|
import xyz.xenondevs.invui.item.Click;
|
||||||
|
import xyz.xenondevs.invui.item.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.ItemProvider;
|
import xyz.xenondevs.invui.item.ItemProvider;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
|
||||||
import xyz.xenondevs.invui.item.impl.AbstractItem;
|
|
||||||
import xyz.xenondevs.invui.window.Window;
|
|
||||||
|
|
||||||
public class DeleteItem extends AbstractItem {
|
public class DeleteItem extends AbstractItem {
|
||||||
|
|
||||||
|
@ -26,14 +24,8 @@ public class DeleteItem extends AbstractItem {
|
||||||
this.treasure = treasure;
|
this.treasure = treasure;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified
|
|
||||||
* ({@link #notifyWindows()}).
|
|
||||||
*
|
|
||||||
* @return The {@link ItemProvider}
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) {
|
||||||
ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE);
|
ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE);
|
||||||
ItemMeta deleteMeta = delete.getItemMeta();
|
ItemMeta deleteMeta = delete.getItemMeta();
|
||||||
deleteMeta.displayName(textComp("<b><red>Delete</red></b>"));
|
deleteMeta.displayName(textComp("<b><red>Delete</red></b>"));
|
||||||
|
@ -41,17 +33,9 @@ public class DeleteItem extends AbstractItem {
|
||||||
return new ItemBuilder(delete);
|
return new ItemBuilder(delete);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a
|
|
||||||
* player.
|
|
||||||
*
|
|
||||||
* @param clickType The {@link ClickType} the {@link Player} performed.
|
|
||||||
* @param player The {@link Player} who clicked on the {@link ItemStack}.
|
|
||||||
* @param event The {@link InventoryClickEvent} associated with this click.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(
|
public void handleClick(
|
||||||
@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
@NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {
|
||||||
// delete treasure
|
// delete treasure
|
||||||
if (!player.hasPermission("sr.treasure.delete")) {
|
if (!player.hasPermission("sr.treasure.delete")) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -11,7 +11,6 @@ import xyz.xenondevs.invui.inventory.Inventory;
|
||||||
import xyz.xenondevs.invui.inventory.VirtualInventory;
|
import xyz.xenondevs.invui.inventory.VirtualInventory;
|
||||||
import xyz.xenondevs.invui.inventory.event.UpdateReason;
|
import xyz.xenondevs.invui.inventory.event.UpdateReason;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
|
||||||
|
|
||||||
public class TreasureGUI {
|
public class TreasureGUI {
|
||||||
|
|
||||||
|
@ -20,10 +19,10 @@ public class TreasureGUI {
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Gui createGui(@NotNull Treasure treasure) {
|
public static Gui createGui(@NotNull Treasure treasure) {
|
||||||
ItemStack itemStack = glassPane();
|
ItemStack itemStack = glassPane();
|
||||||
Item pane = new SimpleItem(itemStack);
|
Item pane = Item.simple(itemStack);
|
||||||
|
|
||||||
Inventory inventory = new VirtualInventory(27);
|
Inventory inventory = new VirtualInventory(27);
|
||||||
inventory.setPreUpdateHandler(
|
inventory.addPreUpdateHandler(
|
||||||
(itemPreUpdateEvent) -> {
|
(itemPreUpdateEvent) -> {
|
||||||
if (itemPreUpdateEvent.isAdd()
|
if (itemPreUpdateEvent.isAdd()
|
||||||
|| itemPreUpdateEvent.isRemove()
|
|| itemPreUpdateEvent.isRemove()
|
||||||
|
|
|
@ -40,11 +40,9 @@ public class SRPlayerUtils {
|
||||||
float value = (float) ((speed + items) / 500.0f);
|
float value = (float) ((speed + items) / 500.0f);
|
||||||
value = Math.min(value, 1.0f);
|
value = Math.min(value, 1.0f);
|
||||||
value = Math.max(value, 0f);
|
value = Math.max(value, 0f);
|
||||||
AttributeInstance attribute1 =
|
AttributeInstance attribute1 = p.getAttribute(org.bukkit.attribute.Attribute.MOVEMENT_SPEED);
|
||||||
p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED);
|
|
||||||
if (attribute1 != null) attribute1.setBaseValue(value);
|
if (attribute1 != null) attribute1.setBaseValue(value);
|
||||||
AttributeInstance attribute2 =
|
AttributeInstance attribute2 = p.getAttribute(org.bukkit.attribute.Attribute.FLYING_SPEED);
|
||||||
p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED);
|
|
||||||
if (attribute2 != null) attribute2.setBaseValue(value);
|
if (attribute2 != null) attribute2.setBaseValue(value);
|
||||||
p.setFlySpeed(value);
|
p.setFlySpeed(value);
|
||||||
p.setWalkSpeed(value);
|
p.setWalkSpeed(value);
|
||||||
|
@ -57,7 +55,7 @@ public class SRPlayerUtils {
|
||||||
// default is 100 so 20
|
// default is 100 so 20
|
||||||
double health =
|
double health =
|
||||||
(sr.getAttribute(Attribute.HEALTH) + sr.getTotalItemAttribute(Attribute.HEALTH)) / 5;
|
(sr.getAttribute(Attribute.HEALTH) + sr.getTotalItemAttribute(Attribute.HEALTH)) / 5;
|
||||||
AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH);
|
AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.MAX_HEALTH);
|
||||||
if (attribute != null) attribute.setBaseValue(health);
|
if (attribute != null) attribute.setBaseValue(health);
|
||||||
p.sendHealthUpdate();
|
p.sendHealthUpdate();
|
||||||
p.updateInventory();
|
p.updateInventory();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue