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:
@@ -2,11 +2,12 @@ package com.willfp.illusioner.nms.api;
|
|||||||
|
|
||||||
import org.bukkit.boss.BarColor;
|
import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarStyle;
|
import org.bukkit.boss.BarStyle;
|
||||||
|
import org.bukkit.boss.BossBar;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NMS Interface for managing illusioner bosses
|
* NMS Interface for managing illusioner bosses
|
||||||
*/
|
*/
|
||||||
public interface EntityIllusionerWrapper {
|
public interface EntityIllusionerWrapper {
|
||||||
void createBossbar(Plugin plugin, BarColor color, BarStyle style);
|
BossBar createBossbar(Plugin plugin, BarColor color, BarStyle style);
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.boss.BarColor;
|
import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarFlag;
|
|
||||||
import org.bukkit.boss.BarStyle;
|
import org.bukkit.boss.BarStyle;
|
||||||
import org.bukkit.boss.BossBar;
|
import org.bukkit.boss.BossBar;
|
||||||
import org.bukkit.craftbukkit.v1_15_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_15_R1.CraftWorld;
|
||||||
@@ -45,8 +44,8 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
public BossBar createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
||||||
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style, (BarFlag) null);
|
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style);
|
||||||
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
||||||
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
||||||
|
|
||||||
@@ -62,5 +61,7 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskTimer(plugin, 0, 1);
|
}.runTaskTimer(plugin, 0, 1);
|
||||||
|
|
||||||
|
return bossBar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.boss.BarColor;
|
import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarFlag;
|
|
||||||
import org.bukkit.boss.BarStyle;
|
import org.bukkit.boss.BarStyle;
|
||||||
import org.bukkit.boss.BossBar;
|
import org.bukkit.boss.BossBar;
|
||||||
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld;
|
||||||
@@ -45,8 +44,8 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
public BossBar createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
||||||
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style, (BarFlag) null);
|
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style);
|
||||||
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
||||||
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
||||||
|
|
||||||
@@ -62,5 +61,7 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskTimer(plugin, 0, 1);
|
}.runTaskTimer(plugin, 0, 1);
|
||||||
|
|
||||||
|
return bossBar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.boss.BarColor;
|
import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarFlag;
|
|
||||||
import org.bukkit.boss.BarStyle;
|
import org.bukkit.boss.BarStyle;
|
||||||
import org.bukkit.boss.BossBar;
|
import org.bukkit.boss.BossBar;
|
||||||
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
|
import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
|
||||||
@@ -45,8 +44,8 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
public BossBar createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
||||||
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style, (BarFlag) null);
|
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style);
|
||||||
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
||||||
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
||||||
|
|
||||||
@@ -62,5 +61,7 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskTimer(plugin, 0, 1);
|
}.runTaskTimer(plugin, 0, 1);
|
||||||
|
|
||||||
|
return bossBar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.boss.BarColor;
|
import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarFlag;
|
|
||||||
import org.bukkit.boss.BarStyle;
|
import org.bukkit.boss.BarStyle;
|
||||||
import org.bukkit.boss.BossBar;
|
import org.bukkit.boss.BossBar;
|
||||||
import org.bukkit.craftbukkit.v1_16_R3.CraftWorld;
|
import org.bukkit.craftbukkit.v1_16_R3.CraftWorld;
|
||||||
@@ -45,8 +44,8 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
public BossBar createBossbar(Plugin plugin, BarColor color, BarStyle style) {
|
||||||
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style, (BarFlag) null);
|
BossBar bossBar = Bukkit.getServer().createBossBar(this.displayName, color, style);
|
||||||
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
Bukkit.getServer().getOnlinePlayers().forEach(bossBar::addPlayer);
|
||||||
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
LivingEntity entity = (LivingEntity) this.getBukkitEntity();
|
||||||
|
|
||||||
@@ -62,5 +61,7 @@ public class EntityIllusioner extends EntityIllagerIllusioner implements EntityI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.runTaskTimer(plugin, 0, 1);
|
}.runTaskTimer(plugin, 0, 1);
|
||||||
|
|
||||||
|
return bossBar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ dependencies {
|
|||||||
implementation 'org.bstats:bstats-bukkit:1.7'
|
implementation 'org.bstats:bstats-bukkit:1.7'
|
||||||
compileOnly 'org.spigotmc:spigot-api:1.16.3-R0.1-SNAPSHOT'
|
compileOnly 'org.spigotmc:spigot-api:1.16.3-R0.1-SNAPSHOT'
|
||||||
compileOnly 'commons-io:commons-io:2.8.0'
|
compileOnly 'commons-io:commons-io:2.8.0'
|
||||||
|
compileOnly 'com.willfp:EcoEnchants:5.10.5'
|
||||||
}
|
}
|
||||||
|
|
||||||
shadowJar {
|
shadowJar {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.willfp.illusioner.illusioner.listeners;
|
|||||||
|
|
||||||
import com.willfp.illusioner.events.entitydeathbyentity.EntityDeathByEntityEvent;
|
import com.willfp.illusioner.events.entitydeathbyentity.EntityDeathByEntityEvent;
|
||||||
import com.willfp.illusioner.illusioner.IllusionerManager;
|
import com.willfp.illusioner.illusioner.IllusionerManager;
|
||||||
|
import com.willfp.illusioner.integrations.ecoenchants.EcoEnchantsManager;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -24,6 +25,12 @@ public class DeathListeners implements Listener {
|
|||||||
});
|
});
|
||||||
|
|
||||||
IllusionerManager.OPTIONS.getDrops().forEach(drop -> {
|
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);
|
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;
|
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.IllusionerPlugin;
|
||||||
import com.willfp.illusioner.command.commands.CommandIldebug;
|
import com.willfp.illusioner.command.commands.CommandIldebug;
|
||||||
import com.willfp.illusioner.command.commands.CommandIlreload;
|
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.AttackListeners;
|
||||||
import com.willfp.illusioner.illusioner.listeners.DeathListeners;
|
import com.willfp.illusioner.illusioner.listeners.DeathListeners;
|
||||||
import com.willfp.illusioner.illusioner.listeners.SpawnListeners;
|
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.BlockBreak;
|
||||||
import com.willfp.illusioner.nms.Cooldown;
|
import com.willfp.illusioner.nms.Cooldown;
|
||||||
import com.willfp.illusioner.nms.NMSIllusioner;
|
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.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bukkit.Bukkit;
|
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
|
* Class containing methods for the loading and unloading of Illusioner
|
||||||
@@ -95,6 +105,32 @@ public class Loader {
|
|||||||
|
|
||||||
Logger.info("");
|
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
|
Register Events
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user