members, String name, Dungeon dungeon);
/**
* Wraps the given {@link LivingEntity} object in a {@link DungeonMob} object.
*
* @param entity the entity
* @param gameWorld the game world where the entity is
* @param triggerId the identifier used in mob triggers
* @return the wrapped DungeonMob
*/
DungeonMob wrapEntity(LivingEntity entity, GameWorld gameWorld, String triggerId);
/**
* Wraps the given {@link LivingEntity} object in a {@link DungeonMob} object.
*
* @param entity the entity
* @param gameWorld the game world where the entity is
* @param type the ExMob type of the entity
* @return the wrapped DungeonMob
*/
DungeonMob wrapEntity(LivingEntity entity, GameWorld gameWorld, ExMob type);
/**
* Wraps the given {@link LivingEntity} object in a {@link DungeonMob} object.
*
* @param entity the entity
* @param gameWorld the game world where the entity is
* @param type the ExMob type of the entity
* @param triggerId the identifier used in mob triggers
* @return the wrapped DungeonMob
*/
DungeonMob wrapEntity(LivingEntity entity, GameWorld gameWorld, ExMob type, String triggerId);
/* Getters */
/**
* Returns an existing {@link DungeonMob} object that wraps the given {@link LivingEntity} object or null if none exists.
*
* @param entity the entity
* @return an existing {@link DungeonMob} object that wraps the given {@link LivingEntity} object or null if none exists
*/
DungeonMob getDungeonMob(LivingEntity entity);
/**
* Returns the group the player is a member of or null if he is in none.
*
* @param member the player
* @return the group the player is a member of or null if he is in none
*/
PlayerGroup getPlayerGroup(Player member);
/**
* Returns the game the given player plays.
*
* @param player the player
* @return the game the given player plays
*/
Game getGame(Player player);
/**
* Returns the game played in the given instance world.
*
* @param world the instance world
* @return the game played in the given instance world
*/
Game getGame(World world);
/**
* Returns the GameWorld that wraps the given instance world.
*
* @param world the instance world
* @return the GameWorld that wraps the given instance world
*/
GameWorld getGameWorld(World world);
/**
* Returns the EditWorld that wraps the given instance world.
*
* @param world the instance world
* @return the EditWorld that wraps the given instance worl
*/
EditWorld getEditWorld(World world);
/**
* Returns if the given world is an instance.
*
* @param world the world
* @return if the given world is an instance
*/
boolean isInstance(World world);
/**
* Returns if the given item stack is a dungeon item.
*
* Dungeon items are items that are removed from the inventory when the dungeon is finished.
*
* @param itemStack the item stack
* @return if the given item stack is a dungeon item
*/
boolean isDungeonItem(ItemStack itemStack);
/**
* Sets the given item stack to be a dungeon item and returns a copy with the updated state.
*
* Dungeon items are items that are removed from the inventory when the dungeon is finished.
*
* @param itemStack the item stack
* @param dungeonItem if the item stack
* @return a copy of the item stack that is a dungeon item
*/
ItemStack setDungeonItem(ItemStack itemStack, boolean dungeonItem);
}