Refactored talismans
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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,
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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))));
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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))));
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user