mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-01-20 09:11:21 +01:00
Support for 1.20+ vanilla stats (size, range etc)
This commit is contained in:
parent
b8a178837e
commit
c9cd7727ae
@ -120,6 +120,18 @@ public class ItemStats {
|
|||||||
DROP_ON_DEATH = new DisableDeathDrop(),
|
DROP_ON_DEATH = new DisableDeathDrop(),
|
||||||
DURABILITY_BAR = new DurabilityBar(),
|
DURABILITY_BAR = new DurabilityBar(),
|
||||||
|
|
||||||
|
// Extra Attributes (1.20.2+)
|
||||||
|
MAX_ABSORPTION = new MaxAbsorption(),
|
||||||
|
BLOCK_BREAK_SPEED = new BlockBreakSpeed(),
|
||||||
|
BLOCK_INTERACTION_RANGE = new BlockInteractionRange(),
|
||||||
|
ENTITY_INTERACTION_RANGE = new EntityInteractionRange(),
|
||||||
|
FALL_DAMAGE_MULTIPLIER = new FallDamageMultiplier(),
|
||||||
|
GRAVITY = new Gravity(),
|
||||||
|
JUMP_STRENGTH = new JumpStrength(),
|
||||||
|
SAFE_FALL_DISTANCE = new SafeFallDistance(),
|
||||||
|
SCALE = new Scale(),
|
||||||
|
STEP_HEIGHT = new StepHeight(),
|
||||||
|
|
||||||
// Permanent Effects
|
// Permanent Effects
|
||||||
PERM_EFFECTS = new PermanentEffects(),
|
PERM_EFFECTS = new PermanentEffects(),
|
||||||
GRANTED_PERMISSIONS = new GrantedPermissions(),
|
GRANTED_PERMISSIONS = new GrantedPermissions(),
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class BlockBreakSpeed extends DoubleStat {
|
||||||
|
public BlockBreakSpeed() {
|
||||||
|
super("BLOCK_BREAK_SPEED", Material.IRON_PICKAXE,
|
||||||
|
"Mining Speed", new String[]{"Additional block breaking speed.", "Bare hands have a mining speed of 1"});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import io.lumine.mythic.lib.version.VMaterial;
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class BlockInteractionRange extends DoubleStat {
|
||||||
|
public BlockInteractionRange() {
|
||||||
|
super("BLOCK_INTERACTION_RANGE", VMaterial.SPYGLASS.get(),
|
||||||
|
"Block Interaction Range", new String[]{"Additional range for breaking or interacting", "with blocks. Player's default is set to 5", "in creative mode, or 4.5 otherwise."});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import io.lumine.mythic.lib.version.VMaterial;
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class EntityInteractionRange extends DoubleStat {
|
||||||
|
public EntityInteractionRange() {
|
||||||
|
super("ENTITY_INTERACTION_RANGE", VMaterial.SPYGLASS.get(),
|
||||||
|
"Entity Interaction Range", new String[]{"Additional range for damaging or interacting with entities.", "Player's default is set to 5 in creative,", "and 4.5 in survival."});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class FallDamageMultiplier extends DoubleStat {
|
||||||
|
public FallDamageMultiplier() {
|
||||||
|
super("FALL_DAMAGE_MULTIPLIER", Material.DAMAGED_ANVIL,
|
||||||
|
"Fall Damage Multiplier", new String[]{"Increases fall damage by a certain %.", "Player's default is set to 100%"});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double multiplyWhenDisplaying() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class Gravity extends DoubleStat {
|
||||||
|
public Gravity() {
|
||||||
|
super("GRAVITY", Material.STONE,
|
||||||
|
"Gravity", new String[]{"Increases force of gravity.", "Player's default is set to 1"});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double multiplyWhenDisplaying() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
}
|
@ -18,7 +18,7 @@ import java.util.ArrayList;
|
|||||||
* @deprecated Merge with other Hide- stats
|
* @deprecated Merge with other Hide- stats
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@VersionDependant(minor = 16, patch = 3)
|
@VersionDependant(version = {1, 16, 3})
|
||||||
public class HideDye extends BooleanStat {
|
public class HideDye extends BooleanStat {
|
||||||
public HideDye() {
|
public HideDye() {
|
||||||
super("HIDE_DYE", Material.CYAN_DYE, "Hide Dyed", new String[] { "Enable to hide the 'Dyed' tag from the item." }, new String[0],
|
super("HIDE_DYE", Material.CYAN_DYE, "Hide Dyed", new String[] { "Enable to hide the 'Dyed' tag from the item." }, new String[0],
|
||||||
|
@ -18,7 +18,7 @@ import java.util.ArrayList;
|
|||||||
* @deprecated Merge with other Hide- stats
|
* @deprecated Merge with other Hide- stats
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@VersionDependant(minor = 20)
|
@VersionDependant(version = {1, 20})
|
||||||
public class HideTrim extends BooleanStat {
|
public class HideTrim extends BooleanStat {
|
||||||
public HideTrim() {
|
public HideTrim() {
|
||||||
super("HIDE_ARMOR_TRIM", Material.LEATHER_CHESTPLATE, "Hide Armor Trim", new String[]{"Hides armor trim from item lore."}, new String[]{"armor", "skin"});
|
super("HIDE_ARMOR_TRIM", Material.LEATHER_CHESTPLATE, "Hide Armor Trim", new String[]{"Hides armor trim from item lore."}, new String[]{"armor", "skin"});
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class JumpStrength extends DoubleStat {
|
||||||
|
public JumpStrength() {
|
||||||
|
super("JUMP_STRENGTH", Material.SADDLE,
|
||||||
|
"Jump Strength", new String[]{"Additional jump height in blocks.", "Player's default is set to 1.25"});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 2})
|
||||||
|
public class MaxAbsorption extends DoubleStat {
|
||||||
|
public MaxAbsorption() {
|
||||||
|
super("MAX_ABSORPTION", Material.ENCHANTED_GOLDEN_APPLE,
|
||||||
|
"Max Absorption", new String[]{"This does not provide permanent absorption", "but rather increases your maximum amount", "of absorption hearts you can have at any time."});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class SafeFallDistance extends DoubleStat {
|
||||||
|
public SafeFallDistance() {
|
||||||
|
super("SAFE_FALL_DISTANCE", Material.RED_BED, "Safe Fall Distance", new String[]{"Additional blocks that you can fall", "down, without taking any fall damage.", "Player's default is set to 3"});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class Scale extends DoubleStat {
|
||||||
|
public Scale() {
|
||||||
|
super("SCALE", Material.STONE, "Scale", new String[]{"Increases player size.", "Player's default is 1"});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double multiplyWhenDisplaying() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
|
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||||
|
import net.Indyuce.mmoitems.util.VersionDependant;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
@VersionDependant(version = {1, 20, 5})
|
||||||
|
public class StepHeight extends DoubleStat {
|
||||||
|
public StepHeight() {
|
||||||
|
super("STEP_HEIGHT", Material.GOLDEN_BOOTS,
|
||||||
|
"Step Height", new String[]{"Additional number of blocks that you can climb", "without jumping when walking or sprinting.", "Player's default is 0.6 i.e just higher than one slab."});
|
||||||
|
}
|
||||||
|
}
|
@ -20,7 +20,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
/**
|
/**
|
||||||
* @author Jules
|
* @author Jules
|
||||||
*/
|
*/
|
||||||
@VersionDependant(minor = 20)
|
@VersionDependant(version = {1, 20})
|
||||||
public class TrimMaterialStat extends ChooseStat implements GemStoneStat {
|
public class TrimMaterialStat extends ChooseStat implements GemStoneStat {
|
||||||
public TrimMaterialStat() {
|
public TrimMaterialStat() {
|
||||||
super("TRIM_MATERIAL", Material.LEATHER_CHESTPLATE, "Trim Material", new String[]{"Material to trim your armor with."}, new String[]{"armor", "skin"});
|
super("TRIM_MATERIAL", Material.LEATHER_CHESTPLATE, "Trim Material", new String[]{"Material to trim your armor with."}, new String[]{"armor", "skin"});
|
||||||
|
@ -20,7 +20,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
/**
|
/**
|
||||||
* @author Jules
|
* @author Jules
|
||||||
*/
|
*/
|
||||||
@VersionDependant(minor = 20)
|
@VersionDependant(version = {1, 20})
|
||||||
public class TrimPatternStat extends ChooseStat implements GemStoneStat {
|
public class TrimPatternStat extends ChooseStat implements GemStoneStat {
|
||||||
public TrimPatternStat() {
|
public TrimPatternStat() {
|
||||||
super("TRIM_PATTERN", Material.LEATHER_CHESTPLATE, "Trim Pattern", new String[]{"Pattern of trimmed armor."}, new String[]{"armor", "skin"});
|
super("TRIM_PATTERN", Material.LEATHER_CHESTPLATE, "Trim Pattern", new String[]{"Pattern of trimmed armor."}, new String[]{"armor", "skin"});
|
||||||
|
@ -64,8 +64,7 @@ public abstract class ItemStat<R extends RandomStatData<S>, S extends StatData>
|
|||||||
// Version dependency
|
// Version dependency
|
||||||
if (getClass().isAnnotationPresent(VersionDependant.class)) {
|
if (getClass().isAnnotationPresent(VersionDependant.class)) {
|
||||||
final VersionDependant implVersion = getClass().getAnnotation(VersionDependant.class);
|
final VersionDependant implVersion = getClass().getAnnotation(VersionDependant.class);
|
||||||
if (MythicLib.plugin.getVersion().isBelowOrEqual(implVersion.major(), implVersion.minor(), implVersion.patch() - 1))
|
if (MythicLib.plugin.getVersion().isUnder(implVersion.version())) disable();
|
||||||
disable();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,9 +16,5 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface VersionDependant {
|
public @interface VersionDependant {
|
||||||
|
|
||||||
public int major() default 1;
|
public int[] version();
|
||||||
|
|
||||||
public int minor();
|
|
||||||
|
|
||||||
public int patch() default 0;
|
|
||||||
}
|
}
|
||||||
|
@ -1214,3 +1214,30 @@ SHADOWBOOTS:
|
|||||||
max-health: 8.0
|
max-health: 8.0
|
||||||
movement-speed: 0.01
|
movement-speed: 0.01
|
||||||
dye-color: 0 0 0
|
dye-color: 0 0 0
|
||||||
|
GARGOYLE_CHESTPLATE:
|
||||||
|
base:
|
||||||
|
material: IRON_CHESTPLATE
|
||||||
|
scale: 1.0
|
||||||
|
name: Gargoyle Chestplate
|
||||||
|
trim-material: netherite
|
||||||
|
trim-pattern: silence
|
||||||
|
hide-armor-trim: true
|
||||||
|
max-health: 10.0
|
||||||
|
armor: 6.0
|
||||||
|
movement-speed: -0.02
|
||||||
|
SHRINKING_BOOTS:
|
||||||
|
base:
|
||||||
|
material: GOLDEN_BOOTS
|
||||||
|
trim-material: redstone
|
||||||
|
trim-pattern: silence
|
||||||
|
hide-armor-trim: true
|
||||||
|
scale: -0.5
|
||||||
|
movement-speed: 0.02
|
||||||
|
required-class:
|
||||||
|
- Mage
|
||||||
|
skill-damage: -50.0
|
||||||
|
max-health: -10.0
|
||||||
|
name: Boots of Shrinking
|
||||||
|
lore:
|
||||||
|
- '&7&oMay this item help you get'
|
||||||
|
- '&7&othrough the narrowest paths...'
|
||||||
|
@ -191,3 +191,10 @@ ICE_GOLEM_HEART:
|
|||||||
defense: 100.0
|
defense: 100.0
|
||||||
handworn: true
|
handworn: true
|
||||||
fire-damage-reduction: 100.0
|
fire-damage-reduction: 100.0
|
||||||
|
SHRINKIFIKATOR:
|
||||||
|
base:
|
||||||
|
material: PRISMARINE_SHARD
|
||||||
|
name: Shrinkificator
|
||||||
|
scale: -0.5
|
||||||
|
max-health: -10.0
|
||||||
|
movement-speed: -0.03
|
||||||
|
@ -82,6 +82,16 @@ lore-format:
|
|||||||
- '#mana-regeneration#'
|
- '#mana-regeneration#'
|
||||||
- '#stamina-regeneration#'
|
- '#stamina-regeneration#'
|
||||||
- '#movement-speed#'
|
- '#movement-speed#'
|
||||||
|
- '#block-break-speed#'
|
||||||
|
- '#block-interaction-range#'
|
||||||
|
- '#entity-interaction-range#'
|
||||||
|
- '#fall-damage-multiplier#'
|
||||||
|
- '#gravity#'
|
||||||
|
- '#jump-strength#'
|
||||||
|
- '#max-absorption#'
|
||||||
|
- '#safe-fall-distance#'
|
||||||
|
- '#scale#'
|
||||||
|
- '#step-height#'
|
||||||
- '#lute-attack-effect#'
|
- '#lute-attack-effect#'
|
||||||
- '#two-handed#'
|
- '#two-handed#'
|
||||||
- '#handworn#'
|
- '#handworn#'
|
||||||
|
@ -5,7 +5,7 @@ critical-strike-chance: '&3 &7■ Crit Strike Chance: &f<plus>{value}%'
|
|||||||
critical-strike-power: '&3 &7■ Crit Strike Power: &f<plus>{value}%'
|
critical-strike-power: '&3 &7■ Crit Strike Power: &f<plus>{value}%'
|
||||||
skill-critical-strike-chance: '&3 &7■ Skill Crit Chance: &f<plus>{value}%'
|
skill-critical-strike-chance: '&3 &7■ Skill Crit Chance: &f<plus>{value}%'
|
||||||
skill-critical-strike-power: '&3 &7■ Skill Crit Power: &f<plus>{value}%'
|
skill-critical-strike-power: '&3 &7■ Skill Crit Power: &f<plus>{value}%'
|
||||||
range: '&3 &7■ Range: &f{value}'
|
range: '&3 &7■ Range: &f{value}' # Combat range for ranged weapons
|
||||||
mana-cost: '&3 &7■ Uses &9{value} Mana'
|
mana-cost: '&3 &7■ Uses &9{value} Mana'
|
||||||
stamina-cost: '&3 &7■ Uses &9{value} Stamina'
|
stamina-cost: '&3 &7■ Uses &9{value} Stamina'
|
||||||
arrow-velocity: '&3 &7■ Arrow Velocity: &f{value}'
|
arrow-velocity: '&3 &7■ Arrow Velocity: &f{value}'
|
||||||
@ -83,6 +83,18 @@ additional-experience-smelting: '&7■ Additional Smelting Experience: &f<plus>{
|
|||||||
additional-experience-smithing: '&7■ Additional Smithing Experience: &f<plus>{value}%'
|
additional-experience-smithing: '&7■ Additional Smithing Experience: &f<plus>{value}%'
|
||||||
additional-experience-woodcutting: '&7■ Additional Woodcutting Experience: &f<plus>{value}%'
|
additional-experience-woodcutting: '&7■ Additional Woodcutting Experience: &f<plus>{value}%'
|
||||||
|
|
||||||
|
# 1.20.2+ Attributes
|
||||||
|
block-break-speed: '&3 &7■ Mining Speed: &f<plus>{value}'
|
||||||
|
block-interaction-range: '&3 &7■ Range: &f<plus>{value}' # Range for interacting with blocks & mining.
|
||||||
|
entity-interaction-range: '&3 &7■ Combat Range: &f<plus>{value}'
|
||||||
|
fall-damage-multiplier: '&3 &7■ Fall Damage: &f<plus>{value}%'
|
||||||
|
gravity: '&3 &7■ Force of Gravity: &f<plus>{value}%'
|
||||||
|
jump-strength: '&3 &7■ Jump Strength: &f<plus>{value}'
|
||||||
|
max-absorption: '&3 &7■ Max Absorption: &f<plus>{value}'
|
||||||
|
safe-fall-distance: '&3 &7■ Safe Fall Distance: &f<plus>{value}'
|
||||||
|
scale: '&3 &7■ Size: &f<plus>{value}%'
|
||||||
|
step-height: '&3 &7■ Smooth Walking: &f<plus>{value}'
|
||||||
|
|
||||||
# Extra Options
|
# Extra Options
|
||||||
perm-effects: '&3 &7■ Permanent &f{effect}'
|
perm-effects: '&3 &7■ Permanent &f{effect}'
|
||||||
commands: '&3 &7■ Command: &f{format} &3 &7(&f{cooldown}&3 &7s)'
|
commands: '&3 &7■ Command: &f{format} &3 &7(&f{cooldown}&3 &7s)'
|
||||||
|
Loading…
Reference in New Issue
Block a user