Refactored talismans

This commit is contained in:
Auxilor
2021-01-25 09:03:44 +00:00
parent 97585351a2
commit 2537134b01
79 changed files with 169 additions and 2219 deletions

View File

@@ -1,19 +0,0 @@
package com.willfp.talismans.proxy.v1_15_R1;
import com.willfp.talismans.proxy.proxies.AutoCraftProxy;
import net.minecraft.server.v1_15_R1.MinecraftKey;
import net.minecraft.server.v1_15_R1.PacketPlayOutAutoRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
public final class AutoCraft implements AutoCraftProxy {
@Override
public void modifyPacket(@NotNull final Object packet) throws NoSuchFieldException, IllegalAccessException {
PacketPlayOutAutoRecipe recipePacket = (PacketPlayOutAutoRecipe) packet;
Field fKey = recipePacket.getClass().getDeclaredField("b");
fKey.setAccessible(true);
MinecraftKey key = (MinecraftKey) fKey.get(recipePacket);
fKey.set(recipePacket, new MinecraftKey("talismans", key.getKey() + "_displayed"));
}
}

View File

@@ -1,11 +0,0 @@
package com.willfp.talismans.proxy.v1_15_R1;
import com.willfp.talismans.proxy.proxies.ChatComponentProxy;
import org.jetbrains.annotations.NotNull;
public final class ChatComponent implements ChatComponentProxy {
@Override
public Object modifyComponent(@NotNull final Object object) {
return object;
}
}

View File

