Added support for mcmmo double drops within telekinesis

This commit is contained in:
Auxilor 2021-01-24 16:09:27 +00:00
parent c030e6fac2
commit 3151430dcb
7 changed files with 7 additions and 82 deletions

View File

@ -49,7 +49,7 @@ allprojects {
} }
dependencies { dependencies {
compileOnly 'com.willfp:eco:3.1.0' compileOnly 'com.willfp:eco:3.3.0'
compileOnly 'org.jetbrains:annotations:19.0.0' compileOnly 'org.jetbrains:annotations:19.0.0'

View File

@ -28,8 +28,6 @@ import com.willfp.ecoenchants.enchantments.util.HoldItemListener;
import com.willfp.ecoenchants.enchantments.util.WatcherTriggers; import com.willfp.ecoenchants.enchantments.util.WatcherTriggers;
import com.willfp.ecoenchants.integrations.essentials.EssentialsManager; import com.willfp.ecoenchants.integrations.essentials.EssentialsManager;
import com.willfp.ecoenchants.integrations.essentials.plugins.IntegrationEssentials; import com.willfp.ecoenchants.integrations.essentials.plugins.IntegrationEssentials;
import com.willfp.ecoenchants.integrations.mcmmo.McmmoManager;
import com.willfp.ecoenchants.integrations.mcmmo.plugins.McmmoIntegrationImpl;
import com.willfp.ecoenchants.integrations.worldguard.WorldguardManager; import com.willfp.ecoenchants.integrations.worldguard.WorldguardManager;
import com.willfp.ecoenchants.integrations.worldguard.plugins.WorldguardIntegrationImpl; import com.willfp.ecoenchants.integrations.worldguard.plugins.WorldguardIntegrationImpl;
import com.willfp.ecoenchants.proxy.proxies.FastGetEnchantsProxy; import com.willfp.ecoenchants.proxy.proxies.FastGetEnchantsProxy;
@ -163,8 +161,7 @@ public class EcoEnchantsPlugin extends AbstractEcoPlugin {
new IntegrationLoader("WorldGuard", () -> { new IntegrationLoader("WorldGuard", () -> {
WorldguardManager.register(new WorldguardIntegrationImpl()); WorldguardManager.register(new WorldguardIntegrationImpl());
}), }),
new IntegrationLoader("Essentials", () -> EssentialsManager.register(new IntegrationEssentials())), new IntegrationLoader("Essentials", () -> EssentialsManager.register(new IntegrationEssentials()))
new IntegrationLoader("mcMMO", () -> McmmoManager.registerIntegration(new McmmoIntegrationImpl()))
); );
} }

View File

@ -3,6 +3,7 @@ package com.willfp.ecoenchants.enchantments.ecoenchants.normal;
import com.willfp.eco.util.drops.DropQueue; import com.willfp.eco.util.drops.DropQueue;
import com.willfp.eco.util.events.entitydeathbyentity.EntityDeathByEntityEvent; import com.willfp.eco.util.events.entitydeathbyentity.EntityDeathByEntityEvent;
import com.willfp.eco.util.integrations.antigrief.AntigriefManager; import com.willfp.eco.util.integrations.antigrief.AntigriefManager;
import com.willfp.eco.util.integrations.mcmmo.McmmoManager;
import com.willfp.ecoenchants.enchantments.EcoEnchant; import com.willfp.ecoenchants.enchantments.EcoEnchant;
import com.willfp.ecoenchants.enchantments.EcoEnchants; import com.willfp.ecoenchants.enchantments.EcoEnchants;
import com.willfp.ecoenchants.enchantments.meta.EnchantmentType; import com.willfp.ecoenchants.enchantments.meta.EnchantmentType;
@ -70,6 +71,9 @@ public class Telekinesis extends EcoEnchant {
for (Item item : event.getItems()) { for (Item item : event.getItems()) {
drops.add(item.getItemStack()); drops.add(item.getItemStack());
for (int i = 0; i < McmmoManager.getBonusDropCount(block); i++) {
drops.add(item.getItemStack());
}
} }
event.getItems().clear(); event.getItems().clear();

View File

@ -6,7 +6,7 @@ import com.willfp.eco.util.integrations.antigrief.AntigriefManager;
import com.willfp.eco.util.internal.PluginDependent; import com.willfp.eco.util.internal.PluginDependent;
import com.willfp.eco.util.plugin.AbstractEcoPlugin; import com.willfp.eco.util.plugin.AbstractEcoPlugin;
import com.willfp.ecoenchants.enchantments.EcoEnchants; import com.willfp.ecoenchants.enchantments.EcoEnchants;
import com.willfp.ecoenchants.integrations.mcmmo.McmmoManager; import com.willfp.eco.util.integrations.mcmmo.McmmoManager;
import com.willfp.ecoenchants.proxy.proxies.TridentStackProxy; import com.willfp.ecoenchants.proxy.proxies.TridentStackProxy;
import com.willfp.ecoenchants.util.ProxyUtils; import com.willfp.ecoenchants.util.ProxyUtils;
import org.bukkit.Material; import org.bukkit.Material;

View File

@ -1,13 +0,0 @@
package com.willfp.ecoenchants.integrations.mcmmo;
import com.willfp.eco.util.integrations.Integration;
import org.bukkit.event.Event;
public interface McmmoIntegration extends Integration {
/**
* @param event The event to check.
* @return If the event is fake.
* @see McmmoManager#isFake(Event)
*/
boolean isFake(Event event);
}

View File

@ -1,45 +0,0 @@
package com.willfp.ecoenchants.integrations.mcmmo;
import com.willfp.eco.util.ClassUtils;
import org.bukkit.event.Event;
import org.jetbrains.annotations.NotNull;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
public class McmmoManager {
/**
* All registered mcMMO integrations.
*/
private static final Set<McmmoIntegration> REGISTERED = new HashSet<>();
/**
* Register a new mcMMO integration.
*
* @param integration The integration to register.
*/
public static void registerIntegration(@NotNull final McmmoIntegration integration) {
if (!ClassUtils.exists("com.gmail.nossr50.events.fake.FakeEvent")) {
return;
}
REGISTERED.add(integration);
}
/**
* Get if an event is fake.
*
* @param event The event to check.
* @return If the event is fake.
*/
public static boolean isFake(@NotNull final Event event) {
AtomicBoolean isFake = new AtomicBoolean(false);
REGISTERED.forEach(integration -> {
if (integration.isFake(event)) {
isFake.set(true);
}
});
return isFake.get();
}
}

View File

@ -1,18 +0,0 @@
package com.willfp.ecoenchants.integrations.mcmmo.plugins;
import com.gmail.nossr50.events.fake.FakeEvent;
import com.willfp.ecoenchants.integrations.mcmmo.McmmoIntegration;
import org.bukkit.event.Event;
import org.jetbrains.annotations.NotNull;
public class McmmoIntegrationImpl implements McmmoIntegration {
@Override
public boolean isFake(@NotNull final Event event) {
return event instanceof FakeEvent;
}
@Override
public String getPluginName() {
return "mcMMO";
}
}