Moved Citizens support to MMOLib

This commit is contained in:
Indyuce 2020-05-05 20:38:11 +02:00
parent b1bead79bb
commit d0034b4d34
4 changed files with 2 additions and 61 deletions

View File

@ -32,10 +32,8 @@ import net.Indyuce.mmocore.command.QuestsCommand;
import net.Indyuce.mmocore.command.SkillsCommand; import net.Indyuce.mmocore.command.SkillsCommand;
import net.Indyuce.mmocore.command.WaypointsCommand; import net.Indyuce.mmocore.command.WaypointsCommand;
import net.Indyuce.mmocore.command.WithdrawCommand; import net.Indyuce.mmocore.command.WithdrawCommand;
import net.Indyuce.mmocore.comp.ShopKeepersEntityHandler;
import net.Indyuce.mmocore.comp.citizens.CitizenInteractEventListener; import net.Indyuce.mmocore.comp.citizens.CitizenInteractEventListener;
import net.Indyuce.mmocore.comp.citizens.CitizensMMOLoader; import net.Indyuce.mmocore.comp.citizens.CitizensMMOLoader;
import net.Indyuce.mmocore.comp.entity.MyPetEntityHandler;
import net.Indyuce.mmocore.comp.holograms.CMIPlugin; import net.Indyuce.mmocore.comp.holograms.CMIPlugin;
import net.Indyuce.mmocore.comp.holograms.HologramSupport; import net.Indyuce.mmocore.comp.holograms.HologramSupport;
import net.Indyuce.mmocore.comp.holograms.HologramsPlugin; import net.Indyuce.mmocore.comp.holograms.HologramsPlugin;
@ -72,7 +70,6 @@ import net.Indyuce.mmocore.manager.ConfigItemManager;
import net.Indyuce.mmocore.manager.ConfigManager; import net.Indyuce.mmocore.manager.ConfigManager;
import net.Indyuce.mmocore.manager.CustomBlockManager; import net.Indyuce.mmocore.manager.CustomBlockManager;
import net.Indyuce.mmocore.manager.DropTableManager; import net.Indyuce.mmocore.manager.DropTableManager;
import net.Indyuce.mmocore.manager.EntityManager;
import net.Indyuce.mmocore.manager.ExperienceManager; import net.Indyuce.mmocore.manager.ExperienceManager;
import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.manager.LootChestManager; import net.Indyuce.mmocore.manager.LootChestManager;
@ -119,7 +116,6 @@ public class MMOCore extends JavaPlugin {
public final PartyManager partyManager = new PartyManager(); public final PartyManager partyManager = new PartyManager();
public final QuestManager questManager = new QuestManager(); public final QuestManager questManager = new QuestManager();
public final ProfessionManager professionManager = new ProfessionManager(); public final ProfessionManager professionManager = new ProfessionManager();
public final EntityManager entities = new EntityManager();
public final ExperienceManager experience = new ExperienceManager(); public final ExperienceManager experience = new ExperienceManager();
public final LootChestManager lootChests = new LootChestManager(); public final LootChestManager lootChests = new LootChestManager();
@ -190,21 +186,11 @@ public class MMOCore extends JavaPlugin {
getLogger().log(Level.INFO, "Hooked onto Holograms"); getLogger().log(Level.INFO, "Hooked onto Holograms");
} }
if (Bukkit.getPluginManager().getPlugin("ShopKeepers") != null) {
entities.registerHandler(new ShopKeepersEntityHandler());
getLogger().log(Level.INFO, "Hooked onto ShopKeepers");
}
if (Bukkit.getPluginManager().getPlugin("MythicMobs") != null) { if (Bukkit.getPluginManager().getPlugin("MythicMobs") != null) {
Bukkit.getServer().getPluginManager().registerEvents(new MythicMobsDrops(), this); Bukkit.getServer().getPluginManager().registerEvents(new MythicMobsDrops(), this);
MMOCore.plugin.getLogger().log(Level.INFO, "Hooked onto MythicMobs"); MMOCore.plugin.getLogger().log(Level.INFO, "Hooked onto MythicMobs");
} }
if (Bukkit.getPluginManager().getPlugin("MyPet") != null) {
entities.registerHandler(new MyPetEntityHandler());
getLogger().log(Level.INFO, "Hooked onto MyPet");
}
/* /*
* resource regeneration. must check if entity is dead otherwise regen * resource regeneration. must check if entity is dead otherwise regen
* will make the 'respawn' button glitched plus HURT entity effect bug * will make the 'respawn' button glitched plus HURT entity effect bug

View File

@ -19,7 +19,6 @@ import org.bukkit.util.io.BukkitObjectInputStream;
import org.bukkit.util.io.BukkitObjectOutputStream; import org.bukkit.util.io.BukkitObjectOutputStream;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.mmogroup.mmolib.MMOLib; import net.mmogroup.mmolib.MMOLib;
import net.mmogroup.mmolib.version.VersionMaterial; import net.mmogroup.mmolib.version.VersionMaterial;
@ -153,7 +152,7 @@ public class MMOCoreUtils {
public static boolean canTarget(PlayerData player, Entity target) { public static boolean canTarget(PlayerData player, Entity target) {
// basic checks // basic checks
if (!(target instanceof LivingEntity) || player.getPlayer().equals(target) || target.isDead() || MMOCore.plugin.entities.findCustom(target)) if (!(target instanceof LivingEntity) || player.getPlayer().equals(target) || target.isDead() || MMOLib.plugin.getEntities().findCustom(target))
return false; return false;
// party check // party check

View File

@ -6,19 +6,9 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.comp.entity.EntityHandler;
import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.CitizensAPI;
public class CitizenInteractEventListener implements Listener, EntityHandler { public class CitizenInteractEventListener implements Listener {
public CitizenInteractEventListener() {
/*
* prevents NPCs from being skill targets.
*/
MMOCore.plugin.entities.registerHandler(this);
}
@EventHandler @EventHandler
public void a(PlayerInteractEntityEvent event) { public void a(PlayerInteractEntityEvent event) {
@ -26,9 +16,4 @@ public class CitizenInteractEventListener implements Listener, EntityHandler {
if (CitizensAPI.getNPCRegistry().isNPC(entity)) if (CitizensAPI.getNPCRegistry().isNPC(entity))
Bukkit.getPluginManager().callEvent(new CitizenInteractEvent(event.getPlayer(), CitizensAPI.getNPCRegistry().getNPC(entity))); Bukkit.getPluginManager().callEvent(new CitizenInteractEvent(event.getPlayer(), CitizensAPI.getNPCRegistry().getNPC(entity)));
} }
@Override
public boolean isCustomEntity(Entity entity) {
return entity.hasMetadata("NPC");
}
} }

View File

@ -1,29 +0,0 @@
package net.Indyuce.mmocore.manager;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.entity.Entity;
import net.Indyuce.mmocore.comp.entity.EntityHandler;
public class EntityManager {
public final List<EntityHandler> handlers = new ArrayList<>();
public void registerHandler(EntityHandler handler) {
handlers.add(handler);
}
/*
* determines if an entity is from another plugin and therefore cannot be
* target of skill or attack
*/
public boolean findCustom(Entity entity) {
for (EntityHandler handler : handlers)
if (handler.isCustomEntity(entity))
return true;
return false;
}
}