Moved frontend -> backend communication to be purely via the handler
This commit is contained in:
@@ -14,8 +14,11 @@ import com.willfp.eco.core.factory.NamespacedKeyFactory;
|
||||
import com.willfp.eco.core.factory.RunnableFactory;
|
||||
import com.willfp.eco.core.fast.FastItemStack;
|
||||
import com.willfp.eco.core.gui.GUIFactory;
|
||||
import com.willfp.eco.core.gui.menu.Menu;
|
||||
import com.willfp.eco.core.integrations.placeholder.PlaceholderIntegration;
|
||||
import com.willfp.eco.core.items.SNBTHandler;
|
||||
import com.willfp.eco.core.placeholder.AdditionalPlayer;
|
||||
import com.willfp.eco.core.placeholder.PlaceholderInjectable;
|
||||
import com.willfp.eco.core.proxy.Cleaner;
|
||||
import com.willfp.eco.core.proxy.ProxyFactory;
|
||||
import com.willfp.eco.core.scheduling.Scheduler;
|
||||
@@ -24,12 +27,15 @@ import org.bukkit.Location;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Mob;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@@ -309,4 +315,52 @@ public interface Handler {
|
||||
*/
|
||||
@NotNull
|
||||
SNBTHandler getSNBTHandler();
|
||||
|
||||
/**
|
||||
* Get the texture of a skull.
|
||||
*
|
||||
* @param meta The skull meta.
|
||||
* @return The texture, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
String getSkullTexture(@NotNull SkullMeta meta);
|
||||
|
||||
/**
|
||||
* Set the texture of a skull.
|
||||
*
|
||||
* @param meta The skull meta.
|
||||
* @param base64 The texture.
|
||||
*/
|
||||
void setSkullTexture(@NotNull SkullMeta meta,
|
||||
@NotNull String base64);
|
||||
|
||||
/**
|
||||
* Get the current server TPS.
|
||||
*
|
||||
* @return The TPS.
|
||||
*/
|
||||
double getTPS();
|
||||
|
||||
/**
|
||||
* Evaluate an expression.
|
||||
*
|
||||
* @param expression The expression.
|
||||
* @param player The player.
|
||||
* @param injectable The injectable placeholders.
|
||||
* @param additionalPlayers The additional players.
|
||||
* @return The value of the expression, or zero if invalid.
|
||||
*/
|
||||
double evaluate(@NotNull String expression,
|
||||
@Nullable Player player,
|
||||
@NotNull PlaceholderInjectable injectable,
|
||||
@NotNull Collection<AdditionalPlayer> additionalPlayers);
|
||||
|
||||
/**
|
||||
* Get the menu a player currently has open.
|
||||
*
|
||||
* @param player The player.
|
||||
* @return The menu, or null if no menu open.
|
||||
*/
|
||||
@Nullable
|
||||
Menu getOpenMenu(@NotNull Player player);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.willfp.eco.util;
|
||||
|
||||
import com.willfp.eco.core.Eco;
|
||||
import com.willfp.eco.core.gui.menu.Menu;
|
||||
import com.willfp.eco.core.tuples.Pair;
|
||||
import org.apache.commons.lang.Validate;
|
||||
@@ -14,11 +15,6 @@ import java.util.function.Function;
|
||||
* Utilities / API methods for menus.
|
||||
*/
|
||||
public final class MenuUtils {
|
||||
/**
|
||||
* The menu supplier.
|
||||
*/
|
||||
private static Function<Player, Menu> menuGetter = null;
|
||||
|
||||
/**
|
||||
* Convert 0-53 slot to row and column pair.
|
||||
*
|
||||
@@ -51,19 +47,7 @@ public final class MenuUtils {
|
||||
*/
|
||||
@Nullable
|
||||
public static Menu getOpenMenu(@NotNull final Player player) {
|
||||
return menuGetter.apply(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the tps supplier function.
|
||||
*
|
||||
* @param function The function.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static void initialize(@NotNull final Function<Player, Menu> function) {
|
||||
Validate.isTrue(menuGetter == null, "Already initialized!");
|
||||
|
||||
menuGetter = function;
|
||||
return Eco.getHandler().getOpenMenu(player);
|
||||
}
|
||||
|
||||
private MenuUtils() {
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package com.willfp.eco.util;
|
||||
|
||||
import com.willfp.eco.core.Eco;
|
||||
import com.willfp.eco.core.placeholder.AdditionalPlayer;
|
||||
import com.willfp.eco.core.placeholder.InjectablePlaceholder;
|
||||
import com.willfp.eco.core.placeholder.PlaceholderInjectable;
|
||||
import com.willfp.eco.core.placeholder.StaticPlaceholder;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -28,11 +27,6 @@ public final class NumberUtils {
|
||||
*/
|
||||
private static final double[] SIN_LOOKUP = new double[65536];
|
||||
|
||||
/**
|
||||
* Crunch handler.
|
||||
*/
|
||||
private static CrunchHandler crunch = null;
|
||||
|
||||
/**
|
||||
* Set of roman numerals to look up.
|
||||
*/
|
||||
@@ -329,38 +323,7 @@ public final class NumberUtils {
|
||||
@Nullable final Player player,
|
||||
@NotNull final PlaceholderInjectable context,
|
||||
@NotNull final Collection<AdditionalPlayer> additionalPlayers) {
|
||||
return crunch.evaluate(expression, player, context, additionalPlayers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Init crunch handler.
|
||||
*
|
||||
* @param handler The handler.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static void initCrunch(@NotNull final CrunchHandler handler) {
|
||||
Validate.isTrue(crunch == null, "Already initialized!");
|
||||
crunch = handler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bridge component for crunch.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public interface CrunchHandler {
|
||||
/**
|
||||
* Evaluate an expression.
|
||||
*
|
||||
* @param expression The expression.
|
||||
* @param player The player.
|
||||
* @param injectable The injectable placeholders.
|
||||
* @param additionalPlayers The additional players.
|
||||
* @return The value of the expression, or zero if invalid.
|
||||
*/
|
||||
double evaluate(@NotNull String expression,
|
||||
@Nullable Player player,
|
||||
@NotNull PlaceholderInjectable injectable,
|
||||
@NotNull Collection<AdditionalPlayer> additionalPlayers);
|
||||
return Eco.getHandler().evaluate(expression, player, context, additionalPlayers);
|
||||
}
|
||||
|
||||
private NumberUtils() {
|
||||
|
||||
@@ -1,33 +1,14 @@
|
||||
package com.willfp.eco.util;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import com.willfp.eco.core.Eco;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* Utilities / API methods for player heads.
|
||||
*/
|
||||
public final class SkullUtils {
|
||||
/**
|
||||
* If the meta set function has been set.
|
||||
*/
|
||||
private static boolean initialized = false;
|
||||
|
||||
/**
|
||||
* The meta set function.
|
||||
*/
|
||||
private static BiConsumer<SkullMeta, String> metaSetConsumer = null;
|
||||
|
||||
/**
|
||||
* The meta get function.
|
||||
*/
|
||||
private static Function<SkullMeta, String> metaGetConsumer = null;
|
||||
|
||||
/**
|
||||
* Set the texture of a skull from base64.
|
||||
*
|
||||
@@ -36,10 +17,7 @@ public final class SkullUtils {
|
||||
*/
|
||||
public static void setSkullTexture(@NotNull final SkullMeta meta,
|
||||
@NotNull final String base64) {
|
||||
Validate.isTrue(initialized, "Must be initialized!");
|
||||
Validate.notNull(metaSetConsumer, "Must be initialized!");
|
||||
|
||||
metaSetConsumer.accept(meta, base64);
|
||||
Eco.getHandler().setSkullTexture(meta, base64);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,26 +28,7 @@ public final class SkullUtils {
|
||||
*/
|
||||
@Nullable
|
||||
public static String getSkullTexture(@NotNull final SkullMeta meta) {
|
||||
Validate.isTrue(initialized, "Must be initialized!");
|
||||
Validate.notNull(metaGetConsumer, "Must be initialized!");
|
||||
|
||||
return metaGetConsumer.apply(meta);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the skull texture function.
|
||||
*
|
||||
* @param function The function.
|
||||
* @param function2 Get function.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static void initialize(@NotNull final BiConsumer<SkullMeta, String> function,
|
||||
@NotNull final Function<SkullMeta, String> function2) {
|
||||
Validate.isTrue(!initialized, "Already initialized!");
|
||||
|
||||
metaSetConsumer = function;
|
||||
metaGetConsumer = function2;
|
||||
initialized = true;
|
||||
return Eco.getHandler().getSkullTexture(meta);
|
||||
}
|
||||
|
||||
private SkullUtils() {
|
||||
|
||||
Reference in New Issue
Block a user