Updated to eco 3 and fixed permission default
This commit is contained in:
@@ -47,7 +47,7 @@ allprojects {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly 'com.willfp:eco:2.0.0'
|
||||
compileOnly 'com.willfp:eco:3.0.0'
|
||||
|
||||
compileOnly 'org.jetbrains:annotations:19.0.0'
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.willfp.talismans.talismans.util.TalismanCraftListener;
|
||||
import com.willfp.talismans.talismans.util.WatcherTriggers;
|
||||
import com.willfp.talismans.talismans.util.equipevent.SyncTalismanEquipEventTask;
|
||||
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEventListeners;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
@@ -33,11 +34,18 @@ import java.util.List;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class TalismansPlugin extends AbstractEcoPlugin {
|
||||
/**
|
||||
* Instance of the plugin.
|
||||
*/
|
||||
@Getter
|
||||
private static TalismansPlugin instance;
|
||||
|
||||
/**
|
||||
* Internal constructor called by bukkit on plugin load.
|
||||
*/
|
||||
public TalismansPlugin() {
|
||||
super("Talismans", 87377, 9865, "com.willfp.talismans.proxy", "&6");
|
||||
instance = this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.willfp.talismans.commands;
|
||||
|
||||
import com.willfp.eco.util.command.AbstractCommand;
|
||||
import com.willfp.eco.util.command.AbstractTabCompleter;
|
||||
import com.willfp.eco.util.config.Configs;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
@@ -33,12 +32,12 @@ public class CommandTalgive extends AbstractCommand {
|
||||
public void onExecute(@NotNull final CommandSender sender,
|
||||
@NotNull final List<String> args) {
|
||||
if (args.isEmpty()) {
|
||||
sender.sendMessage(Configs.LANG.getMessage("needs-player"));
|
||||
sender.sendMessage(this.getPlugin().getLangYml().getMessage("needs-player"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.size() == 1) {
|
||||
sender.sendMessage(Configs.LANG.getMessage("needs-talisman"));
|
||||
sender.sendMessage(this.getPlugin().getLangYml().getMessage("needs-talisman"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -46,18 +45,18 @@ public class CommandTalgive extends AbstractCommand {
|
||||
Player reciever = Bukkit.getPlayer(recieverName);
|
||||
|
||||
if (reciever == null) {
|
||||
sender.sendMessage(Configs.LANG.getMessage("invalid-player"));
|
||||
sender.sendMessage(this.getPlugin().getLangYml().getMessage("invalid-player"));
|
||||
return;
|
||||
}
|
||||
|
||||
String talismanName = args.get(1);
|
||||
Talisman talisman = Talismans.getByKey(this.getPlugin().getNamespacedKeyFactory().create(talismanName));
|
||||
if (talisman == null) {
|
||||
sender.sendMessage(Configs.LANG.getMessage("invalid-talisman"));
|
||||
sender.sendMessage(this.getPlugin().getLangYml().getMessage("invalid-talisman"));
|
||||
return;
|
||||
}
|
||||
|
||||
String message = Configs.LANG.getMessage("give-success");
|
||||
String message = this.getPlugin().getLangYml().getMessage("give-success");
|
||||
message = message.replace("%talisman%", talisman.getFormattedName()).replace("%recipient%", reciever.getName());
|
||||
sender.sendMessage(message);
|
||||
reciever.getInventory().addItem(talisman.getItemStack());
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.willfp.talismans.commands;
|
||||
|
||||
import com.willfp.eco.util.command.AbstractCommand;
|
||||
import com.willfp.eco.util.config.Configs;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -23,6 +22,6 @@ public class CommandTalreload extends AbstractCommand {
|
||||
@NotNull final List<String> args) {
|
||||
this.getPlugin().reload();
|
||||
this.getPlugin().reload(); // Aids
|
||||
sender.sendMessage(Configs.LANG.getMessage("reloaded"));
|
||||
sender.sendMessage(this.getPlugin().getLangYml().getMessage("reloaded"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.willfp.talismans.config;
|
||||
import com.willfp.eco.util.config.ValueGetter;
|
||||
import com.willfp.eco.util.internal.PluginDependent;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
@@ -64,7 +65,7 @@ public abstract class TalismanYamlConfig extends PluginDependent implements Valu
|
||||
protected TalismanYamlConfig(@NotNull final String name,
|
||||
@NotNull final TalismanStrength strength,
|
||||
@NotNull final Class<?> source) {
|
||||
super(AbstractEcoPlugin.getInstance());
|
||||
super(TalismansPlugin.getInstance());
|
||||
this.name = name;
|
||||
this.source = source;
|
||||
this.strength = strength;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package com.willfp.talismans.display;
|
||||
|
||||
import com.willfp.eco.util.ProxyUtils;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.proxy.proxies.SkullProxy;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.util.TalismanChecks;
|
||||
import com.willfp.talismans.util.ProxyUtils;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -16,6 +17,11 @@ import java.util.List;
|
||||
|
||||
@UtilityClass
|
||||
public class TalismanDisplay {
|
||||
/**
|
||||
* Instance of Talismans.
|
||||
*/
|
||||
private static final TalismansPlugin PLUGIN = TalismansPlugin.getInstance();
|
||||
|
||||
/**
|
||||
* The prefix for all talisman lines to have in lore.
|
||||
*/
|
||||
|
||||
@@ -3,10 +3,10 @@ package com.willfp.talismans.display.packets;
|
||||
import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.ProtocolLibrary;
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.willfp.eco.util.ProxyUtils;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.eco.util.protocollib.AbstractPacketAdapter;
|
||||
import com.willfp.talismans.proxy.proxies.AutoCraftProxy;
|
||||
import com.willfp.talismans.util.ProxyUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@ import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.events.ListenerPriority;
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||
import com.willfp.eco.util.ProxyUtils;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.eco.util.protocollib.AbstractPacketAdapter;
|
||||
import com.willfp.talismans.proxy.proxies.ChatComponentProxy;
|
||||
import com.willfp.talismans.util.ProxyUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class PacketChat extends AbstractPacketAdapter {
|
||||
if (component.getHandle() == null) {
|
||||
return;
|
||||
}
|
||||
WrappedChatComponent newComponent = WrappedChatComponent.fromHandle(ProxyUtils.getProxy(ChatComponentProxy.class).modifyComponent(component.getHandle()));
|
||||
WrappedChatComponent newComponent = WrappedChatComponent.fromHandle(ProxyUtils.getProxy( ChatComponentProxy.class).modifyComponent(component.getHandle()));
|
||||
packet.getChatComponents().write(i, newComponent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@ package com.willfp.talismans.display.packets;
|
||||
|
||||
import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.willfp.eco.util.ProxyUtils;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.eco.util.protocollib.AbstractPacketAdapter;
|
||||
import com.willfp.talismans.proxy.proxies.VillagerTradeProxy;
|
||||
import com.willfp.talismans.util.ProxyUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.MerchantRecipe;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.willfp.talismans.talismans;
|
||||
|
||||
|
||||
import com.willfp.eco.common.recipes.lookup.RecipePartUtils;
|
||||
import com.willfp.eco.common.recipes.parts.ComplexRecipePart;
|
||||
import com.willfp.eco.util.StringUtils;
|
||||
import com.willfp.eco.util.config.Configs;
|
||||
import com.willfp.eco.util.optional.Prerequisite;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.eco.util.recipe.EcoShapedRecipe;
|
||||
import com.willfp.eco.util.recipe.lookup.RecipePartUtils;
|
||||
import com.willfp.eco.util.recipe.parts.ComplexRecipePart;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.config.TalismansConfigs;
|
||||
import com.willfp.talismans.config.configs.TalismanConfig;
|
||||
import com.willfp.talismans.display.TalismanDisplay;
|
||||
@@ -45,7 +45,7 @@ public abstract class Talisman implements Listener, Watcher {
|
||||
* Instance of Talismans for talismans to be able to access.
|
||||
*/
|
||||
@Getter(AccessLevel.PROTECTED)
|
||||
private final AbstractEcoPlugin plugin = AbstractEcoPlugin.getInstance();
|
||||
private final AbstractEcoPlugin plugin = TalismansPlugin.getInstance();
|
||||
|
||||
/**
|
||||
* The key to store talismans in meta.
|
||||
@@ -173,8 +173,8 @@ public abstract class Talisman implements Listener, Watcher {
|
||||
disabledWorldNames.addAll(config.getStrings(Talismans.GENERAL_LOCATION + "disabled-in-worlds"));
|
||||
disabledWorlds.clear();
|
||||
|
||||
formattedDescription = Arrays.stream(WordUtils.wrap(description, Configs.CONFIG.getInt("description.wrap"), "\n", false).split("\\r?\\n"))
|
||||
.map(s -> TalismanDisplay.PREFIX + StringUtils.translate(Configs.LANG.getString("description-color") + s)).collect(Collectors.toList());
|
||||
formattedDescription = Arrays.stream(WordUtils.wrap(description, this.getPlugin().getConfigYml().getInt("description.wrap"), "\n", false).split("\\r?\\n"))
|
||||
.map(s -> TalismanDisplay.PREFIX + StringUtils.translate(this.getPlugin().getLangYml().getString("description-color") + s)).collect(Collectors.toList());
|
||||
|
||||
List<String> worldNames = Bukkit.getWorlds().stream().map(World::getName).map(String::toLowerCase).collect(Collectors.toList());
|
||||
List<String> disabledExistingWorldNames = disabledWorldNames.stream().filter(s -> worldNames.contains(s.toLowerCase())).collect(Collectors.toList());
|
||||
|
||||
@@ -1,27 +1,29 @@
|
||||
package com.willfp.talismans.talismans.meta;
|
||||
|
||||
import com.willfp.eco.util.config.Configs;
|
||||
import com.willfp.eco.util.config.updating.annotations.ConfigUpdater;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import lombok.Getter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public enum TalismanStrength {
|
||||
|
||||
/**
|
||||
* Weakest.
|
||||
*/
|
||||
TALISMAN(() -> Configs.CONFIG.getString("strengths.talisman.color")),
|
||||
TALISMAN(() -> TalismansPlugin.getInstance().getConfigYml().getString("strengths.talisman.color")),
|
||||
|
||||
/**
|
||||
* Middle.
|
||||
*/
|
||||
RING(() -> Configs.CONFIG.getString("strengths.ring.color")),
|
||||
RING(() -> TalismansPlugin.getInstance().getConfigYml().getString("strengths.ring.color")),
|
||||
|
||||
/**
|
||||
* Strongest.
|
||||
*/
|
||||
RELIC(() -> Configs.CONFIG.getString("strengths.relic.color"));
|
||||
RELIC(() -> TalismansPlugin.getInstance().getConfigYml().getString("strengths.relic.color"));
|
||||
|
||||
/**
|
||||
* The color.
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.willfp.talismans.talismans.util;
|
||||
|
||||
|
||||
import com.willfp.eco.util.config.Configs;
|
||||
import com.willfp.eco.util.config.updating.annotations.ConfigUpdater;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import lombok.experimental.UtilityClass;
|
||||
@@ -50,7 +49,7 @@ public class TalismanChecks {
|
||||
/**
|
||||
* The associated plugin instance.
|
||||
*/
|
||||
private static final AbstractEcoPlugin PLUGIN = AbstractEcoPlugin.getInstance();
|
||||
private static final AbstractEcoPlugin PLUGIN = TalismansPlugin.getInstance();
|
||||
|
||||
/**
|
||||
* Does the specified ItemStack have a certain Talisman present?
|
||||
@@ -201,7 +200,7 @@ public class TalismanChecks {
|
||||
|
||||
@ConfigUpdater
|
||||
public static void reload() {
|
||||
readEnderChest = Configs.CONFIG.getBool("read-enderchest");
|
||||
readShulkerBoxes = Configs.CONFIG.getBool("read-shulkerboxes");
|
||||
readEnderChest = PLUGIN.getConfigYml().getBool("read-enderchest");
|
||||
readShulkerBoxes = PLUGIN.getConfigYml().getBool("read-shulkerboxes");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.willfp.talismans.talismans.util;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.willfp.eco.util.ProxyUtils;
|
||||
import com.willfp.eco.util.integrations.antigrief.AntigriefManager;
|
||||
import com.willfp.eco.util.internal.PluginDependent;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.talismans.integrations.mcmmo.McmmoManager;
|
||||
import com.willfp.talismans.proxy.proxies.TridentStackProxy;
|
||||
import com.willfp.talismans.util.ProxyUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Arrow;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.willfp.talismans.util;
|
||||
|
||||
import com.willfp.eco.util.proxy.AbstractProxy;
|
||||
import com.willfp.talismans.TalismansPlugin;
|
||||
import com.willfp.talismans.proxy.util.ProxyFactory;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@UtilityClass
|
||||
public class ProxyUtils {
|
||||
/**
|
||||
* Get the implementation of a specified proxy.
|
||||
*
|
||||
* @param proxyClass The proxy interface.
|
||||
* @param <T> The type of the proxy.
|
||||
* @return The proxy implementation.
|
||||
*/
|
||||
public @NotNull <T extends AbstractProxy> T getProxy(@NotNull final Class<T> proxyClass) {
|
||||
return new ProxyFactory<>(TalismansPlugin.getInstance(), proxyClass).getProxy();
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,7 @@ permissions:
|
||||
default: op
|
||||
talismans.give:
|
||||
description: Allows the use of /talgive.
|
||||
default: true
|
||||
default: op
|
||||
talismans.fromtable.*:
|
||||
description: Allows crafting all talismans
|
||||
default: true
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.willfp.talismans.proxy.proxies;
|
||||
|
||||
|
||||
import com.willfp.eco.util.proxy.AbstractProxy;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.willfp.talismans.proxy.proxies;
|
||||
|
||||
|
||||
import com.willfp.eco.util.proxy.AbstractProxy;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.willfp.talismans.proxy.proxies;
|
||||
|
||||
|
||||
import com.willfp.eco.util.proxy.AbstractProxy;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.willfp.talismans.proxy.proxies;
|
||||
|
||||
|
||||
import com.willfp.eco.util.proxy.AbstractProxy;
|
||||
import org.bukkit.entity.Trident;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.willfp.talismans.proxy.util;
|
||||
|
||||
import com.willfp.eco.util.internal.PluginDependent;
|
||||
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
|
||||
import com.willfp.eco.util.proxy.AbstractProxy;
|
||||
import com.willfp.eco.util.proxy.ProxyConstants;
|
||||
import com.willfp.eco.util.proxy.UnsupportedVersionException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class ProxyFactory<T extends AbstractProxy> extends PluginDependent {
|
||||
/**
|
||||
* Cached proxy implementations in order to not perform expensive reflective class-finding.
|
||||
*/
|
||||
private static final Map<Class<? extends AbstractProxy>, AbstractProxy> CACHE = new IdentityHashMap<>();
|
||||
|
||||
/**
|
||||
* The class of the proxy interface.
|
||||
*/
|
||||
private final Class<T> proxyClass;
|
||||
|
||||
/**
|
||||
* Create a new Proxy Factory for a specific type.
|
||||
*
|
||||
* @param plugin The plugin to create proxies for.
|
||||
* @param proxyClass The class of the proxy interface.
|
||||
*/
|
||||
public ProxyFactory(@NotNull final AbstractEcoPlugin plugin,
|
||||
@NotNull final Class<T> proxyClass) {
|
||||
super(plugin);
|
||||
this.proxyClass = proxyClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the implementation of a proxy.
|
||||
*
|
||||
* @return The proxy implementation.
|
||||
*/
|
||||
public @NotNull T getProxy() {
|
||||
try {
|
||||
T cachedProxy = attemptCache();
|
||||
if (cachedProxy != null) {
|
||||
return cachedProxy;
|
||||
}
|
||||
|
||||
String className = this.getPlugin().getProxyPackage() + "." + ProxyConstants.NMS_VERSION + "." + proxyClass.getSimpleName().replace("Proxy", "");
|
||||
final Class<?> class2 = Class.forName(className);
|
||||
Object instance = class2.getConstructor().newInstance();
|
||||
if (proxyClass.isAssignableFrom(class2) && proxyClass.isInstance(instance)) {
|
||||
T proxy = proxyClass.cast(instance);
|
||||
CACHE.put(proxyClass, proxy);
|
||||
return proxy;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// If not returned, then throw error
|
||||
}
|
||||
|
||||
throw new UnsupportedVersionException("You're running an unsupported server version: " + ProxyConstants.NMS_VERSION);
|
||||
}
|
||||
|
||||
private T attemptCache() {
|
||||
Object proxy = CACHE.get(proxyClass);
|
||||
if (proxy == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (proxyClass.isInstance(proxy)) {
|
||||
return proxyClass.cast(proxy);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user