@@ -1,46 +0,0 @@
package com.willfp.talismans.proxy.v1_15_R1;
import com.willfp.talismans.proxy.proxies.VillagerTradeProxy;
import com.willfp.talismans.display.TalismanDisplay;
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftMerchantRecipe;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public final class VillagerTrade implements VillagerTradeProxy {
@Override
public void displayTradeTalismans(@NotNull final MerchantRecipe merchantRecipe) {
try {
// Enables removing final modifier
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
// Bukkit MerchantRecipe result
Field fResult = MerchantRecipe.class.getDeclaredField("result");
fResult.setAccessible(true);
ItemStack result = TalismanDisplay.displayTalisman(merchantRecipe.getResult());
fResult.set(merchantRecipe, result);
// Get NMS MerchantRecipe from CraftMerchantRecipe
Field fHandle = CraftMerchantRecipe.class.getDeclaredField("handle");
fHandle.setAccessible(true);
net.minecraft.server.v1_15_R1.MerchantRecipe handle = (net.minecraft.server.v1_15_R1.MerchantRecipe) fHandle.get(merchantRecipe); // NMS Recipe
modifiersField.setInt(fHandle, fHandle.getModifiers() & ~Modifier.FINAL); // Remove final
Field fSelling = net.minecraft.server.v1_15_R1.MerchantRecipe.class.getDeclaredField("sellingItem");
fSelling.setAccessible(true);
modifiersField.setInt(fSelling, fSelling.getModifiers() & ~Modifier.FINAL);
ItemStack selling = CraftItemStack.asBukkitCopy(handle.sellingItem);
TalismanDisplay.displayTalisman(selling);
fSelling.set(handle, CraftItemStack.asNMSCopy(selling));
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
}
}

View File

@@ -1,19 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R1;
import com.willfp.talismans.proxy.proxies.AutoCraftProxy;
import net.minecraft.server.v1_16_R1.MinecraftKey;
import net.minecraft.server.v1_16_R1.PacketPlayOutAutoRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
public final class AutoCraft implements AutoCraftProxy {
@Override
public void modifyPacket(@NotNull final Object packet) throws NoSuchFieldException, IllegalAccessException {
PacketPlayOutAutoRecipe recipePacket = (PacketPlayOutAutoRecipe) packet;
Field fKey = recipePacket.getClass().getDeclaredField("b");
fKey.setAccessible(true);
MinecraftKey key = (MinecraftKey) fKey.get(recipePacket);
fKey.set(recipePacket, new MinecraftKey("talismans", key.getKey() + "_displayed"));
}
}

View File

@@ -1,104 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R1;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.willfp.talismans.proxy.proxies.ChatComponentProxy;
import com.willfp.talismans.display.TalismanDisplay;
import net.minecraft.server.v1_16_R1.ChatBaseComponent;
import net.minecraft.server.v1_16_R1.ChatHoverable;
import net.minecraft.server.v1_16_R1.ChatMessage;
import net.minecraft.server.v1_16_R1.ChatModifier;
import net.minecraft.server.v1_16_R1.IChatBaseComponent;
import net.minecraft.server.v1_16_R1.MojangsonParser;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
public final class ChatComponent implements ChatComponentProxy {
@Override
public Object modifyComponent(@NotNull final Object object) {
if (!(object instanceof IChatBaseComponent)) {
return object;
}
IChatBaseComponent chatComponent = (IChatBaseComponent) object;
chatComponent.stream().forEach(this::modifyBaseComponent);
return chatComponent;
}
private void modifyBaseComponent(@NotNull final IChatBaseComponent component) {
component.getSiblings().forEach(this::modifyBaseComponent);
if (component instanceof ChatMessage) {
Arrays.stream(((ChatMessage) component).getArgs())
.filter(o -> o instanceof IChatBaseComponent)
.map(o -> (IChatBaseComponent) o)
.forEach(this::modifyBaseComponent);
}
ChatHoverable hoverable = component.getChatModifier().getHoverEvent();
if (hoverable == null) {
return;
}
JsonObject jsonObject = hoverable.b();
JsonElement json = hoverable.b().get("contents");
if (json.getAsJsonObject().get("id") == null) {
return;
}
if (json.getAsJsonObject().get("tag") == null) {
return;
}
String id = json.getAsJsonObject().get("id").toString();
String tag = json.getAsJsonObject().get("tag").toString();
ItemStack itemStack = getFromTag(tag, id);
itemStack = TalismanDisplay.displayTalisman(itemStack);
json.getAsJsonObject().remove("tag");
String newTag = toJson(itemStack);
json.getAsJsonObject().add("tag", new JsonPrimitive(newTag));
jsonObject.remove("contents");
jsonObject.add("contents", json);
ChatHoverable newHoverable = ChatHoverable.a(jsonObject);
ChatModifier modifier = component.getChatModifier();
modifier = modifier.setChatHoverable(newHoverable);
((ChatBaseComponent) component).setChatModifier(modifier);
}
private static ItemStack getFromTag(@NotNull final String jsonTag,
@NotNull final String id) {
String processedId = id;
String processedJsonTag = jsonTag;
processedId = processedId.replace("minecraft:", "");
processedId = processedId.toUpperCase();
processedId = processedId.replace("\"", "");
processedJsonTag = processedJsonTag.substring(1, processedJsonTag.length() - 1);
processedJsonTag = processedJsonTag.replace("id:", "\"id\":");
processedJsonTag = processedJsonTag.replace("\\", "");
Material material = Material.getMaterial(processedId);
assert material != null;
ItemStack itemStack = new ItemStack(material);
net.minecraft.server.v1_16_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
try {
nmsStack.setTag(MojangsonParser.parse(processedJsonTag));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
return CraftItemStack.asBukkitCopy(nmsStack);
}
private static String toJson(@NotNull final ItemStack itemStack) {
return CraftItemStack.asNMSCopy(itemStack).getOrCreateTag().toString();
}
}

View File

@@ -1,46 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R1;
import com.willfp.talismans.proxy.proxies.VillagerTradeProxy;
import com.willfp.talismans.display.TalismanDisplay;
import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftMerchantRecipe;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public final class VillagerTrade implements VillagerTradeProxy {
@Override
public void displayTradeTalismans(@NotNull final MerchantRecipe merchantRecipe) {
try {
// Enables removing final modifier
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
// Bukkit MerchantRecipe result
Field fResult = MerchantRecipe.class.getDeclaredField("result");
fResult.setAccessible(true);
ItemStack result = TalismanDisplay.displayTalisman(merchantRecipe.getResult());
fResult.set(merchantRecipe, result);
// Get NMS MerchantRecipe from CraftMerchantRecipe
Field fHandle = CraftMerchantRecipe.class.getDeclaredField("handle");
fHandle.setAccessible(true);
net.minecraft.server.v1_16_R1.MerchantRecipe handle = (net.minecraft.server.v1_16_R1.MerchantRecipe) fHandle.get(merchantRecipe); // NMS Recipe
modifiersField.setInt(fHandle, fHandle.getModifiers() & ~Modifier.FINAL); // Remove final
Field fSelling = net.minecraft.server.v1_16_R1.MerchantRecipe.class.getDeclaredField("sellingItem");
fSelling.setAccessible(true);
modifiersField.setInt(fSelling, fSelling.getModifiers() & ~Modifier.FINAL);
ItemStack selling = CraftItemStack.asBukkitCopy(handle.sellingItem);
TalismanDisplay.displayTalisman(selling);
fSelling.set(handle, CraftItemStack.asNMSCopy(selling));
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
}
}

View File

@@ -1,19 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R2;
import com.willfp.talismans.proxy.proxies.AutoCraftProxy;
import net.minecraft.server.v1_16_R2.MinecraftKey;
import net.minecraft.server.v1_16_R2.PacketPlayOutAutoRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
public final class AutoCraft implements AutoCraftProxy {
@Override
public void modifyPacket(@NotNull final Object packet) throws NoSuchFieldException, IllegalAccessException {
PacketPlayOutAutoRecipe recipePacket = (PacketPlayOutAutoRecipe) packet;
Field fKey = recipePacket.getClass().getDeclaredField("b");
fKey.setAccessible(true);
MinecraftKey key = (MinecraftKey) fKey.get(recipePacket);
fKey.set(recipePacket, new MinecraftKey("talismans", key.getKey() + "_displayed"));
}
}

View File

@@ -1,104 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R2;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.willfp.talismans.proxy.proxies.ChatComponentProxy;
import com.willfp.talismans.display.TalismanDisplay;
import net.minecraft.server.v1_16_R2.ChatBaseComponent;
import net.minecraft.server.v1_16_R2.ChatHoverable;
import net.minecraft.server.v1_16_R2.ChatMessage;
import net.minecraft.server.v1_16_R2.ChatModifier;
import net.minecraft.server.v1_16_R2.IChatBaseComponent;
import net.minecraft.server.v1_16_R2.MojangsonParser;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_16_R2.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
public final class ChatComponent implements ChatComponentProxy {
@Override
public Object modifyComponent(@NotNull final Object object) {
if (!(object instanceof IChatBaseComponent)) {
return object;
}
IChatBaseComponent chatComponent = (IChatBaseComponent) object;
chatComponent.stream().forEach(this::modifyBaseComponent);
return chatComponent;
}
private void modifyBaseComponent(@NotNull final IChatBaseComponent component) {
component.getSiblings().forEach(this::modifyBaseComponent);
if (component instanceof ChatMessage) {
Arrays.stream(((ChatMessage) component).getArgs())
.filter(o -> o instanceof IChatBaseComponent)
.map(o -> (IChatBaseComponent) o)
.forEach(this::modifyBaseComponent);
}
ChatHoverable hoverable = component.getChatModifier().getHoverEvent();
if (hoverable == null) {
return;
}
JsonObject jsonObject = hoverable.b();
JsonElement json = hoverable.b().get("contents");
if (json.getAsJsonObject().get("id") == null) {
return;
}
if (json.getAsJsonObject().get("tag") == null) {
return;
}
String id = json.getAsJsonObject().get("id").toString();
String tag = json.getAsJsonObject().get("tag").toString();
ItemStack itemStack = getFromTag(tag, id);
itemStack = TalismanDisplay.displayTalisman(itemStack);
json.getAsJsonObject().remove("tag");
String newTag = toJson(itemStack);
json.getAsJsonObject().add("tag", new JsonPrimitive(newTag));
jsonObject.remove("contents");
jsonObject.add("contents", json);
ChatHoverable newHoverable = ChatHoverable.a(jsonObject);
ChatModifier modifier = component.getChatModifier();
modifier = modifier.setChatHoverable(newHoverable);
((ChatBaseComponent) component).setChatModifier(modifier);
}
private static ItemStack getFromTag(@NotNull final String jsonTag,
@NotNull final String id) {
String processedId = id;
String processedJsonTag = jsonTag;
processedId = processedId.replace("minecraft:", "");
processedId = processedId.toUpperCase();
processedId = processedId.replace("\"", "");
processedJsonTag = processedJsonTag.substring(1, processedJsonTag.length() - 1);
processedJsonTag = processedJsonTag.replace("id:", "\"id\":");
processedJsonTag = processedJsonTag.replace("\\", "");
Material material = Material.getMaterial(processedId);
assert material != null;
ItemStack itemStack = new ItemStack(material);
net.minecraft.server.v1_16_R2.ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
try {
nmsStack.setTag(MojangsonParser.parse(processedJsonTag));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
return CraftItemStack.asBukkitCopy(nmsStack);
}
private static String toJson(@NotNull final ItemStack itemStack) {
return CraftItemStack.asNMSCopy(itemStack).getOrCreateTag().toString();
}
}

View File

@@ -1,46 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R2;
import com.willfp.talismans.proxy.proxies.VillagerTradeProxy;
import com.willfp.talismans.display.TalismanDisplay;
import org.bukkit.craftbukkit.v1_16_R2.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_16_R2.inventory.CraftMerchantRecipe;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public final class VillagerTrade implements VillagerTradeProxy {
@Override
public void displayTradeTalismans(@NotNull final MerchantRecipe merchantRecipe) {
try {
// Enables removing final modifier
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
// Bukkit MerchantRecipe result
Field fResult = MerchantRecipe.class.getDeclaredField("result");
fResult.setAccessible(true);
ItemStack result = TalismanDisplay.displayTalisman(merchantRecipe.getResult());
fResult.set(merchantRecipe, result);
// Get NMS MerchantRecipe from CraftMerchantRecipe
Field fHandle = CraftMerchantRecipe.class.getDeclaredField("handle");
fHandle.setAccessible(true);
net.minecraft.server.v1_16_R2.MerchantRecipe handle = (net.minecraft.server.v1_16_R2.MerchantRecipe) fHandle.get(merchantRecipe); // NMS Recipe
modifiersField.setInt(fHandle, fHandle.getModifiers() & ~Modifier.FINAL); // Remove final
Field fSelling = net.minecraft.server.v1_16_R2.MerchantRecipe.class.getDeclaredField("sellingItem");
fSelling.setAccessible(true);
modifiersField.setInt(fSelling, fSelling.getModifiers() & ~Modifier.FINAL);
ItemStack selling = CraftItemStack.asBukkitCopy(handle.sellingItem);
TalismanDisplay.displayTalisman(selling);
fSelling.set(handle, CraftItemStack.asNMSCopy(selling));
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
}
}

View File

@@ -1,19 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R3;
import com.willfp.talismans.proxy.proxies.AutoCraftProxy;
import net.minecraft.server.v1_16_R3.MinecraftKey;
import net.minecraft.server.v1_16_R3.PacketPlayOutAutoRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
public final class AutoCraft implements AutoCraftProxy {
@Override
public void modifyPacket(@NotNull final Object packet) throws NoSuchFieldException, IllegalAccessException {
PacketPlayOutAutoRecipe recipePacket = (PacketPlayOutAutoRecipe) packet;
Field fKey = recipePacket.getClass().getDeclaredField("b");
fKey.setAccessible(true);
MinecraftKey key = (MinecraftKey) fKey.get(recipePacket);
fKey.set(recipePacket, new MinecraftKey("talismans", key.getKey() + "_displayed"));
}
}

View File

@@ -1,104 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R3;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.willfp.talismans.proxy.proxies.ChatComponentProxy;
import com.willfp.talismans.display.TalismanDisplay;
import net.minecraft.server.v1_16_R3.ChatBaseComponent;
import net.minecraft.server.v1_16_R3.ChatHoverable;
import net.minecraft.server.v1_16_R3.ChatMessage;
import net.minecraft.server.v1_16_R3.ChatModifier;
import net.minecraft.server.v1_16_R3.IChatBaseComponent;
import net.minecraft.server.v1_16_R3.MojangsonParser;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
public final class ChatComponent implements ChatComponentProxy {
@Override
public Object modifyComponent(@NotNull final Object object) {
if (!(object instanceof IChatBaseComponent)) {
return object;
}
IChatBaseComponent chatComponent = (IChatBaseComponent) object;
chatComponent.stream().forEach(this::modifyBaseComponent);
return chatComponent;
}
private void modifyBaseComponent(@NotNull final IChatBaseComponent component) {
component.getSiblings().forEach(this::modifyBaseComponent);
if (component instanceof ChatMessage) {
Arrays.stream(((ChatMessage) component).getArgs())
.filter(o -> o instanceof IChatBaseComponent)
.map(o -> (IChatBaseComponent) o)
.forEach(this::modifyBaseComponent);
}
ChatHoverable hoverable = component.getChatModifier().getHoverEvent();
if (hoverable == null) {
return;
}
JsonObject jsonObject = hoverable.b();
JsonElement json = hoverable.b().get("contents");
if (json.getAsJsonObject().get("id") == null) {
return;
}
if (json.getAsJsonObject().get("tag") == null) {
return;
}
String id = json.getAsJsonObject().get("id").toString();
String tag = json.getAsJsonObject().get("tag").toString();
ItemStack itemStack = getFromTag(tag, id);
itemStack = TalismanDisplay.displayTalisman(itemStack);
json.getAsJsonObject().remove("tag");
String newTag = toJson(itemStack);
json.getAsJsonObject().add("tag", new JsonPrimitive(newTag));
jsonObject.remove("contents");
jsonObject.add("contents", json);
ChatHoverable newHoverable = ChatHoverable.a(jsonObject);
ChatModifier modifier = component.getChatModifier();
modifier = modifier.setChatHoverable(newHoverable);
((ChatBaseComponent) component).setChatModifier(modifier);
}
private static ItemStack getFromTag(@NotNull final String jsonTag,
@NotNull final String id) {
String processedId = id;
String processedJsonTag = jsonTag;
processedId = processedId.replace("minecraft:", "");
processedId = processedId.toUpperCase();
processedId = processedId.replace("\"", "");
processedJsonTag = processedJsonTag.substring(1, processedJsonTag.length() - 1);
processedJsonTag = processedJsonTag.replace("id:", "\"id\":");
processedJsonTag = processedJsonTag.replace("\\", "");
Material material = Material.getMaterial(processedId);
assert material != null;
ItemStack itemStack = new ItemStack(material);
net.minecraft.server.v1_16_R3.ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
try {
nmsStack.setTag(MojangsonParser.parse(processedJsonTag));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
return CraftItemStack.asBukkitCopy(nmsStack);
}
private static String toJson(@NotNull final ItemStack itemStack) {
return CraftItemStack.asNMSCopy(itemStack).getOrCreateTag().toString();
}
}

View File

@@ -1,46 +0,0 @@
package com.willfp.talismans.proxy.v1_16_R3;
import com.willfp.talismans.proxy.proxies.VillagerTradeProxy;
import com.willfp.talismans.display.TalismanDisplay;
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftMerchantRecipe;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MerchantRecipe;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public final class VillagerTrade implements VillagerTradeProxy {
@Override
public void displayTradeTalismans(@NotNull final MerchantRecipe merchantRecipe) {
try {
// Enables removing final modifier
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
// Bukkit MerchantRecipe result
Field fResult = MerchantRecipe.class.getDeclaredField("result");
fResult.setAccessible(true);
ItemStack result = TalismanDisplay.displayTalisman(merchantRecipe.getResult());
fResult.set(merchantRecipe, result);
// Get NMS MerchantRecipe from CraftMerchantRecipe
Field fHandle = CraftMerchantRecipe.class.getDeclaredField("handle");
fHandle.setAccessible(true);
net.minecraft.server.v1_16_R3.MerchantRecipe handle = (net.minecraft.server.v1_16_R3.MerchantRecipe) fHandle.get(merchantRecipe); // NMS Recipe
modifiersField.setInt(fHandle, fHandle.getModifiers() & ~Modifier.FINAL); // Remove final
Field fSelling = net.minecraft.server.v1_16_R3.MerchantRecipe.class.getDeclaredField("sellingItem");
fSelling.setAccessible(true);
modifiersField.setInt(fSelling, fSelling.getModifiers() & ~Modifier.FINAL);
ItemStack selling = CraftItemStack.asBukkitCopy(handle.sellingItem);
TalismanDisplay.displayTalisman(selling);
fSelling.set(handle, CraftItemStack.asNMSCopy(selling));
} catch (IllegalAccessException | NoSuchFieldException e) {
e.printStackTrace();
}
}
}

View File

@@ -138,7 +138,7 @@ public abstract class Talisman implements Listener, Watcher {
@NotNull final TalismanStrength strength,
@NotNull final Prerequisite... prerequisites) {
this.strength = strength;
this.key = this.getPlugin().getNamespacedKeyFactory().create(key);
this.key = this.getPlugin().getNamespacedKeyFactory().create(key + "_" + strength.name().toLowerCase());
this.configName = key.replace("_", "");
TalismansConfigs.addTalismanConfig(new TalismanConfig(this.configName, this.strength, this.getClass()));
this.config = TalismansConfigs.getTalismanConfig(this.configName);

View File

@@ -5,67 +5,32 @@ import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableList;
import com.willfp.eco.util.config.updating.annotations.ConfigUpdater;
import com.willfp.talismans.talismans.talismans.relic.AlchemyRelic;
import com.willfp.talismans.talismans.talismans.relic.ArcheryRelic;
import com.willfp.talismans.talismans.talismans.relic.BossRelic;
import com.willfp.talismans.talismans.talismans.relic.EndRelic;
import com.willfp.talismans.talismans.talismans.relic.ExperienceRelic;
import com.willfp.talismans.talismans.talismans.relic.ExtractionRelic;
import com.willfp.talismans.talismans.talismans.relic.FeatherRelic;
import com.willfp.talismans.talismans.talismans.relic.FlameRelic;
import com.willfp.talismans.talismans.talismans.relic.FluxRelic;
import com.willfp.talismans.talismans.talismans.relic.GravityRelic;
import com.willfp.talismans.talismans.talismans.relic.HealingRelic;
import com.willfp.talismans.talismans.talismans.relic.NetherRelic;
import com.willfp.talismans.talismans.talismans.relic.PoseidonRelic;
import com.willfp.talismans.talismans.talismans.relic.RaidRelic;
import com.willfp.talismans.talismans.talismans.relic.ResistanceRelic;
import com.willfp.talismans.talismans.talismans.relic.SharpnessRelic;
import com.willfp.talismans.talismans.talismans.relic.SpeedRelic;
import com.willfp.talismans.talismans.talismans.relic.StrengthRelic;
import com.willfp.talismans.talismans.talismans.ring.AlchemyRing;
import com.willfp.talismans.talismans.talismans.ring.ArcheryRing;
import com.willfp.talismans.talismans.talismans.ring.BossRing;
import com.willfp.talismans.talismans.talismans.ring.EndRing;
import com.willfp.talismans.talismans.talismans.ring.ExperienceRing;
import com.willfp.talismans.talismans.talismans.ring.ExtractionRing;
import com.willfp.talismans.talismans.talismans.ring.FeatherRing;
import com.willfp.talismans.talismans.talismans.ring.FlameRing;
import com.willfp.talismans.talismans.talismans.ring.FluxRing;
import com.willfp.talismans.talismans.talismans.ring.GravityRing;
import com.willfp.talismans.talismans.talismans.ring.HealingRing;
import com.willfp.talismans.talismans.talismans.ring.NetherRing;
import com.willfp.talismans.talismans.talismans.ring.PoseidonRing;
import com.willfp.talismans.talismans.talismans.ring.RaidRing;
import com.willfp.talismans.talismans.talismans.ring.ResistanceRing;
import com.willfp.talismans.talismans.talismans.ring.SharpnessRing;
import com.willfp.talismans.talismans.talismans.ring.SpeedRing;
import com.willfp.talismans.talismans.talismans.ring.StrengthRing;
import com.willfp.talismans.talismans.talismans.talisman.AlchemyTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ArcheryTalisman;
import com.willfp.talismans.talismans.talismans.talisman.BossTalisman;
import com.willfp.talismans.talismans.talismans.talisman.CreeperTalisman;
import com.willfp.talismans.talismans.talismans.talisman.EndTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ExperienceTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ExtractionTalisman;
import com.willfp.talismans.talismans.talismans.talisman.FeatherTalisman;
import com.willfp.talismans.talismans.talismans.talisman.FlameTalisman;
import com.willfp.talismans.talismans.talismans.talisman.FluxTalisman;
import com.willfp.talismans.talismans.talismans.talisman.GravityTalisman;
import com.willfp.talismans.talismans.talismans.talisman.HealingTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ImmunityTalisman;
import com.willfp.talismans.talismans.talismans.talisman.NetherTalisman;
import com.willfp.talismans.talismans.talismans.talisman.PoseidonTalisman;
import com.willfp.talismans.talismans.talismans.talisman.RaidTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ResistanceTalisman;
import com.willfp.talismans.talismans.talismans.talisman.SharpnessTalisman;
import com.willfp.talismans.talismans.talismans.talisman.SkeletonTalisman;
import com.willfp.talismans.talismans.talismans.talisman.SpeedTalisman;
import com.willfp.talismans.talismans.talismans.talisman.SpiderResistanceTalisman;
import com.willfp.talismans.talismans.talismans.talisman.SpiderTalisman;
import com.willfp.talismans.talismans.talismans.talisman.StrengthTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ZombieResistanceTalisman;
import com.willfp.talismans.talismans.talismans.talisman.ZombieTalisman;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.talismans.AlchemyTalisman;
import com.willfp.talismans.talismans.talismans.ArcheryTalisman;
import com.willfp.talismans.talismans.talismans.BossTalisman;
import com.willfp.talismans.talismans.talismans.CreeperTalisman;
import com.willfp.talismans.talismans.talismans.EndTalisman;
import com.willfp.talismans.talismans.talismans.ExperienceTalisman;
import com.willfp.talismans.talismans.talismans.ExtractionTalisman;
import com.willfp.talismans.talismans.talismans.FeatherTalisman;
import com.willfp.talismans.talismans.talismans.FlameTalisman;
import com.willfp.talismans.talismans.talismans.FluxTalisman;
import com.willfp.talismans.talismans.talismans.GravityTalisman;
import com.willfp.talismans.talismans.talismans.HealingTalisman;
import com.willfp.talismans.talismans.talismans.ImmunityTalisman;
import com.willfp.talismans.talismans.talismans.NetherTalisman;
import com.willfp.talismans.talismans.talismans.PoseidonTalisman;
import com.willfp.talismans.talismans.talismans.RaidTalisman;
import com.willfp.talismans.talismans.talismans.ResistanceTalisman;
import com.willfp.talismans.talismans.talismans.SharpnessTalisman;
import com.willfp.talismans.talismans.talismans.SkeletonTalisman;
import com.willfp.talismans.talismans.talismans.SpeedTalisman;
import com.willfp.talismans.talismans.talismans.SpiderResistanceTalisman;
import com.willfp.talismans.talismans.talismans.SpiderTalisman;
import com.willfp.talismans.talismans.talismans.StrengthTalisman;
import com.willfp.talismans.talismans.talismans.ZombieResistanceTalisman;
import com.willfp.talismans.talismans.talismans.ZombieTalisman;
import lombok.experimental.UtilityClass;
import org.bukkit.NamespacedKey;
import org.jetbrains.annotations.NotNull;
@@ -84,67 +49,67 @@ public class Talismans {
private static final BiMap<NamespacedKey, Talisman> BY_KEY = HashBiMap.create();
public static final Talisman ZOMBIE_TALISMAN = new ZombieTalisman();
public static final Talisman SKELETON_TALISMAN = new SkeletonTalisman();
public static final Talisman CREEPER_TALISMAN = new CreeperTalisman();
public static final Talisman SPIDER_TALISMAN = new SpiderTalisman();
public static final Talisman RAID_TALISMAN = new RaidTalisman();
public static final Talisman NETHER_TALISMAN = new NetherTalisman();
public static final Talisman END_TALISMAN = new EndTalisman();
public static final Talisman FEATHER_TALISMAN = new FeatherTalisman();
public static final Talisman FLAME_TALISMAN = new FlameTalisman();
public static final Talisman ARCHERY_TALISMAN = new ArcheryTalisman();
public static final Talisman POSEIDON_TALISMAN = new PoseidonTalisman();
public static final Talisman EXPERIENCE_TALISMAN = new ExperienceTalisman();
public static final Talisman EXTRACTION_TALISMAN = new ExtractionTalisman();
public static final Talisman SHARPNESS_TALISMAN = new SharpnessTalisman();
public static final Talisman ZOMBIE_RESISTANCE_TALISMAN = new ZombieResistanceTalisman();
public static final Talisman SPIDER_RESISTANCE_TALISMAN = new SpiderResistanceTalisman();
public static final Talisman RESISTANCE_TALISMAN = new ResistanceTalisman();
public static final Talisman STRENGTH_TALISMAN = new StrengthTalisman();
public static final Talisman ARCHERY_RING = new ArcheryRing();
public static final Talisman END_RING = new EndRing();
public static final Talisman EXPERIENCE_RING = new ExperienceRing();
public static final Talisman EXTRACTION_RING = new ExtractionRing();
public static final Talisman FEATHER_RING = new FeatherRing();
public static final Talisman FLAME_RING = new FlameRing();
public static final Talisman NETHER_RING = new NetherRing();
public static final Talisman POSEIDON_RING = new PoseidonRing();
public static final Talisman RESISTANCE_RING = new ResistanceRing();
public static final Talisman SHARPNESS_RING = new SharpnessRing();
public static final Talisman STRENGTH_RING = new StrengthRing();
public static final Talisman ARCHERY_RELIC = new ArcheryRelic();
public static final Talisman END_RELIC = new EndRelic();
public static final Talisman EXPERIENCE_RELIC = new ExperienceRelic();
public static final Talisman EXTRACTION_RELIC = new ExtractionRelic();
public static final Talisman FEATHER_RELIC = new FeatherRelic();
public static final Talisman FLAME_RELIC = new FlameRelic();
public static final Talisman NETHER_RELIC = new NetherRelic();
public static final Talisman POSEIDON_RELIC = new PoseidonRelic();
public static final Talisman RESISTANCE_RELIC = new ResistanceRelic();
public static final Talisman SHARPNESS_RELIC = new SharpnessRelic();
public static final Talisman STRENGTH_RELIC = new StrengthRelic();
public static final Talisman RAID_RING = new RaidRing();
public static final Talisman RAID_RELIC = new RaidRelic();
public static final Talisman ALCHEMY_TALISMAN = new AlchemyTalisman();
public static final Talisman ALCHEMY_RING = new AlchemyRing();
public static final Talisman ALCHEMY_RELIC = new AlchemyRelic();
public static final Talisman IMMUNITY_TALISMAN = new ImmunityTalisman();
public static final Talisman FLUX_TALISMAN = new FluxTalisman();
public static final Talisman FLUX_RING = new FluxRing();
public static final Talisman FLUX_RELIC = new FluxRelic();
public static final Talisman HEALING_TALISMAN = new HealingTalisman();
public static final Talisman HEALING_RING = new HealingRing();
public static final Talisman HEALING_RELIC = new HealingRelic();
public static final Talisman SPEED_TALISMAN = new SpeedTalisman();
public static final Talisman SPEED_RING = new SpeedRing();
public static final Talisman SPEED_RELIC = new SpeedRelic();
public static final Talisman BOSS_TALISMAN = new BossTalisman();
public static final Talisman BOSS_RING = new BossRing();
public static final Talisman BOSS_RELIC = new BossRelic();
public static final Talisman GRAVITY_TALISMAN = new GravityTalisman();
public static final Talisman GRAVITY_RING = new GravityRing();
public static final Talisman GRAVITY_RELIC = new GravityRelic();
public static final Talisman ZOMBIE_TALISMAN = new ZombieTalisman(TalismanStrength.TALISMAN);
public static final Talisman SKELETON_TALISMAN = new SkeletonTalisman(TalismanStrength.TALISMAN);
public static final Talisman CREEPER_TALISMAN = new CreeperTalisman(TalismanStrength.TALISMAN);
public static final Talisman SPIDER_TALISMAN = new SpiderTalisman(TalismanStrength.TALISMAN);
public static final Talisman RAID_TALISMAN = new RaidTalisman(TalismanStrength.TALISMAN);
public static final Talisman NETHER_TALISMAN = new NetherTalisman(TalismanStrength.TALISMAN);
public static final Talisman END_TALISMAN = new EndTalisman(TalismanStrength.TALISMAN);
public static final Talisman FEATHER_TALISMAN = new FeatherTalisman(TalismanStrength.TALISMAN);
public static final Talisman FLAME_TALISMAN = new FlameTalisman(TalismanStrength.TALISMAN);
public static final Talisman ARCHERY_TALISMAN = new ArcheryTalisman(TalismanStrength.TALISMAN);
public static final Talisman POSEIDON_TALISMAN = new PoseidonTalisman(TalismanStrength.TALISMAN);
public static final Talisman EXPERIENCE_TALISMAN = new ExperienceTalisman(TalismanStrength.TALISMAN);
public static final Talisman EXTRACTION_TALISMAN = new ExtractionTalisman(TalismanStrength.TALISMAN);
public static final Talisman SHARPNESS_TALISMAN = new SharpnessTalisman(TalismanStrength.TALISMAN);
public static final Talisman ZOMBIE_RESISTANCE_TALISMAN = new ZombieResistanceTalisman(TalismanStrength.TALISMAN);
public static final Talisman SPIDER_RESISTANCE_TALISMAN = new SpiderResistanceTalisman(TalismanStrength.TALISMAN);
public static final Talisman RESISTANCE_TALISMAN = new ResistanceTalisman(TalismanStrength.TALISMAN);
public static final Talisman STRENGTH_TALISMAN = new StrengthTalisman(TalismanStrength.TALISMAN);
public static final Talisman ARCHERY_RING = new ArcheryTalisman(TalismanStrength.RING);
public static final Talisman END_RING = new EndTalisman(TalismanStrength.RING);
public static final Talisman EXPERIENCE_RING = new ExperienceTalisman(TalismanStrength.RING);
public static final Talisman EXTRACTION_RING = new ExtractionTalisman(TalismanStrength.RING);
public static final Talisman FEATHER_RING = new FeatherTalisman(TalismanStrength.RING);
public static final Talisman FLAME_RING = new FlameTalisman(TalismanStrength.RING);
public static final Talisman NETHER_RING = new NetherTalisman(TalismanStrength.RING);
public static final Talisman POSEIDON_RING = new PoseidonTalisman(TalismanStrength.RING);
public static final Talisman RESISTANCE_RING = new ResistanceTalisman(TalismanStrength.RING);
public static final Talisman SHARPNESS_RING = new SharpnessTalisman(TalismanStrength.RING);
public static final Talisman STRENGTH_RING = new StrengthTalisman(TalismanStrength.RING);
public static final Talisman ARCHERY_RELIC = new ArcheryTalisman(TalismanStrength.RELIC);
public static final Talisman END_RELIC = new EndTalisman(TalismanStrength.RELIC);
public static final Talisman EXPERIENCE_RELIC = new ExperienceTalisman(TalismanStrength.RELIC);
public static final Talisman EXTRACTION_RELIC = new ExtractionTalisman(TalismanStrength.RELIC);
public static final Talisman FEATHER_RELIC = new FeatherTalisman(TalismanStrength.RELIC);
public static final Talisman FLAME_RELIC = new FlameTalisman(TalismanStrength.RELIC);
public static final Talisman NETHER_RELIC = new NetherTalisman(TalismanStrength.RELIC);
public static final Talisman POSEIDON_RELIC = new PoseidonTalisman(TalismanStrength.RELIC);
public static final Talisman RESISTANCE_RELIC = new ResistanceTalisman(TalismanStrength.RELIC);
public static final Talisman SHARPNESS_RELIC = new SharpnessTalisman(TalismanStrength.RELIC);
public static final Talisman STRENGTH_RELIC = new StrengthTalisman(TalismanStrength.RELIC);
public static final Talisman RAID_RING = new RaidTalisman(TalismanStrength.RING);
public static final Talisman RAID_RELIC = new RaidTalisman(TalismanStrength.RELIC);
public static final Talisman ALCHEMY_TALISMAN = new AlchemyTalisman(TalismanStrength.TALISMAN);
public static final Talisman ALCHEMY_RING = new AlchemyTalisman(TalismanStrength.RING);
public static final Talisman ALCHEMY_RELIC = new AlchemyTalisman(TalismanStrength.RELIC);
public static final Talisman IMMUNITY_TALISMAN = new ImmunityTalisman(TalismanStrength.TALISMAN);
public static final Talisman FLUX_TALISMAN = new FluxTalisman(TalismanStrength.TALISMAN);
public static final Talisman FLUX_RING = new FluxTalisman(TalismanStrength.RING);
public static final Talisman FLUX_RELIC = new FluxTalisman(TalismanStrength.RELIC);
public static final Talisman HEALING_TALISMAN = new HealingTalisman(TalismanStrength.TALISMAN);
public static final Talisman HEALING_RING = new HealingTalisman(TalismanStrength.RING);
public static final Talisman HEALING_RELIC = new HealingTalisman(TalismanStrength.RELIC);
public static final Talisman SPEED_TALISMAN = new SpeedTalisman(TalismanStrength.TALISMAN);
public static final Talisman SPEED_RING = new SpeedTalisman(TalismanStrength.RING);
public static final Talisman SPEED_RELIC = new SpeedTalisman(TalismanStrength.RELIC);
public static final Talisman BOSS_TALISMAN = new BossTalisman(TalismanStrength.TALISMAN);
public static final Talisman BOSS_RING = new BossTalisman(TalismanStrength.RING);
public static final Talisman BOSS_RELIC = new BossTalisman(TalismanStrength.RELIC);
public static final Talisman GRAVITY_TALISMAN = new GravityTalisman(TalismanStrength.TALISMAN);
public static final Talisman GRAVITY_RING = new GravityTalisman(TalismanStrength.RING);
public static final Talisman GRAVITY_RELIC = new GravityTalisman(TalismanStrength.RELIC);
/**
* Get all registered {@link Talisman}s.

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.meta.TalismanStrength;
@@ -11,8 +11,8 @@ import org.bukkit.potion.PotionEffect;
import org.jetbrains.annotations.NotNull;
public class AlchemyTalisman extends Talisman {
public AlchemyTalisman() {
super("alchemy_talisman", TalismanStrength.TALISMAN);
public AlchemyTalisman(@NotNull final TalismanStrength strength) {
super("alchemy", strength);
}
@EventHandler

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -10,8 +10,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ArcheryTalisman extends Talisman {
public ArcheryTalisman() {
super("archery_talisman", TalismanStrength.TALISMAN);
public ArcheryTalisman(@NotNull final TalismanStrength strength) {
super("archery_talisman", strength);
}
@Override
public void onArrowDamage(@NotNull final Player attacker,

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -13,8 +13,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class BossTalisman extends Talisman {
public BossTalisman() {
super("boss_talisman", TalismanStrength.TALISMAN);
public BossTalisman(@NotNull final TalismanStrength strength) {
super("boss_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class CreeperTalisman extends Talisman {
public CreeperTalisman() {
super("creeper_talisman", TalismanStrength.TALISMAN);
public CreeperTalisman(@NotNull final TalismanStrength strength) {
super("creeper_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class EndTalisman extends Talisman {
public EndTalisman() {
super("end_talisman", TalismanStrength.TALISMAN);
public EndTalisman(@NotNull final TalismanStrength strength) {
super("end_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.eco.util.events.naturalexpgainevent.NaturalExpGainEvent;
import com.willfp.talismans.talismans.Talisman;
@@ -10,8 +10,8 @@ import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
public class ExperienceTalisman extends Talisman {
public ExperienceTalisman() {
super("experience_talisman", TalismanStrength.TALISMAN);
public ExperienceTalisman(@NotNull final TalismanStrength strength) {
super("experience_talisman", strength);
}
@EventHandler

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.eco.util.drops.DropQueue;
import com.willfp.talismans.talismans.Talisman;
@@ -11,8 +11,8 @@ import org.bukkit.event.block.BlockBreakEvent;
import org.jetbrains.annotations.NotNull;
public class ExtractionTalisman extends Talisman {
public ExtractionTalisman() {
super("extraction_talisman", TalismanStrength.TALISMAN);
public ExtractionTalisman(@NotNull final TalismanStrength strength) {
super("extraction_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -8,8 +8,8 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class FeatherTalisman extends Talisman {
public FeatherTalisman() {
super("feather_talisman", TalismanStrength.TALISMAN);
public FeatherTalisman(@NotNull final TalismanStrength strength) {
super("feather_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -8,8 +8,8 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class FlameTalisman extends Talisman {
public FlameTalisman() {
super("flame_talisman", TalismanStrength.TALISMAN);
public FlameTalisman(@NotNull final TalismanStrength strength) {
super("flame_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.integrations.mcmmo.McmmoManager;
import com.willfp.talismans.talismans.Talisman;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class FluxTalisman extends Talisman {
public FluxTalisman() {
super("flux_talisman", TalismanStrength.TALISMAN);
public FluxTalisman(@NotNull final TalismanStrength strength) {
super("flux_talisman", strength);
}
@EventHandler

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -8,8 +8,8 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class GravityTalisman extends Talisman {
public GravityTalisman() {
super("gravity_talisman", TalismanStrength.TALISMAN);
public GravityTalisman(@NotNull final TalismanStrength strength) {
super("gravity_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -10,8 +10,8 @@ import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.jetbrains.annotations.NotNull;
public class HealingTalisman extends Talisman {
public HealingTalisman() {
super("healing_talisman", TalismanStrength.TALISMAN);
public HealingTalisman(@NotNull final TalismanStrength strength) {
super("healing_talisman", strength);
}
@EventHandler

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.meta.TalismanStrength;
@@ -7,8 +7,8 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class ImmunityTalisman extends Talisman {
public ImmunityTalisman() {
super("immunity_talisman", TalismanStrength.TALISMAN);
public ImmunityTalisman(@NotNull final TalismanStrength strength) {
super("immunity_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class NetherTalisman extends Talisman {
public NetherTalisman() {
super("nether_talisman", TalismanStrength.TALISMAN);
public NetherTalisman(@NotNull final TalismanStrength strength) {
super("nether_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -10,9 +10,10 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class PoseidonTalisman extends Talisman {
public PoseidonTalisman() {
super("poseidon_talisman", TalismanStrength.TALISMAN);
public PoseidonTalisman(@NotNull final TalismanStrength strength) {
super("poseidon_talisman", strength);
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class RaidTalisman extends Talisman {
public RaidTalisman() {
super("raid_talisman", TalismanStrength.TALISMAN);
public RaidTalisman(@NotNull final TalismanStrength strength) {
super("raid_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -8,8 +8,8 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class ResistanceTalisman extends Talisman {
public ResistanceTalisman() {
super("resistance_talisman", TalismanStrength.TALISMAN);
public ResistanceTalisman(@NotNull final TalismanStrength strength) {
super("resistance_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -9,8 +9,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class SharpnessTalisman extends Talisman {
public SharpnessTalisman() {
super("sharpness_talisman", TalismanStrength.TALISMAN);
public SharpnessTalisman(@NotNull final TalismanStrength strength) {
super("sharpness_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class SkeletonTalisman extends Talisman {
public SkeletonTalisman() {
super("skeleton_talisman", TalismanStrength.TALISMAN);
public SkeletonTalisman(@NotNull final TalismanStrength strength) {
super("skeleton_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -18,8 +18,8 @@ public class SpeedTalisman extends Talisman {
private static final UUID MODIFIER_UUID = UUID.nameUUIDFromBytes("speed_talisman".getBytes());
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
public SpeedTalisman() {
super("speed_talisman", TalismanStrength.TALISMAN);
public SpeedTalisman(@NotNull final TalismanStrength strength) {
super("speed_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -10,8 +10,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class SpiderResistanceTalisman extends Talisman {
public SpiderResistanceTalisman() {
super("spider_resistance_talisman", TalismanStrength.TALISMAN);
public SpiderResistanceTalisman(@NotNull final TalismanStrength strength) {
super("spider_resistance_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class SpiderTalisman extends Talisman {
public SpiderTalisman() {
super("spider_talisman", TalismanStrength.TALISMAN);
public SpiderTalisman(@NotNull final TalismanStrength strength) {
super("spider_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -11,8 +11,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class StrengthTalisman extends Talisman {
public StrengthTalisman() {
super("strength_talisman", TalismanStrength.TALISMAN);
public StrengthTalisman(@NotNull final TalismanStrength strength) {
super("strength_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -10,8 +10,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ZombieResistanceTalisman extends Talisman {
public ZombieResistanceTalisman() {
super("zombie_resistance_talisman", TalismanStrength.TALISMAN);
public ZombieResistanceTalisman(@NotNull final TalismanStrength strength) {
super("zombie_resistance_talisman", strength);
}
@Override

View File

@@ -1,4 +1,4 @@
package com.willfp.talismans.talismans.talismans.talisman;
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
@@ -12,8 +12,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ZombieTalisman extends Talisman {
public ZombieTalisman() {
super("zombie_talisman", TalismanStrength.TALISMAN);
public ZombieTalisman(@NotNull final TalismanStrength strength) {
super("zombie_talisman", strength);
}
@Override

View File

@@ -1,64 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import com.willfp.talismans.talismans.util.TalismanUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityPotionEffectEvent;
import org.bukkit.potion.PotionEffect;
import org.jetbrains.annotations.NotNull;
public class AlchemyRelic extends Talisman {
public AlchemyRelic() {
super("alchemy_relic", TalismanStrength.RELIC);
}
@EventHandler
public void onPotionEffect(@NotNull final EntityPotionEffectEvent event) {
if (event.getNewEffect() == null) {
return;
}
if (!(event.getEntity() instanceof Player)) {
return;
}
Player player = (Player) event.getEntity();
if (player.hasMetadata(event.getNewEffect().toString())) {
return;
}
if (!TalismanChecks.hasTalisman(player, this)) {
return;
}
if (!TalismanUtils.passedChance(this)) {
return;
}
if (this.getDisabledWorlds().contains(player.getWorld())) {
return;
}
PotionEffect effect = event.getNewEffect();
PotionEffect newEffect = new PotionEffect(
effect.getType(),
effect.getDuration(),
((effect.getAmplifier() + 1) * 2) - 1,
effect.isAmbient(),
effect.hasParticles(),
effect.hasIcon()
);
player.setMetadata(newEffect.toString(), this.getPlugin().getMetadataValueFactory().create(true));
player.removePotionEffect(effect.getType());
this.getPlugin().getScheduler().run(() -> newEffect.apply(player));
this.getPlugin().getScheduler().runLater(() -> player.removeMetadata(newEffect.toString(), this.getPlugin()), 1);
}
}

View File

@@ -1,23 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ArcheryRelic extends Talisman {
public ArcheryRelic() {
super("archery_relic", TalismanStrength.RELIC);
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,54 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Boss;
import org.bukkit.entity.Illusioner;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class BossRelic extends Talisman {
public BossRelic() {
super("boss_relic", TalismanStrength.RELIC);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Boss || victim instanceof Illusioner)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Boss || victim instanceof Illusioner)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Boss || victim instanceof Illusioner)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.World;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class EndRelic extends Talisman {
public EndRelic() {
super("end_relic", TalismanStrength.RELIC);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,35 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.eco.util.events.naturalexpgainevent.NaturalExpGainEvent;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
public class ExperienceRelic extends Talisman {
public ExperienceRelic() {
super("experience_relic", TalismanStrength.RELIC);
}
@EventHandler
public void onExpChange(@NotNull final NaturalExpGainEvent event) {
Player player = event.getExpChangeEvent().getPlayer();
if (event.getExpChangeEvent().getAmount() < 0) {
return;
}
if (!TalismanChecks.hasTalisman(player, this)) {
return;
}
if (this.getDisabledWorlds().contains(player.getWorld())) {
return;
}
event.getExpChangeEvent().setAmount((int) Math.ceil(event.getExpChangeEvent().getAmount() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100))));
}
}

View File

@@ -1,31 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.eco.util.drops.DropQueue;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanUtils;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import org.jetbrains.annotations.NotNull;
public class ExtractionRelic extends Talisman {
public ExtractionRelic() {
super("extraction_relic", TalismanStrength.RELIC);
}
@Override
public void onBlockBreak(@NotNull final Player player,
@NotNull final Block block,
@NotNull final BlockBreakEvent event) {
if (!TalismanUtils.passedChance(this)) {
return;
}
new DropQueue(player)
.addXP(this.getConfig().getInt(Talismans.CONFIG_LOCATION + "xp-amount"))
.setLocation(block.getLocation())
.push();
}
}

View File

@@ -1,24 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class FeatherRelic extends Talisman {
public FeatherRelic() {
super("feather_relic", TalismanStrength.RELIC);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
if (event.getCause() != EntityDamageEvent.DamageCause.FALL) {
return;
}
event.setDamage(event.getDamage() * this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"));
}
}

View File

@@ -1,24 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class FlameRelic extends Talisman {
public FlameRelic() {
super("flame_relic", TalismanStrength.RELIC);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
if (event.getCause() != EntityDamageEvent.DamageCause.FIRE && event.getCause() != EntityDamageEvent.DamageCause.FIRE_TICK) {
return;
}
event.setDamage(event.getDamage() * this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"));
}
}

View File

@@ -1,55 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.integrations.mcmmo.McmmoManager;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class FluxRelic extends Talisman {
public FluxRelic() {
super("flux_relic", TalismanStrength.RELIC);
}
@EventHandler
public void onMeleeAttack(@NotNull final EntityDamageByEntityEvent event) {
if (McmmoManager.isFake(event)) {
return;
}
if (!(event.getDamager() instanceof Player)) {
return;
}
if (event.isCancelled()) {
return;
}
Player attacker = (Player) event.getDamager();
if (this.getDisabledWorlds().contains(attacker.getWorld())) {
return;
}
double distance = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "distance");
for (Entity nearbyEntity : attacker.getNearbyEntities(distance, distance, distance)) {
if (!(nearbyEntity instanceof Player)) {
continue;
}
Player player = (Player) nearbyEntity;
if (!TalismanChecks.hasTalisman(player, this)) {
continue;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}
}

View File

@@ -1,30 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class GravityRelic extends Talisman {
public GravityRelic() {
super("gravity_relic", TalismanStrength.RELIC);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
if (victim.getLocation().getY() > 64 || victim.getLocation().getY() < 0) {
return;
}
double below64 = 64 - victim.getLocation().getY();
double multiplier = below64 / 64;
double multiplierMultiplier = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "height-multiplier");
multiplier *= multiplierMultiplier;
multiplier += 1;
event.setDamage(event.getDamage() * (1 / multiplier));
}
}

View File

@@ -1,42 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.jetbrains.annotations.NotNull;
public class HealingRelic extends Talisman {
public HealingRelic() {
super("healing_relic", TalismanStrength.RELIC);
}
@EventHandler
public void onHeal(@NotNull final EntityRegainHealthEvent event) {
if (!(event.getEntity() instanceof Player)) {
return;
}
if (!event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.SATIATED) && !event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.REGEN)) {
return;
}
Player player = (Player) event.getEntity();
if (this.getDisabledWorlds().contains(player.getWorld())) {
return;
}
if (!TalismanChecks.hasTalisman(player, this)) {
return;
}
double amount = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier");
amount += 1;
event.setAmount(event.getAmount() * amount);
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.World;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class NetherRelic extends Talisman {
public NetherRelic() {
super("nether_relic", TalismanStrength.RELIC);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,23 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class PoseidonRelic extends Talisman {
public PoseidonRelic() {
super("poseidon_relic", TalismanStrength.RELIC);
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Illager;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class RaidRelic extends Talisman {
public RaidRelic() {
super("raid_relic", TalismanStrength.RELIC);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Illager)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Illager)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Illager)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,20 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class ResistanceRelic extends Talisman {
public ResistanceRelic() {
super("resistance_relic", TalismanStrength.RELIC);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
event.setDamage(event.getDamage() * (1 - (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
}
}

View File

@@ -1,22 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class SharpnessRelic extends Talisman {
public SharpnessRelic() {
super("sharpness_relic", TalismanStrength.RELIC);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.equipevent.EquipType;
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class SpeedRelic extends Talisman {
private static final UUID MODIFIER_UUID = UUID.nameUUIDFromBytes("speed_relic".getBytes());
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_relic", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
public SpeedRelic() {
super("speed_relic", TalismanStrength.RELIC);
}
@Override
protected void postUpdate() {
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_relic", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
}
@EventHandler
public void onExpChange(@NotNull final TalismanEquipEvent event) {
Player player = event.getPlayer();
if (!event.getTalisman().equals(this)) {
return;
}
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
assert movementSpeed != null;
if (event.getType() == EquipType.EQUIP) {
if (this.getDisabledWorlds().contains(player.getWorld())) {
movementSpeed.removeModifier(MODIFIER);
} else {
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
movementSpeed.addModifier(MODIFIER);
}
}
} else {
movementSpeed.removeModifier(MODIFIER);
}
}
}

View File

@@ -1,40 +0,0 @@
package com.willfp.talismans.talismans.talismans.relic;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class StrengthRelic extends Talisman {
public StrengthRelic() {
super("strength_relic", TalismanStrength.RELIC);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,64 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import com.willfp.talismans.talismans.util.TalismanUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityPotionEffectEvent;
import org.bukkit.potion.PotionEffect;
import org.jetbrains.annotations.NotNull;
public class AlchemyRing extends Talisman {
public AlchemyRing() {
super("alchemy_ring", TalismanStrength.RING);
}
@EventHandler
public void onPotionEffect(@NotNull final EntityPotionEffectEvent event) {
if (event.getNewEffect() == null) {
return;
}
if (!(event.getEntity() instanceof Player)) {
return;
}
Player player = (Player) event.getEntity();
if (player.hasMetadata(event.getNewEffect().toString())) {
return;
}
if (!TalismanChecks.hasTalisman(player, this)) {
return;
}
if (!TalismanUtils.passedChance(this)) {
return;
}
if (this.getDisabledWorlds().contains(player.getWorld())) {
return;
}
PotionEffect effect = event.getNewEffect();
PotionEffect newEffect = new PotionEffect(
effect.getType(),
effect.getDuration(),
((effect.getAmplifier() + 1) * 2) - 1,
effect.isAmbient(),
effect.hasParticles(),
effect.hasIcon()
);
player.setMetadata(newEffect.toString(), this.getPlugin().getMetadataValueFactory().create(true));
player.removePotionEffect(effect.getType());
this.getPlugin().getScheduler().run(() -> newEffect.apply(player));
this.getPlugin().getScheduler().runLater(() -> player.removeMetadata(newEffect.toString(), this.getPlugin()), 1);
}
}

View File

@@ -1,23 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ArcheryRing extends Talisman {
public ArcheryRing() {
super("archery_ring", TalismanStrength.RING);
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,54 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Boss;
import org.bukkit.entity.Illusioner;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class BossRing extends Talisman {
public BossRing() {
super("boss_ring", TalismanStrength.RING);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Boss || victim instanceof Illusioner)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Boss || victim instanceof Illusioner)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Boss || victim instanceof Illusioner)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.World;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class EndRing extends Talisman {
public EndRing() {
super("end_ring", TalismanStrength.RING);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,35 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.eco.util.events.naturalexpgainevent.NaturalExpGainEvent;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
public class ExperienceRing extends Talisman {
public ExperienceRing() {
super("experience_ring", TalismanStrength.RING);
}
@EventHandler
public void onExpChange(@NotNull final NaturalExpGainEvent event) {
Player player = event.getExpChangeEvent().getPlayer();
if (event.getExpChangeEvent().getAmount() < 0) {
return;
}
if (!TalismanChecks.hasTalisman(player, this)) {
return;
}
if (this.getDisabledWorlds().contains(player.getWorld())) {
return;
}
event.getExpChangeEvent().setAmount((int) Math.ceil(event.getExpChangeEvent().getAmount() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100))));
}
}

View File

@@ -1,31 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.eco.util.drops.DropQueue;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanUtils;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent;
import org.jetbrains.annotations.NotNull;
public class ExtractionRing extends Talisman {
public ExtractionRing() {
super("extraction_ring", TalismanStrength.RING);
}
@Override
public void onBlockBreak(@NotNull final Player player,
@NotNull final Block block,
@NotNull final BlockBreakEvent event) {
if (!TalismanUtils.passedChance(this)) {
return;
}
new DropQueue(player)
.addXP(this.getConfig().getInt(Talismans.CONFIG_LOCATION + "xp-amount"))
.setLocation(block.getLocation())
.push();
}
}

View File

@@ -1,24 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class FeatherRing extends Talisman {
public FeatherRing() {
super("feather_ring", TalismanStrength.RING);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
if (event.getCause() != EntityDamageEvent.DamageCause.FALL) {
return;
}
event.setDamage(event.getDamage() * this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"));
}
}

View File

@@ -1,24 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class FlameRing extends Talisman {
public FlameRing() {
super("flame_ring", TalismanStrength.RING);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
if (event.getCause() != EntityDamageEvent.DamageCause.FIRE && event.getCause() != EntityDamageEvent.DamageCause.FIRE_TICK) {
return;
}
event.setDamage(event.getDamage() * this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier"));
}
}

View File

@@ -1,55 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.integrations.mcmmo.McmmoManager;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class FluxRing extends Talisman {
public FluxRing() {
super("flux_ring", TalismanStrength.RING);
}
@EventHandler
public void onMeleeAttack(@NotNull final EntityDamageByEntityEvent event) {
if (McmmoManager.isFake(event)) {
return;
}
if (!(event.getDamager() instanceof Player)) {
return;
}
if (event.isCancelled()) {
return;
}
Player attacker = (Player) event.getDamager();
if (this.getDisabledWorlds().contains(attacker.getWorld())) {
return;
}
double distance = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "distance");
for (Entity nearbyEntity : attacker.getNearbyEntities(distance, distance, distance)) {
if (!(nearbyEntity instanceof Player)) {
continue;
}
Player player = (Player) nearbyEntity;
if (!TalismanChecks.hasTalisman(player, this)) {
continue;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}
}

View File

@@ -1,30 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class GravityRing extends Talisman {
public GravityRing() {
super("gravity_ring", TalismanStrength.RING);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
if (victim.getLocation().getY() > 64 || victim.getLocation().getY() < 0) {
return;
}
double below64 = 64 - victim.getLocation().getY();
double multiplier = below64 / 64;
double multiplierMultiplier = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "height-multiplier");
multiplier *= multiplierMultiplier;
multiplier += 1;
event.setDamage(event.getDamage() * (1 / multiplier));
}
}

View File

@@ -1,42 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.TalismanChecks;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.jetbrains.annotations.NotNull;
public class HealingRing extends Talisman {
public HealingRing() {
super("healing_ring", TalismanStrength.RING);
}
@EventHandler
public void onHeal(@NotNull final EntityRegainHealthEvent event) {
if (!(event.getEntity() instanceof Player)) {
return;
}
if (!event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.SATIATED) && !event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.REGEN)) {
return;
}
Player player = (Player) event.getEntity();
if (this.getDisabledWorlds().contains(player.getWorld())) {
return;
}
if (!TalismanChecks.hasTalisman(player, this)) {
return;
}
double amount = this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "multiplier");
amount += 1;
event.setAmount(event.getAmount() * amount);
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.World;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class NetherRing extends Talisman {
public NetherRing() {
super("nether_ring", TalismanStrength.RING);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (attacker.getWorld().getEnvironment() != World.Environment.NETHER) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,23 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class PoseidonRing extends Talisman {
public PoseidonRing() {
super("poseidon_ring", TalismanStrength.RING);
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Illager;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class RaidRing extends Talisman {
public RaidRing() {
super("raid_ring", TalismanStrength.RING);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Illager)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Illager)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (!(victim instanceof Illager)) {
return;
}
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,20 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import org.jetbrains.annotations.NotNull;
public class ResistanceRing extends Talisman {
public ResistanceRing() {
super("resistance_ring", TalismanStrength.RING);
}
@Override
public void onDamage(@NotNull final Player victim,
@NotNull final EntityDamageEvent event) {
event.setDamage(event.getDamage() * (1 - (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-less-damage")) / 100));
}
}

View File

@@ -1,22 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class SharpnessRing extends Talisman {
public SharpnessRing() {
super("sharpness_ring", TalismanStrength.RING);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -1,53 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import com.willfp.talismans.talismans.util.equipevent.EquipType;
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.jetbrains.annotations.NotNull;
import java.util.UUID;
public class SpeedRing extends Talisman {
private static final UUID MODIFIER_UUID = UUID.nameUUIDFromBytes("speed_ring".getBytes());
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_ring", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
public SpeedRing() {
super("speed_ring", TalismanStrength.RING);
}
@Override
protected void postUpdate() {
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_ring", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
}
@EventHandler
public void onExpChange(@NotNull final TalismanEquipEvent event) {
Player player = event.getPlayer();
if (!event.getTalisman().equals(this)) {
return;
}
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
assert movementSpeed != null;
if (event.getType() == EquipType.EQUIP) {
if (this.getDisabledWorlds().contains(player.getWorld())) {
movementSpeed.removeModifier(MODIFIER);
} else {
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
movementSpeed.addModifier(MODIFIER);
}
}
} else {
movementSpeed.removeModifier(MODIFIER);
}
}
}

View File

@@ -1,40 +0,0 @@
package com.willfp.talismans.talismans.talismans.ring;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.Talismans;
import com.willfp.talismans.talismans.meta.TalismanStrength;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class StrengthRing extends Talisman {
public StrengthRing() {
super("strength_ring", TalismanStrength.RING);
}
@Override
public void onMeleeAttack(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * (1 + (this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -30,7 +30,11 @@ public class DiscoverRecipeListener extends PluginDependent implements Listener
Player player = event.getPlayer();
if (this.getPlugin().getConfigYml().getBool("crafting.discover")) {
Talismans.values().stream().filter(Talisman::isEnabled).map(Talisman::getKey).forEach(player::discoverRecipe);
for (Talisman talisman : Talismans.values()) {
if (talisman.isEnabled()) {
player.discoverRecipe(talisman.getKey());
}
}
}
}
}

View File

@@ -1,13 +0,0 @@
package com.willfp.talismans.proxy.proxies;
import com.willfp.eco.util.proxy.AbstractProxy;
import org.jetbrains.annotations.NotNull;
public interface AutoCraftProxy extends AbstractProxy {
/**
* Fix crafting inventory on auto-recipe.
*
* @param packet The packet to modify.
*/
void modifyPacket(@NotNull Object packet) throws NoSuchFieldException, IllegalAccessException;
}

View File

@@ -1,13 +0,0 @@
package com.willfp.talismans.proxy.proxies;
import com.willfp.eco.util.proxy.AbstractProxy;
import org.jetbrains.annotations.NotNull;
public interface ChatComponentProxy extends AbstractProxy {
/**
* Modify hover {@link org.bukkit.inventory.ItemStack}s using TalismanDisplay#displayTalisman.
* @param object The NMS ChatComponent to modify.
* @return The modified ChatComponent.
*/
Object modifyComponent(@NotNull Object object);
}

View File

@@ -1,13 +0,0 @@
package com.willfp.talismans.proxy.proxies;
import com.willfp.eco.util.proxy.AbstractProxy;
import org.bukkit.inventory.MerchantRecipe;
public interface VillagerTradeProxy extends AbstractProxy {
/**
* Apply talisman display to the result of trades.
*
* @param merchantRecipe The recipe to modify.
*/
void displayTradeTalismans(MerchantRecipe merchantRecipe);
}