mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 13:16:45 +01:00
2.1.143
This commit is contained in:
parent
1feee7f312
commit
500ab628dd
@ -1,11 +1,12 @@
|
|||||||
Version 2.1.143
|
Version 2.1.143
|
||||||
mcMMO now tracks super ability boosted items through item metadata
|
mcMMO now tracks super ability boosted items through persistent metadata
|
||||||
mcMMO no longer relies on lore to tell if an item has been modified by a super ability
|
mcMMO no longer relies on lore to tell if an item has been modified by a super ability
|
||||||
Slight buff to Rupture
|
Slight buff to Rupture (1 more tick duration across all ranks)
|
||||||
|
Lore no longer gets added to items being buffed by mcMMO
|
||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
The item tracking on 1.14+ is persistent (up until now its been temporary)
|
The item tracking is persistent for MC versions 1.13-1.16.2 (and beyond). However the code handling the persistence for 1.13.2 differs from the other versions. It shouldn't result in any problems.
|
||||||
Lore still gets added and removed from the item, this is sort of a failsafe. It can be considered optional.
|
Any items that currently have the "mcMMO Ability Tool" lore on them won't get touched by anything this update does, there is no way to tell what the true enchant values on those items should be.
|
||||||
|
|
||||||
Version 2.1.142
|
Version 2.1.142
|
||||||
Iron Arm Style renamed to Steel Arm Style
|
Iron Arm Style renamed to Steel Arm Style
|
||||||
|
2
pom.xml
2
pom.xml
@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
<groupId>com.gmail.nossr50.mcMMO</groupId>
|
||||||
<artifactId>mcMMO</artifactId>
|
<artifactId>mcMMO</artifactId>
|
||||||
<version>2.1.143-SNAPSHOT</version>
|
<version>2.1.143</version>
|
||||||
<name>mcMMO</name>
|
<name>mcMMO</name>
|
||||||
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
<url>https://github.com/mcMMO-Dev/mcMMO</url>
|
||||||
<scm>
|
<scm>
|
||||||
|
@ -15,7 +15,6 @@ import org.bukkit.inventory.Recipe;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class ItemUtils {
|
public final class ItemUtils {
|
||||||
@ -486,22 +485,22 @@ public final class ItemUtils {
|
|||||||
return itemMeta.hasDisplayName() && itemMeta.getDisplayName().equals(ChatColor.GOLD + LocaleLoader.getString("Item.ChimaeraWing.Name"));
|
return itemMeta.hasDisplayName() && itemMeta.getDisplayName().equals(ChatColor.GOLD + LocaleLoader.getString("Item.ChimaeraWing.Name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addAbilityLore(@NotNull ItemStack itemStack) {
|
// public static void addAbilityLore(@NotNull ItemStack itemStack) {
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
// ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
List<String> itemLore = new ArrayList<>();
|
// List<String> itemLore = new ArrayList<>();
|
||||||
|
//
|
||||||
if(itemMeta == null)
|
// if(itemMeta == null)
|
||||||
return;
|
// return;
|
||||||
|
//
|
||||||
if (itemMeta.hasLore()) {
|
// if (itemMeta.hasLore()) {
|
||||||
itemLore = itemMeta.getLore();
|
// itemLore = itemMeta.getLore();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
itemLore.add("mcMMO Ability Tool");
|
// itemLore.add("mcMMO Ability Tool");
|
||||||
|
//
|
||||||
itemMeta.setLore(itemLore);
|
// itemMeta.setLore(itemLore);
|
||||||
itemStack.setItemMeta(itemMeta);
|
// itemStack.setItemMeta(itemMeta);
|
||||||
}
|
// }
|
||||||
|
|
||||||
public static void removeAbilityLore(@NotNull ItemStack itemStack) {
|
public static void removeAbilityLore(@NotNull ItemStack itemStack) {
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
@ -5,13 +5,16 @@ import com.gmail.nossr50.util.compat.layers.AbstractCompatibilityLayer;
|
|||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.block.Furnace;
|
import org.bukkit.block.Furnace;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public abstract class AbstractPersistentDataLayer extends AbstractCompatibilityLayer {
|
public abstract class AbstractPersistentDataLayer extends AbstractCompatibilityLayer {
|
||||||
|
|
||||||
|
public static final String LEGACY_ABILITY_TOOL_LORE = "mcMMO Ability Tool";
|
||||||
public final NamespacedKey superAbilityBoosted;
|
public final NamespacedKey superAbilityBoosted;
|
||||||
public final String SUPER_ABILITY_BOOSTED = "super_ability_boosted";
|
public final String SUPER_ABILITY_BOOSTED = "super_ability_boosted";
|
||||||
|
|
||||||
@ -36,4 +39,18 @@ public abstract class AbstractPersistentDataLayer extends AbstractCompatibilityL
|
|||||||
|
|
||||||
public abstract void removeBonusDigSpeedOnSuperAbilityTool(@NotNull ItemStack itemStack);
|
public abstract void removeBonusDigSpeedOnSuperAbilityTool(@NotNull ItemStack itemStack);
|
||||||
|
|
||||||
|
public boolean isLegacyAbilityTool(ItemStack itemStack) {
|
||||||
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
|
||||||
|
if(itemMeta == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
List<String> lore = itemMeta.getLore();
|
||||||
|
|
||||||
|
if(lore == null || lore.isEmpty())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return lore.contains(LEGACY_ABILITY_TOOL_LORE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@ import java.util.UUID;
|
|||||||
public class SpigotTemporaryDataLayer extends AbstractPersistentDataLayer {
|
public class SpigotTemporaryDataLayer extends AbstractPersistentDataLayer {
|
||||||
|
|
||||||
private final String FURNACE_OWNER_METADATA_KEY = "mcMMO_furnace_owner";
|
private final String FURNACE_OWNER_METADATA_KEY = "mcMMO_furnace_owner";
|
||||||
private final String ABILITY_TOOL_METADATA_KEY = "mcMMO_super_ability_tool";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean initializeLayer() {
|
public boolean initializeLayer() {
|
||||||
|
@ -27,6 +27,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.Recipe;
|
import org.bukkit.inventory.Recipe;
|
||||||
import org.bukkit.inventory.ShapedRecipe;
|
import org.bukkit.inventory.ShapedRecipe;
|
||||||
import org.bukkit.inventory.ShapelessRecipe;
|
import org.bukkit.inventory.ShapelessRecipe;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -145,11 +146,13 @@ public class SkillUtils {
|
|||||||
|
|
||||||
int originalDigSpeed = heldItem.getEnchantmentLevel(Enchantment.DIG_SPEED);
|
int originalDigSpeed = heldItem.getEnchantmentLevel(Enchantment.DIG_SPEED);
|
||||||
|
|
||||||
//Add lore, add dig speed
|
//Add dig speed
|
||||||
ItemUtils.addAbilityLore(heldItem); //lore can be a secondary failsafe for 1.13 and below
|
|
||||||
|
//Lore no longer gets added, no point to it afaik
|
||||||
|
//ItemUtils.addAbilityLore(heldItem); //lore can be a secondary failsafe for 1.13 and below
|
||||||
ItemUtils.addDigSpeedToItem(heldItem, heldItem.getEnchantmentLevel(Enchantment.DIG_SPEED));
|
ItemUtils.addDigSpeedToItem(heldItem, heldItem.getEnchantmentLevel(Enchantment.DIG_SPEED));
|
||||||
|
|
||||||
//1.14+ will have persistent metadata for this item
|
//1.13.2+ will have persistent metadata for this item
|
||||||
AbstractPersistentDataLayer compatLayer = mcMMO.getCompatibilityManager().getPersistentDataLayer();
|
AbstractPersistentDataLayer compatLayer = mcMMO.getCompatibilityManager().getPersistentDataLayer();
|
||||||
compatLayer.setSuperAbilityBoostedItem(heldItem, originalDigSpeed);
|
compatLayer.setSuperAbilityBoostedItem(heldItem, originalDigSpeed);
|
||||||
}
|
}
|
||||||
@ -211,14 +214,25 @@ public class SkillUtils {
|
|||||||
if(!ItemUtils.canBeSuperAbilityDigBoosted(itemStack))
|
if(!ItemUtils.canBeSuperAbilityDigBoosted(itemStack))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//Take the lore off
|
|
||||||
ItemUtils.removeAbilityLore(itemStack);
|
|
||||||
|
|
||||||
//1.14+ will have persistent metadata for this itemStack
|
//1.13.2+ will have persistent metadata for this itemStack
|
||||||
AbstractPersistentDataLayer compatLayer = mcMMO.getCompatibilityManager().getPersistentDataLayer();
|
AbstractPersistentDataLayer compatLayer = mcMMO.getCompatibilityManager().getPersistentDataLayer();
|
||||||
|
|
||||||
if(compatLayer.isSuperAbilityBoosted(itemStack))
|
if(compatLayer.isLegacyAbilityTool(itemStack)) {
|
||||||
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
|
||||||
|
//TODO: can be optimized
|
||||||
|
if(itemMeta.hasEnchant(Enchantment.DIG_SPEED)) {
|
||||||
|
itemMeta.removeEnchant(Enchantment.DIG_SPEED);
|
||||||
|
}
|
||||||
|
|
||||||
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
ItemUtils.removeAbilityLore(itemStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(compatLayer.isSuperAbilityBoosted(itemStack)) {
|
||||||
compatLayer.removeBonusDigSpeedOnSuperAbilityTool(itemStack);
|
compatLayer.removeBonusDigSpeedOnSuperAbilityTool(itemStack);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void handleDurabilityChange(ItemStack itemStack, int durabilityModifier) {
|
public static void handleDurabilityChange(ItemStack itemStack, int durabilityModifier) {
|
||||||
|
Loading…
Reference in New Issue
Block a user