mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-21 16:09:24 +00:00
Added support for EcoEnchants
This commit is contained in:
@@ -13,6 +13,7 @@ dependencies {
|
||||
implementation 'org.bstats:bstats-bukkit:1.7'
|
||||
compileOnly 'org.spigotmc:spigot-api:1.16.3-R0.1-SNAPSHOT'
|
||||
compileOnly 'commons-io:commons-io:2.8.0'
|
||||
compileOnly 'com.willfp:EcoEnchants:5.10.5'
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.willfp.illusioner.illusioner.listeners;
|
||||
|
||||
import com.willfp.illusioner.events.entitydeathbyentity.EntityDeathByEntityEvent;
|
||||
import com.willfp.illusioner.illusioner.IllusionerManager;
|
||||
import com.willfp.illusioner.integrations.ecoenchants.EcoEnchantsManager;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@@ -24,6 +25,12 @@ public class DeathListeners implements Listener {
|
||||
});
|
||||
|
||||
IllusionerManager.OPTIONS.getDrops().forEach(drop -> {
|
||||
if(event.getKiller() instanceof Player) {
|
||||
if (EcoEnchantsManager.isRegistered()) {
|
||||
EcoEnchantsManager.dropQueueItems((Player) event.getKiller(), event.getVictim().getLocation(), drop);
|
||||
return;
|
||||
}
|
||||
}
|
||||
event.getVictim().getLocation().getWorld().dropItemNaturally(event.getVictim().getLocation(), drop);
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.willfp.illusioner.integrations;
|
||||
|
||||
public interface Integration {
|
||||
String getPluginName();
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.willfp.illusioner.integrations.ecoenchants;
|
||||
|
||||
import com.willfp.illusioner.integrations.Integration;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public interface EcoEnchantsIntegration extends Integration {
|
||||
void dropItems(Player player, Location location, ItemStack itemStack);
|
||||
void dropExp(Player player, Location location, double amount);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.willfp.illusioner.integrations.ecoenchants;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class EcoEnchantsManager {
|
||||
private static final Set<EcoEnchantsIntegration> integrations = new HashSet<>();
|
||||
|
||||
public static void register(EcoEnchantsIntegration integration) {
|
||||
integrations.add(integration);
|
||||
}
|
||||
|
||||
public static void dropQueueItems(Player player, Location location, ItemStack... items) {
|
||||
Arrays.stream(items).forEach(item -> integrations.forEach(integration -> integration.dropItems(player, location, item)));
|
||||
}
|
||||
|
||||
public static void dropQueueExp(Player player, Location location, double amount) {
|
||||
integrations.forEach(integration -> integration.dropExp(player, location, amount));
|
||||
}
|
||||
|
||||
public static boolean isRegistered() {
|
||||
return !integrations.isEmpty();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.willfp.illusioner.integrations.ecoenchants.plugins;
|
||||
|
||||
import com.willfp.ecoenchants.util.internal.DropQueue;
|
||||
import com.willfp.illusioner.integrations.ecoenchants.EcoEnchantsIntegration;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class EcoEnchantsIntegrationImpl implements EcoEnchantsIntegration {
|
||||
@Override
|
||||
public void dropItems(Player player, Location location, ItemStack itemStack) {
|
||||
new DropQueue(player)
|
||||
.setLocation(location)
|
||||
.addItem(itemStack)
|
||||
.push();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropExp(Player player, Location location, double amount) {
|
||||
new DropQueue(player)
|
||||
.setLocation(location)
|
||||
.addXP((int) Math.ceil(amount))
|
||||
.push();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPluginName() {
|
||||
return "EcoEnchants";
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.willfp.illusioner.util.internal;
|
||||
|
||||
import com.willfp.ecoenchants.util.interfaces.Callable;
|
||||
import com.willfp.ecoenchants.util.optional.Prerequisite;
|
||||
import com.willfp.illusioner.IllusionerPlugin;
|
||||
import com.willfp.illusioner.command.commands.CommandIldebug;
|
||||
import com.willfp.illusioner.command.commands.CommandIlreload;
|
||||
@@ -12,6 +14,8 @@ import com.willfp.illusioner.illusioner.IllusionerManager;
|
||||
import com.willfp.illusioner.illusioner.listeners.AttackListeners;
|
||||
import com.willfp.illusioner.illusioner.listeners.DeathListeners;
|
||||
import com.willfp.illusioner.illusioner.listeners.SpawnListeners;
|
||||
import com.willfp.illusioner.integrations.ecoenchants.EcoEnchantsManager;
|
||||
import com.willfp.illusioner.integrations.ecoenchants.plugins.EcoEnchantsIntegrationImpl;
|
||||
import com.willfp.illusioner.nms.BlockBreak;
|
||||
import com.willfp.illusioner.nms.Cooldown;
|
||||
import com.willfp.illusioner.nms.NMSIllusioner;
|
||||
@@ -22,6 +26,12 @@ import com.willfp.illusioner.util.internal.updater.UpdateChecker;
|
||||
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Class containing methods for the loading and unloading of Illusioner
|
||||
@@ -95,6 +105,32 @@ public class Loader {
|
||||
|
||||
Logger.info("");
|
||||
|
||||
/*
|
||||
Register Integrations
|
||||
*/
|
||||
Logger.info("Loading Integrations...");
|
||||
|
||||
final HashMap<String, Callable> integrations = new HashMap<String, Callable>() {{
|
||||
put("EcoEnchants", () -> EcoEnchantsManager.register(new EcoEnchantsIntegrationImpl()));
|
||||
}};
|
||||
|
||||
Set<String> enabledPlugins = Arrays.stream(Bukkit.getPluginManager().getPlugins()).map(Plugin::getName).collect(Collectors.toSet());
|
||||
|
||||
integrations.forEach(((s, callable) -> {
|
||||
StringBuilder log = new StringBuilder();
|
||||
log.append(s).append(": ");
|
||||
if (enabledPlugins.contains(s)) {
|
||||
callable.call();
|
||||
log.append("&aENABLED");
|
||||
} else {
|
||||
log.append("&9DISABLED");
|
||||
}
|
||||
Logger.info(log.toString());
|
||||
}));
|
||||
|
||||
Prerequisite.update();
|
||||
Logger.info("");
|
||||
|
||||
/*
|
||||
Register Events
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user