Updated to eco 4.0.0, and updated to 1.13.0

This commit is contained in:
Auxilor
2021-02-17 15:23:12 +00:00
parent cdfecf5229
commit 8550ddc510
6 changed files with 65 additions and 77 deletions

View File

@@ -47,7 +47,7 @@ allprojects {
}
dependencies {
compileOnly 'com.willfp:eco:3.8.0'
compileOnly 'com.willfp:eco:4.0.0'
compileOnly 'org.jetbrains:annotations:19.0.0'

View File

@@ -1,10 +1,9 @@
package com.willfp.talismans;
import com.willfp.eco.util.bukkit.scheduling.TimedRunnable;
import com.willfp.eco.util.command.AbstractCommand;
import com.willfp.eco.util.display.Display;
import com.willfp.eco.util.display.DisplayModule;
import com.willfp.eco.util.integrations.IntegrationLoader;
import com.willfp.eco.util.interfaces.EcoRunnable;
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
import com.willfp.eco.util.protocollib.AbstractPacketAdapter;
import com.willfp.talismans.commands.CommandTalgive;
@@ -23,6 +22,7 @@ import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEventListener
import lombok.Getter;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Arrays;
@@ -49,9 +49,6 @@ public class TalismansPlugin extends AbstractEcoPlugin {
*/
@Override
public void enable() {
Display.registerDisplayModule(new DisplayModule(TalismanDisplay::displayTalisman, 1, this.getPluginName()));
Display.registerRevertModule(TalismanDisplay::revertDisplay);
this.getExtensionLoader().loadExtensions();
if (this.getExtensionLoader().getLoadedExtensions().isEmpty()) {
@@ -92,8 +89,8 @@ public class TalismansPlugin extends AbstractEcoPlugin {
if (talisman.isEnabled()) {
this.getEventManager().registerListener(talisman);
if (talisman instanceof EcoRunnable) {
this.getScheduler().syncRepeating((EcoRunnable) talisman, 5, ((EcoRunnable) talisman).getTime());
if (talisman instanceof TimedRunnable) {
this.getScheduler().syncRepeating((TimedRunnable) talisman, 5, ((TimedRunnable) talisman).getTime());
}
}
}, 1);
@@ -168,4 +165,10 @@ public class TalismansPlugin extends AbstractEcoPlugin {
TabcompleterTalgive.class
);
}
@Override
@Nullable
protected DisplayModule createDisplayModule() {
return new TalismanDisplay(this);
}
}

View File

@@ -1,74 +1,40 @@
package com.willfp.talismans.display;
import com.willfp.eco.util.SkullUtils;
import com.willfp.eco.util.display.DisplayModule;
import com.willfp.eco.util.display.DisplayPriority;
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.util.TalismanChecks;
import com.willfp.talismans.talismans.util.TalismanUtils;
import lombok.experimental.UtilityClass;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
@UtilityClass
public class TalismanDisplay {
public class TalismanDisplay extends DisplayModule {
/**
* The prefix for all talisman lines to have in lore.
* Instantiate talisman display.
* @param plugin Instance of Talismans.
*/
public static final String PREFIX = "§z";
/**
* Revert display.
*
* @param item The item to revert.
* @return The item, updated.
*/
public static ItemStack revertDisplay(@Nullable final ItemStack item) {
if (item == null || item.getItemMeta() == null) {
return item;
}
ItemMeta meta = item.getItemMeta();
List<String> itemLore;
if (meta.hasLore()) {
itemLore = meta.getLore();
} else {
itemLore = new ArrayList<>();
}
if (itemLore == null) {
itemLore = new ArrayList<>();
}
itemLore.removeIf(s -> s.startsWith(PREFIX));
meta.setLore(itemLore);
item.setItemMeta(meta);
return item;
public TalismanDisplay(@NotNull final AbstractEcoPlugin plugin) {
super(plugin, DisplayPriority.LOWEST);
}
/**
* Show talisman in item lore, set display name, and set texture.
*
* @param item The item to update.
* @return The item, updated.
*/
public static ItemStack displayTalisman(@Nullable final ItemStack item) {
if (item == null || item.getItemMeta() == null || !TalismanUtils.isTalismanMaterial(item.getType())) {
return item;
@Override
protected void display(@NotNull final ItemStack itemStack) {
if (!TalismanUtils.isTalismanMaterial(itemStack.getType())) {
return;
}
revertDisplay(item);
revert(itemStack);
ItemMeta meta = item.getItemMeta();
if (meta == null) {
return item;
}
ItemMeta meta = itemStack.getItemMeta();
assert meta != null;
List<String> itemLore = new ArrayList<>();
@@ -80,10 +46,10 @@ public class TalismanDisplay {
itemLore = new ArrayList<>();
}
Talisman talisman = TalismanChecks.getTalismanOnItem(item);
Talisman talisman = TalismanChecks.getTalismanOnItem(itemStack);
if (talisman == null) {
return item;
return;
}
if (meta instanceof SkullMeta) {
@@ -98,8 +64,31 @@ public class TalismanDisplay {
lore.addAll(itemLore);
meta.setLore(lore);
item.setItemMeta(meta);
itemStack.setItemMeta(meta);
}
return item;
@Override
protected void revert(@NotNull final ItemStack itemStack) {
if (itemStack.getItemMeta() == null) {
return;
}
ItemMeta meta = itemStack.getItemMeta();
List<String> itemLore;
if (meta.hasLore()) {
itemLore = meta.getLore();
} else {
itemLore = new ArrayList<>();
}
if (itemLore == null) {
itemLore = new ArrayList<>();
}
itemLore.removeIf(s -> s.startsWith("§z"));
meta.setLore(itemLore);
itemStack.setItemMeta(meta);
}
}

View File

@@ -1,16 +1,15 @@
package com.willfp.talismans.talismans;
import com.willfp.eco.util.StringUtils;
import com.willfp.eco.util.display.Display;
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.RecipeParts;
import com.willfp.eco.util.recipe.parts.ComplexRecipePart;
import com.willfp.eco.util.recipe.recipes.EcoShapedRecipe;
import com.willfp.talismans.TalismansPlugin;
import com.willfp.talismans.config.TalismansConfigs;
import com.willfp.talismans.config.configs.TalismanConfig;
import com.willfp.talismans.display.TalismanDisplay;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import com.willfp.talismans.talismans.util.TalismanUtils;
@@ -41,7 +40,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
@SuppressWarnings({"unchecked", "deprecation", "RedundantSuppression"})
@SuppressWarnings({"unchecked", "deprecation"})
public abstract class Talisman implements Listener, Watcher {
/**
* Instance of Talismans for talismans to be able to access.
@@ -192,7 +191,7 @@ public abstract class Talisman implements Listener, Watcher {
disabledWorlds.clear();
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());
.map(s -> Display.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());
@@ -208,14 +207,11 @@ public abstract class Talisman implements Listener, Watcher {
PersistentDataContainer container = outMeta.getPersistentDataContainer();
container.set(this.getKey(), PersistentDataType.INTEGER, 1);
out.setItemMeta(outMeta);
TalismanDisplay.displayTalisman(out);
Display.display(out);
this.itemStack = out;
RecipePartUtils.registerLookup(this.getKey().toString(), s -> {
Talisman talisman = Talismans.getByKey(this.getPlugin().getNamespacedKeyFactory().create(s.split(":")[1]));
return new ComplexRecipePart(test -> Objects.equals(talisman, TalismanChecks.getTalismanOnItem(test)), out);
});
RecipeParts.registerRecipePart(this.getKey(), new ComplexRecipePart(test -> Objects.equals(this, TalismanChecks.getTalismanOnItem(test)), out));
if (this.isCraftable() && this.isEnabled()) {
EcoShapedRecipe.Builder builder = EcoShapedRecipe.builder(this.getPlugin(), this.getKey().getKey())
@@ -224,7 +220,7 @@ public abstract class Talisman implements Listener, Watcher {
List<String> recipeStrings = this.getConfig().getStrings(Talismans.OBTAINING_LOCATION + "recipe");
for (int i = 0; i < 9; i++) {
builder.setRecipePart(i, RecipePartUtils.lookup(recipeStrings.get(i)));
builder.setRecipePart(i, RecipeParts.lookup(recipeStrings.get(i)));
}
this.recipe = builder.build();

View File

@@ -2,9 +2,9 @@ package com.willfp.talismans.talismans.util;
import com.willfp.eco.util.internal.PluginDependent;
import com.willfp.eco.util.plugin.AbstractEcoPlugin;
import com.willfp.eco.util.recipe.EcoShapedRecipe;
import com.willfp.eco.util.recipe.parts.RecipePart;
import com.willfp.eco.util.recipe.parts.SimpleRecipePart;
import com.willfp.eco.util.recipe.recipes.EcoShapedRecipe;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import org.bukkit.Material;

View File

@@ -1,2 +1,2 @@
version = 1.12.2
version = 1.13.0
plugin-name = Talismans