Updated to eco 3 and fixed permission default

This commit is contained in:
Auxilor
2021-01-17 18:48:17 +00:00
parent 6e3ce80eec
commit a0a4244049
20 changed files with 142 additions and 36 deletions

View File

@@ -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'

View File

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

View File

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

View File

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

View File

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

View File

@@ -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.
*/

View File

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

View File

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

View File

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

View File

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

View File

@@ -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.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,5 @@
package com.willfp.talismans.proxy.proxies;
import com.willfp.eco.util.proxy.AbstractProxy;
import org.jetbrains.annotations.NotNull;

View File

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

View File

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

View File

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