mirror of
https://github.com/hyperdefined/ToolStats.git
synced 2026-02-04 11:31:02 +00:00
add critical strikes
This commit is contained in:
@@ -135,6 +135,10 @@ public class AnvilEvent implements Listener {
|
||||
addToken(event, tokenType, "enderdragon-kills", clone);
|
||||
return;
|
||||
}
|
||||
if (tokenType.equalsIgnoreCase("critical-strikes")) {
|
||||
addToken(event, tokenType, "critical-strikes", clone);
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -167,6 +171,10 @@ public class AnvilEvent implements Listener {
|
||||
addToken(event, tokenType, "enderdragon-kills", clone);
|
||||
return;
|
||||
}
|
||||
if (tokenType.equalsIgnoreCase("critical-strikes")) {
|
||||
addToken(event, tokenType, "critical-strikes", clone);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (firstSlotMaterial == Material.BOW || firstSlotMaterial == Material.CROSSBOW) {
|
||||
@@ -333,6 +341,15 @@ public class AnvilEvent implements Listener {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "critical-strikes": {
|
||||
if (toolStats.config.getBoolean("enabled.critical-strikes")) {
|
||||
newItem.setItemMeta(toolStats.itemLore.updateCriticalStrikes(newItem, 0));
|
||||
} else {
|
||||
event.setResult(null);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
event.setResult(newItem);
|
||||
event.getView().setRepairCost(toolStats.itemChecker.getCost(targetToken));
|
||||
@@ -450,6 +467,14 @@ public class AnvilEvent implements Listener {
|
||||
meta = toolStats.itemLore.updateBossesKilled(finalItem, -enderDragonKills, "enderdragon");
|
||||
finalItem.setItemMeta(meta);
|
||||
}
|
||||
if (container.has(toolStats.criticalStrikes)) {
|
||||
Integer criticalStrikes = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER);
|
||||
if (criticalStrikes == null) {
|
||||
return;
|
||||
}
|
||||
meta = toolStats.itemLore.updateCriticalStrikes(finalItem, -criticalStrikes);
|
||||
finalItem.setItemMeta(meta);
|
||||
}
|
||||
event.setResult(finalItem);
|
||||
event.getView().setRepairCost(toolStats.itemChecker.getCost("reset"));
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ public class EntityDamage implements Listener {
|
||||
double finalDamage = event.getFinalDamage();
|
||||
boolean modDied = mobBeingAttacked.getHealth() - finalDamage <= 0;
|
||||
EntityType mobAttackedType = event.getEntityType();
|
||||
boolean critical = event.isCritical();
|
||||
|
||||
// player attacks something
|
||||
if (playerAttacking) {
|
||||
@@ -80,6 +81,11 @@ public class EntityDamage implements Listener {
|
||||
// update their weapon's damage
|
||||
updateWeaponDamage(playerAttackingInventory, event.getFinalDamage());
|
||||
|
||||
// if the player crit
|
||||
if (critical) {
|
||||
updateCriticalStrikes(playerAttackingInventory);
|
||||
}
|
||||
|
||||
// the mob the player attacked died
|
||||
if (modDied) {
|
||||
// player killed another player
|
||||
@@ -88,12 +94,11 @@ public class EntityDamage implements Listener {
|
||||
} else {
|
||||
// player kills a regular mob
|
||||
updateWeaponKills(playerAttackingInventory, "mob");
|
||||
// reget the player inventory since we updated above
|
||||
if (mobAttackedType == EntityType.WITHER) {
|
||||
updateBossesKilled(player.getInventory(), "wither");
|
||||
updateBossesKilled(playerAttackingInventory, "wither");
|
||||
}
|
||||
if (mobAttackedType == EntityType.ENDER_DRAGON) {
|
||||
updateBossesKilled(player.getInventory(), "enderdragon");
|
||||
updateBossesKilled(playerAttackingInventory, "enderdragon");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -306,8 +311,7 @@ public class EntityDamage implements Listener {
|
||||
|
||||
private void updateBossesKilled(PlayerInventory playerInventory, String boss) {
|
||||
ItemStack heldWeapon = playerInventory.getItemInMainHand();
|
||||
ItemMeta newHeldWeaponMeta = null;
|
||||
newHeldWeaponMeta = toolStats.itemLore.updateBossesKilled(heldWeapon, 1, boss);
|
||||
ItemMeta newHeldWeaponMeta = toolStats.itemLore.updateBossesKilled(heldWeapon, 1, boss);
|
||||
if (newHeldWeaponMeta != null) {
|
||||
playerInventory.getItemInMainHand().setItemMeta(newHeldWeaponMeta);
|
||||
}
|
||||
@@ -333,4 +337,12 @@ public class EntityDamage implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void updateCriticalStrikes(PlayerInventory playerInventory) {
|
||||
ItemStack heldWeapon = playerInventory.getItemInMainHand();
|
||||
ItemMeta newHeldWeaponMeta = toolStats.itemLore.updateCriticalStrikes(heldWeapon, 1);
|
||||
if (newHeldWeaponMeta != null) {
|
||||
playerInventory.getItemInMainHand().setItemMeta(newHeldWeaponMeta);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user