mirror of
https://github.com/shansen/EggCatcher.git
synced 2024-11-28 21:15:44 +01:00
Formatting, cleanup, and jdocs
This commit is contained in:
parent
998073659b
commit
ece246d7d8
@ -68,8 +68,8 @@ public class EggCatcherEntityListener implements Listener {
|
|||||||
private final boolean logCaptures;
|
private final boolean logCaptures;
|
||||||
FileConfiguration config;
|
FileConfiguration config;
|
||||||
JavaPlugin plugin;
|
JavaPlugin plugin;
|
||||||
private final File captureLogFile;
|
private final File captureLogFile;
|
||||||
private final EggCatcherLogger captureLogger;
|
private final EggCatcherLogger captureLogger;
|
||||||
|
|
||||||
|
|
||||||
public EggCatcherEntityListener(JavaPlugin plugin) {
|
public EggCatcherEntityListener(JavaPlugin plugin) {
|
||||||
@ -95,9 +95,9 @@ public class EggCatcherEntityListener implements Listener {
|
|||||||
this.vaultTargetBankAccount = this.config.getString("VaultTargetBankAccount", "");
|
this.vaultTargetBankAccount = this.config.getString("VaultTargetBankAccount", "");
|
||||||
this.deleteVillagerInventoryOnCatch = this.config.getBoolean("DeleteVillagerInventoryOnCatch", false);
|
this.deleteVillagerInventoryOnCatch = this.config.getBoolean("DeleteVillagerInventoryOnCatch", false);
|
||||||
this.logCaptures = this.config.getBoolean("LogEggCaptures", false);
|
this.logCaptures = this.config.getBoolean("LogEggCaptures", false);
|
||||||
this.captureLogFile = new File(plugin.getDataFolder(), "captures.txt");
|
this.captureLogFile = new File(plugin.getDataFolder(), "captures.txt");
|
||||||
this.captureLogger = new EggCatcherLogger(captureLogFile);
|
this.captureLogger = new EggCatcherLogger(captureLogFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||||
public void onEntityHitByEgg(EntityDamageEvent event) {
|
public void onEntityHitByEgg(EntityDamageEvent event) {
|
||||||
@ -189,17 +189,17 @@ public class EggCatcherEntityListener implements Listener {
|
|||||||
eggStack.setItemMeta(meta);
|
eggStack.setItemMeta(meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(entity instanceof Pig && ((Pig) entity).hasSaddle()) {
|
if (entity instanceof Pig && ((Pig) entity).hasSaddle()) {
|
||||||
entity.getWorld().dropItem(entity.getLocation(), new ItemStack(Material.SADDLE, 1));
|
entity.getWorld().dropItem(entity.getLocation(), new ItemStack(Material.SADDLE, 1));
|
||||||
} else if (entity instanceof ChestedHorse && ((ChestedHorse) entity).isCarryingChest()) {
|
} else if (entity instanceof ChestedHorse && ((ChestedHorse) entity).isCarryingChest()) {
|
||||||
entity.getWorld().dropItemNaturally(entity.getLocation(), new ItemStack(Material.CHEST));
|
entity.getWorld().dropItemNaturally(entity.getLocation(), new ItemStack(Material.CHEST));
|
||||||
} else if((entity instanceof Villager && !this.deleteVillagerInventoryOnCatch) ||
|
} else if ((entity instanceof Villager && !this.deleteVillagerInventoryOnCatch) ||
|
||||||
(!(entity instanceof Villager) && entity instanceof InventoryHolder)) {
|
(!(entity instanceof Villager) && entity instanceof InventoryHolder)) {
|
||||||
|
|
||||||
ItemStack[] items = ((InventoryHolder) entity).getInventory().getContents();
|
ItemStack[] items = ((InventoryHolder) entity).getInventory().getContents();
|
||||||
|
|
||||||
for(ItemStack itemStack : items) {
|
for (ItemStack itemStack : items) {
|
||||||
if(itemStack!=null){
|
if (itemStack != null) {
|
||||||
entity.getWorld().dropItemNaturally(entity.getLocation(), itemStack);
|
entity.getWorld().dropItemNaturally(entity.getLocation(), itemStack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,15 +213,29 @@ public class EggCatcherEntityListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.logCaptures){
|
if (this.logCaptures) {
|
||||||
captureLogger.logToFile("Player " + ((Player) egg.getShooter()).getName() + " caught " + entity.getType() + " at X" + Math.round(entity.getLocation().getX()) + ",Y" + Math.round(entity.getLocation().getY()) + ",Z" + Math.round(entity.getLocation().getZ()));
|
captureLogger.logToFile(String.format("Player %s caught %s at X%d,Y%d,Z%d",
|
||||||
|
((Player) egg.getShooter()).getName(),
|
||||||
|
entity.getType().toString(),
|
||||||
|
Math.round(entity.getLocation().getX()),
|
||||||
|
Math.round(entity.getLocation().getY()),
|
||||||
|
Math.round(entity.getLocation().getZ())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check that the player satisfies requirements necessary to capture mob
|
||||||
|
*
|
||||||
|
* @param event egg capture event
|
||||||
|
* @param player player causing event
|
||||||
|
* @param vaultCost economy cost to capture mob
|
||||||
|
* @param itemCost item cost to capture mob
|
||||||
|
* @return if player should catch the mob
|
||||||
|
*/
|
||||||
private boolean playerHasRequirements(EggCaptureEvent event, Player player, double vaultCost, ItemStack itemCost) {
|
private boolean playerHasRequirements(EggCaptureEvent event, Player player, double vaultCost, ItemStack itemCost) {
|
||||||
LivingEntity entity = (LivingEntity) event.getEntity();
|
LivingEntity entity = (LivingEntity) event.getEntity();
|
||||||
String eggType = Objects.requireNonNull(EggType.getEggType(event.getEntity())).getFriendlyName();
|
String eggType = Objects.requireNonNull(EggType.getEggType(event.getEntity())).getFriendlyName();
|
||||||
double entityHealthRequirement = getEntityHealthRequirement(entity, eggType);
|
double entityHealthRequirement = getEntityHealthRequirement(eggType);
|
||||||
|
|
||||||
String message = null;
|
String message = null;
|
||||||
boolean hasRequirements = true;
|
boolean hasRequirements = true;
|
||||||
@ -260,10 +274,24 @@ public class EggCatcherEntityListener implements Listener {
|
|||||||
return hasRequirements;
|
return hasRequirements;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the vault (economy) cost of capturing the given egg mob
|
||||||
|
*
|
||||||
|
* @param p player attempting to capture mob
|
||||||
|
* @param eggType friendly name of the mob egg being caught
|
||||||
|
* @return vault cost of capturing the mob egg
|
||||||
|
*/
|
||||||
private double getVaultCost(Player p, String eggType) {
|
private double getVaultCost(Player p, String eggType) {
|
||||||
return this.useVaultCost && !p.hasPermission("eggcatcher.free") ? config.getDouble("VaultCost." + eggType) : 0;
|
return this.useVaultCost && !p.hasPermission("eggcatcher.free") ? config.getDouble("VaultCost." + eggType) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the item cost of catching a mob egg
|
||||||
|
*
|
||||||
|
* @param p player attempting to capture mob
|
||||||
|
* @param eggType friendly name of the mob egg being caught
|
||||||
|
* @return item cost of capturing the mob egg
|
||||||
|
*/
|
||||||
private ItemStack getItemCost(Player p, String eggType) {
|
private ItemStack getItemCost(Player p, String eggType) {
|
||||||
if (this.useItemCost && !p.hasPermission("eggcatcher.free")) {
|
if (this.useItemCost && !p.hasPermission("eggcatcher.free")) {
|
||||||
int itemId = config.getInt("ItemCost.ItemId", 266);
|
int itemId = config.getInt("ItemCost.ItemId", 266);
|
||||||
@ -274,25 +302,49 @@ public class EggCatcherEntityListener implements Listener {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private double getEntityHealthRequirement(LivingEntity entity, String eggType) {
|
/**
|
||||||
|
* Get the required health percentage to catch given mob egg
|
||||||
|
*
|
||||||
|
* @param eggType friendly name of mob egg type being caught
|
||||||
|
* @return required health percentage to catch given mob egg
|
||||||
|
*/
|
||||||
|
private double getEntityHealthRequirement(String eggType) {
|
||||||
return this.useHealthPercentage ? config.getDouble("HealthPercentage." + eggType) : 0;
|
return this.useHealthPercentage ? config.getDouble("HealthPercentage." + eggType) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current percentage of max health an entity currently has
|
||||||
|
*
|
||||||
|
* @param entity Entity to get health percentage of
|
||||||
|
* @return current percentage of max health an entity currently has
|
||||||
|
*/
|
||||||
private double getEntityHealthPercentage(LivingEntity entity) {
|
private double getEntityHealthPercentage(LivingEntity entity) {
|
||||||
return entity.getHealth() * 100.0 / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
|
return entity.getHealth() * 100.0 / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check that the EntityDamageByEntityEvent is damage done by a valid egg to a valid egg-able mob
|
||||||
|
*
|
||||||
|
* @param e EntityDamageByEntityEvent
|
||||||
|
* @return if this event is a valid egg capture
|
||||||
|
*/
|
||||||
private boolean checkIsEggEvent(EntityDamageByEntityEvent e) {
|
private boolean checkIsEggEvent(EntityDamageByEntityEvent e) {
|
||||||
return e.getDamager() instanceof Egg && EggType.getEggType(e.getEntity()) != null;
|
return e.getDamager() instanceof Egg && EggType.getEggType(e.getEntity()) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check that the entity being damaged satisfies the configured baby/tamed/sheared restrictions
|
||||||
|
*
|
||||||
|
* @param e entity damage by entity event
|
||||||
|
* @return if the entity being damated satisfies the restrictions
|
||||||
|
*/
|
||||||
private boolean checkAnimalRestrictions(EntityDamageByEntityEvent e) {
|
private boolean checkAnimalRestrictions(EntityDamageByEntityEvent e) {
|
||||||
Entity entity = e.getEntity();
|
Entity entity = e.getEntity();
|
||||||
|
|
||||||
return !(
|
return !(
|
||||||
(this.preventCatchingBabyAnimals && entity instanceof Ageable && !((Ageable) entity).isAdult()) ||
|
(this.preventCatchingBabyAnimals && entity instanceof Ageable && !((Ageable) entity).isAdult()) ||
|
||||||
(this.preventCatchingTamedAnimals && entity instanceof Tameable && ((Tameable) entity).isTamed()) ||
|
(this.preventCatchingTamedAnimals && entity instanceof Tameable && ((Tameable) entity).isTamed()) ||
|
||||||
(this.preventCatchingShearedSheeps && entity instanceof Sheep && ((Sheep) entity).isSheared())
|
(this.preventCatchingShearedSheeps && entity instanceof Sheep && ((Sheep) entity).isSheared())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user