Added an option to prevent spawner mobs from giving xp

This commit is contained in:
Aria 2019-12-12 21:35:21 +01:00
parent 96045d4fdf
commit a72699a6e4
4 changed files with 24 additions and 0 deletions

View File

@ -272,6 +272,9 @@ public class MMOCore extends JavaPlugin {
if (getConfig().getBoolean("health-scale.enabled"))
Bukkit.getPluginManager().registerEvents(new HealthScale(), this);
if (getConfig().getBoolean("prevent-spawner-xp"))
Bukkit.getPluginManager().registerEvents(new HealthScale(), this);
if (getConfig().getBoolean("death-exp-loss.enabled"))
Bukkit.getPluginManager().registerEvents(new DeathExperienceLoss(), this);

View File

@ -29,6 +29,7 @@ public class KillMobExperienceSource extends SpecificExperienceSource<Entity> {
@EventHandler
public void a(EntityKillEntityEvent event) {
if (event.getEntity() instanceof Player && !event.getEntity().hasMetadata("NPC")) {
if(event.getTarget().hasMetadata("spawner_spawned")) return;
PlayerData data = PlayerData.get((Player) event.getEntity());
for (KillMobExperienceSource source : getSources())

View File

@ -0,0 +1,17 @@
package net.Indyuce.mmocore.listener.option;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
import org.bukkit.metadata.FixedMetadataValue;
import net.Indyuce.mmocore.MMOCore;
public class NoSpawnerEXP implements Listener {
@EventHandler
public void a(CreatureSpawnEvent event) {
if(event.getSpawnReason() == SpawnReason.SPAWNER)
event.getEntity().setMetadata("spawner_spawned", new FixedMetadataValue(MMOCore.plugin, true));
}
}

View File

@ -98,6 +98,9 @@ hotbar-swap: true
# This replaces anvil inputs by chat inputs.
use-chat-input: true
# Prevents mobs spawned from spawners from giving XP points.
prevent-spawner-xp: true
# Change this to the name of the color you want for
# the different resource bar placeholders
resource-bar-colors: