diff --git a/src/main/java/net/Indyuce/mmoitems/MMOItems.java b/src/main/java/net/Indyuce/mmoitems/MMOItems.java index 9cfdff64..776848fd 100644 --- a/src/main/java/net/Indyuce/mmoitems/MMOItems.java +++ b/src/main/java/net/Indyuce/mmoitems/MMOItems.java @@ -58,7 +58,6 @@ import net.Indyuce.mmoitems.manager.AbilityManager; import net.Indyuce.mmoitems.manager.BlockManager; import net.Indyuce.mmoitems.manager.ConfigManager; import net.Indyuce.mmoitems.manager.CraftingManager; -import net.Indyuce.mmoitems.manager.StandaloneDamageManager; import net.Indyuce.mmoitems.manager.DropTableManager; import net.Indyuce.mmoitems.manager.EntityManager; import net.Indyuce.mmoitems.manager.ItemManager; @@ -71,19 +70,16 @@ import net.Indyuce.mmoitems.manager.TypeManager; import net.Indyuce.mmoitems.manager.UpdaterManager; import net.Indyuce.mmoitems.manager.UpgradeManager; import net.Indyuce.mmoitems.manager.WorldGenManager; -import net.Indyuce.mmoitems.version.ServerVersion; -import net.Indyuce.mmoitems.version.SpigotPlugin; -import net.Indyuce.mmoitems.version.nms.NMSHandler; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.SpigotPlugin; public class MMOItems extends JavaPlugin { public static MMOItems plugin; - private ServerVersion version; private RecipeManager recipeManager; private ConfigManager configManager; private StatManager statManager; private EntityManager entityManager; - private StandaloneDamageManager damageManager; private DropTableManager dropTableManager; private UpdaterManager itemUpdaterManager; private TypeManager typeManager; @@ -102,23 +98,12 @@ public class MMOItems extends JavaPlugin { private HologramSupport hologramSupport; private FlagPlugin flagPlugin = new DefaultFlags(); private PlayerInventory inventory = new DefaultPlayerInventory(); - private NMSHandler nms; public void onLoad() { plugin = this; - version = new ServerVersion(Bukkit.getServer().getClass()); try { - getLogger().log(Level.INFO, "Detected Bukkit Version: " + version.toString()); - nms = (NMSHandler) Class.forName("net.Indyuce.mmoitems.version.nms.NMSHandler_" + version.toString().substring(1)).newInstance(); - } catch (Exception e) { - getLogger().log(Level.INFO, "Your server version is not compatible."); - Bukkit.getPluginManager().disablePlugin(this); - return; - } - - try { - if (getServer().getPluginManager().getPlugin("WorldGuard") != null && version.isStrictlyHigher(1, 12)) { + if (getServer().getPluginManager().getPlugin("WorldGuard") != null && MMOLib.plugin.getVersion().isStrictlyHigher(1, 12)) { flagPlugin = new WorldGuardFlags(); getLogger().log(Level.INFO, "Hooked onto WorldGuard"); } @@ -135,15 +120,6 @@ public class MMOItems extends JavaPlugin { } public void onEnable() { - - /* - * server version compatibility checks are ran when the plugin loads. if - * the nms object is null, it means the version is not compatible - * therefore MI should not enable - */ - if (nms == null) - return; - new SpigotPlugin(39267, this).checkForUpdate(); new MMOItemsMetrics(); @@ -159,7 +135,7 @@ public class MMOItems extends JavaPlugin { tierManager = new TierManager(); setManager = new SetManager(); upgradeManager = new UpgradeManager(); - if (version.isStrictlyHigher(1, 12)) { + if (MMOLib.plugin.getVersion().isStrictlyHigher(1, 12)) { worldGenManager = new WorldGenManager(); blockManager = new BlockManager(); } @@ -168,7 +144,6 @@ public class MMOItems extends JavaPlugin { stationRecipeManager.reload(); Bukkit.getPluginManager().registerEvents(entityManager = new EntityManager(), this); - Bukkit.getPluginManager().registerEvents(damageManager = new StandaloneDamageManager(), this); Bukkit.getPluginManager().registerEvents(dropTableManager = new DropTableManager(), this); Bukkit.getPluginManager().registerEvents(itemUpdaterManager = new UpdaterManager(), this); Bukkit.getPluginManager().registerEvents(new ItemUse(), this); @@ -179,7 +154,7 @@ public class MMOItems extends JavaPlugin { Bukkit.getPluginManager().registerEvents(new DisableInteractions(), this); Bukkit.getPluginManager().registerEvents(new GuiListener(), this); Bukkit.getPluginManager().registerEvents(new ElementListener(), this); - if (version.isStrictlyHigher(1, 12)) { + if (MMOLib.plugin.getVersion().isStrictlyHigher(1, 12)) { Bukkit.getPluginManager().registerEvents(new CustomBlockListener(), this); Bukkit.getPluginManager().registerEvents(new Listener_v1_13(), this); } @@ -325,10 +300,6 @@ public class MMOItems extends JavaPlugin { return setManager; } - public NMSHandler getNMS() { - return nms; - } - public FlagPlugin getFlags() { return flagPlugin; } @@ -357,10 +328,6 @@ public class MMOItems extends JavaPlugin { inventory = value; } - public ServerVersion getVersion() { - return version; - } - public StatManager getStats() { return statManager; } @@ -373,10 +340,6 @@ public class MMOItems extends JavaPlugin { return entityManager; } - public StandaloneDamageManager getDamage() { - return damageManager; - } - public DropTableManager getDropTables() { return dropTableManager; } diff --git a/src/main/java/net/Indyuce/mmoitems/MMOUtils.java b/src/main/java/net/Indyuce/mmoitems/MMOUtils.java index 72388867..3b161051 100644 --- a/src/main/java/net/Indyuce/mmoitems/MMOUtils.java +++ b/src/main/java/net/Indyuce/mmoitems/MMOUtils.java @@ -29,6 +29,7 @@ import com.mojang.authlib.properties.Property; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; public class MMOUtils { private static final Random random = new Random(); @@ -112,7 +113,7 @@ public class MMOUtils { for (ItemStack item : new ItemStack[] { player.getInventory().getItemInMainHand(), player.getInventory().getItemInOffHand() }) { if (item.getType() != Material.AIR) normal++; - if (MMOItems.plugin.getNMS().getNBTItem(item).getBoolean("MMOITEMS_TWO_HANDED")) + if (MMOLib.plugin.getNMS().getNBTItem(item).getBoolean("MMOITEMS_TWO_HANDED")) twoHanded++; } return twoHanded > 0 && normal > 1; @@ -193,7 +194,7 @@ public class MMOUtils { if (target instanceof Player && (!MMOItems.plugin.getLanguage().abilityPlayerDamage || !MMOItems.plugin.getFlags().isPvpAllowed(target.getLocation()))) return false; - return loc == null ? true : MMOItems.plugin.getNMS().isInBoundingBox(target, loc); + return loc == null ? true : MMOLib.plugin.getNMS().isInBoundingBox(target, loc); } public static String intToRoman(int input) { diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Black_Hole.java b/src/main/java/net/Indyuce/mmoitems/ability/Black_Hole.java index d634497c..584bb60b 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Black_Hole.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Black_Hole.java @@ -10,10 +10,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Black_Hole extends Ability { public Black_Hole() { @@ -27,7 +27,7 @@ public class Black_Hole extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Blink.java b/src/main/java/net/Indyuce/mmoitems/ability/Blink.java index 5b90c53c..1ca0e34e 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Blink.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Blink.java @@ -8,10 +8,10 @@ import org.bukkit.Particle; import org.bukkit.entity.LivingEntity; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Blink extends Ability { public Blink() { @@ -24,7 +24,7 @@ public class Blink extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().getWorld().spawnParticle(Particle.EXPLOSION_LARGE, stats.getPlayer().getLocation().add(0, 1, 0), 0); stats.getPlayer().getWorld().spawnParticle(Particle.SPELL_INSTANT, stats.getPlayer().getLocation().add(0, 1, 0), 32, 0, 0, 0, .1); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 1, 1); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Blizzard.java b/src/main/java/net/Indyuce/mmoitems/ability/Blizzard.java index 5b43d7d0..b09a39a8 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Blizzard.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Blizzard.java @@ -12,8 +12,8 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class Blizzard extends Ability implements Listener { @@ -30,7 +30,7 @@ public class Blizzard extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 10; double force = data.getModifier("force"); double inaccuracy = data.getModifier("inaccuracy"); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Bouncy_Fireball.java b/src/main/java/net/Indyuce/mmoitems/ability/Bouncy_Fireball.java index f39bf19a..cb1588b1 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Bouncy_Fireball.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Bouncy_Fireball.java @@ -11,10 +11,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Bouncy_Fireball extends Ability { public Bouncy_Fireball() { @@ -30,7 +30,7 @@ public class Bouncy_Fireball extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_SNOWBALL_THROW, 2, 0); new BukkitRunnable() { int j = 0; @@ -74,7 +74,7 @@ public class Bouncy_Fireball extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (entity.getLocation().distanceSquared(loc) < radius * radius) if (MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).setFireTicks((int) (ignite * 20)); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Bunny_Mode.java b/src/main/java/net/Indyuce/mmoitems/ability/Bunny_Mode.java index 739b42e1..30fbe70f 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Bunny_Mode.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Bunny_Mode.java @@ -15,10 +15,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Bunny_Mode extends Ability implements Listener { private Map fallDamage = new HashMap(); @@ -35,7 +35,7 @@ public class Bunny_Mode extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 20; double y = data.getModifier("jump-force"); double xz = data.getModifier("speed"); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Burning_Hands.java b/src/main/java/net/Indyuce/mmoitems/ability/Burning_Hands.java index 0e60ac8b..a8acb14a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Burning_Hands.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Burning_Hands.java @@ -12,10 +12,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Burning_Hands extends Ability implements Listener { public Burning_Hands() { @@ -29,7 +29,7 @@ public class Burning_Hands extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 10; double damage = data.getModifier("damage") / 2; @@ -58,7 +58,7 @@ public class Burning_Hands extends Ability implements Listener { if (entity.getLocation().distanceSquared(loc) < 60) if (stats.getPlayer().getEyeLocation().getDirection().angle(entity.getLocation().toVector().subtract(stats.getPlayer().getLocation().toVector())) < Math.PI / 6) if (MMOUtils.canDamage(stats.getPlayer(), entity)) - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); } }.runTaskTimer(MMOItems.plugin, 0, 2); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Chicken_Wraith.java b/src/main/java/net/Indyuce/mmoitems/ability/Chicken_Wraith.java index 74a522e1..e83bacdd 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Chicken_Wraith.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Chicken_Wraith.java @@ -11,8 +11,8 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class Chicken_Wraith extends Ability implements Listener { @@ -29,7 +29,7 @@ public class Chicken_Wraith extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 10; double force = data.getModifier("force"); double inaccuracy = data.getModifier("inaccuracy"); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Circular_Slash.java b/src/main/java/net/Indyuce/mmoitems/ability/Circular_Slash.java index cb33ee37..a2f0ee79 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Circular_Slash.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Circular_Slash.java @@ -11,10 +11,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Circular_Slash extends Ability { public Circular_Slash() { @@ -29,7 +29,7 @@ public class Circular_Slash extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); double radius = data.getModifier("radius"); double knockback = data.getModifier("knockback"); @@ -38,7 +38,7 @@ public class Circular_Slash extends Ability { stats.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 2, 254)); for (Entity entity : stats.getPlayer().getNearbyEntities(radius, radius, radius)) { if (MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); Vector v1 = entity.getLocation().toVector(); Vector v2 = stats.getPlayer().getLocation().toVector(); double y = .5; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Contamination.java b/src/main/java/net/Indyuce/mmoitems/ability/Contamination.java index 6ff22a64..aabcdd98 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Contamination.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Contamination.java @@ -10,11 +10,12 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Contamination extends Ability { public Contamination() { @@ -28,7 +29,7 @@ public class Contamination extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); @@ -48,7 +49,7 @@ public class Contamination extends Ability { if (j >= duration) cancel(); - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(ti / 3) * 5, 0, Math.sin(ti / 3) * 5), Color.PURPLE); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(ti / 3) * 5, 0, Math.sin(ti / 3) * 5), Color.PURPLE); for (int j = 0; j < 3; j++) { ti += Math.PI / 32; double r = Math.sin(ti / 2) * 4; @@ -60,7 +61,7 @@ public class Contamination extends Ability { loc.getWorld().playSound(loc, VersionSound.ENTITY_ENDERMAN_HURT.toSound(), 2, 1); for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) <= 25) - MMOItems.plugin.getDamage().damage(stats.getPlayer(), (LivingEntity) entity, new AttackResult(dps, DamageType.SKILL, DamageType.MAGICAL).applySkillEffects(stats, (LivingEntity) entity), false); + MMOLib.plugin.getDamage().damage(stats.getPlayer(), (LivingEntity) entity, new ItemAttackResult(dps, DamageType.SKILL, DamageType.MAGICAL).applySkillEffects(stats, (LivingEntity) entity), false); } } }.runTaskTimer(MMOItems.plugin, 0, 1); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Corrupt.java b/src/main/java/net/Indyuce/mmoitems/ability/Corrupt.java index 8baeecd4..92b19a2a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Corrupt.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Corrupt.java @@ -8,14 +8,14 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Corrupt extends Ability { public Corrupt() { @@ -30,7 +30,7 @@ public class Corrupt extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); @@ -48,12 +48,12 @@ public class Corrupt extends Ability { Location loc1 = loc.clone().add(Math.cos(j) * radius, 1, Math.sin(j) * radius); double y_max = .5 + random.nextDouble(); for (double y = 0; y < y_max; y += .1) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc1.clone().add(0, y, 0), Color.PURPLE); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc1.clone().add(0, y, 0), Color.PURPLE); } for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) <= radius * radius) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).removePotionEffect(PotionEffectType.WITHER); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, (int) (duration * 20), (int) amplifier)); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Corrupted_Fangs.java b/src/main/java/net/Indyuce/mmoitems/ability/Corrupted_Fangs.java index 0db71c2e..e1253084 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Corrupted_Fangs.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Corrupted_Fangs.java @@ -14,10 +14,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Corrupted_Fangs extends Ability implements Listener { public Corrupted_Fangs() { @@ -30,7 +30,7 @@ public class Corrupted_Fangs extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage1 = data.getModifier("damage"); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_WITHER_SHOOT, 2, 2); @@ -63,7 +63,7 @@ public class Corrupted_Fangs extends Ability implements Listener { Object[] data = MMOItems.plugin.getEntities().getEntityData(damager); TemporaryStats stats = (TemporaryStats) data[0]; if (MMOUtils.canDamage(stats.getPlayer(), event.getEntity())) - new AttackResult((double) data[1], DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) event.getEntity()); + new ItemAttackResult((double) data[1], DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) event.getEntity()); } } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Cursed_Beam.java b/src/main/java/net/Indyuce/mmoitems/ability/Cursed_Beam.java index 0db7fece..8b5e0c2a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Cursed_Beam.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Cursed_Beam.java @@ -15,11 +15,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Cursed_Beam extends Ability { public Cursed_Beam() { @@ -33,7 +33,7 @@ public class Cursed_Beam extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration"); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_WITHER_SHOOT, 2, 2); @@ -66,7 +66,7 @@ public class Cursed_Beam extends Ability { for (Entity entity : entities) if (MMOUtils.canDamage(stats.getPlayer(), entity) && loc.distanceSquared(entity.getLocation().add(0, 1, 0)) < 9) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, (int) (duration * 20), 0)); } cancel(); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Earthquake.java b/src/main/java/net/Indyuce/mmoitems/ability/Earthquake.java index f4c5d649..f0633033 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Earthquake.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Earthquake.java @@ -16,10 +16,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Earthquake extends Ability { public Earthquake() { @@ -34,7 +34,7 @@ public class Earthquake extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { if (!stats.getPlayer().isOnGround()) { result.setSuccessful(false); return; @@ -62,7 +62,7 @@ public class Earthquake extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && loc.distanceSquared(entity.getLocation()) < 2 && !hit.contains(entity.getEntityId())) { hit.add(entity.getEntityId()); - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (slowDuration * 20), (int) slowAmplifier)); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Explosive_Turkey.java b/src/main/java/net/Indyuce/mmoitems/ability/Explosive_Turkey.java index 5d83a525..6851da57 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Explosive_Turkey.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Explosive_Turkey.java @@ -16,10 +16,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Explosive_Turkey extends Ability implements Listener { public Explosive_Turkey() { @@ -37,7 +37,7 @@ public class Explosive_Turkey extends Ability implements Listener { Chicken chicken = null; @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 10; double damage = data.getModifier("damage"); double radiusSquared = Math.pow(data.getModifier("radius"), 2); @@ -88,7 +88,7 @@ public class Explosive_Turkey extends Ability implements Listener { chicken.getWorld().playSound(chicken.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 2, 1.5f); for (Entity entity : MMOUtils.getNearbyChunkEntities(chicken.getLocation())) if (!entity.isDead() && entity.getLocation().distanceSquared(chicken.getLocation()) < radiusSquared && MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); entity.setVelocity(entity.getLocation().toVector().subtract(chicken.getLocation().toVector()).multiply(.1 * knockback).setY(.4 * knockback)); } cancel(); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Fire_Meteor.java b/src/main/java/net/Indyuce/mmoitems/ability/Fire_Meteor.java index 5a6945e0..5b4640d7 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Fire_Meteor.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Fire_Meteor.java @@ -12,11 +12,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Fire_Meteor extends Ability { public Fire_Meteor() { @@ -31,7 +31,7 @@ public class Fire_Meteor extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 3, 1); new BukkitRunnable() { double ti = 0; @@ -57,7 +57,7 @@ public class Fire_Meteor extends Ability { double radius = data.getModifier("radius"); for (Entity entity : loc.getWorld().getEntitiesByClass(LivingEntity.class)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) < radius * radius) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); entity.setVelocity(entity.getLocation().toVector().subtract(loc.toVector()).multiply(.1 * knockback).setY(.4 * knockback)); } cancel(); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Firebolt.java b/src/main/java/net/Indyuce/mmoitems/ability/Firebolt.java index 79390dcd..700772a6 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Firebolt.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Firebolt.java @@ -13,11 +13,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Firebolt extends Ability { public Firebolt() { @@ -31,7 +31,7 @@ public class Firebolt extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 1, 1); new BukkitRunnable() { Vector vec = getTargetDirection(stats.getPlayer(), target).multiply(.8); @@ -59,7 +59,7 @@ public class Firebolt extends Ability { loc.getWorld().spawnParticle(Particle.LAVA, loc, 8, 0, 0, 0, 0); loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0); loc.getWorld().playSound(loc, Sound.ENTITY_GENERIC_EXPLODE, 3, 1); - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) target); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) target); target.setFireTicks((int) data.getModifier("ignite") * 20); cancel(); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Firefly.java b/src/main/java/net/Indyuce/mmoitems/ability/Firefly.java index 943d2ccb..4165ec0c 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Firefly.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Firefly.java @@ -12,11 +12,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Firefly extends Ability { public Firefly() { @@ -31,7 +31,7 @@ public class Firefly extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 20; new BukkitRunnable() { @@ -62,7 +62,7 @@ public class Firefly extends Ability { stats.getPlayer().getWorld().spawnParticle(Particle.FLAME, stats.getPlayer().getLocation().add(0, 1, 0), 24, 0, 0, 0, .3); entity.setVelocity(stats.getPlayer().getVelocity().setY(0.3).multiply(1.7 * knockback)); stats.getPlayer().setVelocity(stats.getPlayer().getEyeLocation().getDirection().multiply(-3).setY(.5)); - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Freezing_Curse.java b/src/main/java/net/Indyuce/mmoitems/ability/Freezing_Curse.java index 5a5d037e..beb6136e 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Freezing_Curse.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Freezing_Curse.java @@ -12,11 +12,11 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Freezing_Curse extends Ability { public Freezing_Curse() { @@ -32,7 +32,7 @@ public class Freezing_Curse extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); @@ -65,7 +65,7 @@ public class Freezing_Curse extends Ability { double damage = data.getModifier("damage"); for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (entity.getLocation().distanceSquared(loc) < radius * radius && MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).removePotionEffect(PotionEffectType.SLOW); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (duration * 20), (int) amplifier)); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Frog_Mode.java b/src/main/java/net/Indyuce/mmoitems/ability/Frog_Mode.java index 841c9775..6fdd6d42 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Frog_Mode.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Frog_Mode.java @@ -8,10 +8,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Frog_Mode extends Ability implements Listener { public Frog_Mode() { @@ -26,7 +26,7 @@ public class Frog_Mode extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 20; double y = data.getModifier("jump-force"); double xz = data.getModifier("speed"); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Frozen_Aura.java b/src/main/java/net/Indyuce/mmoitems/ability/Frozen_Aura.java index 7351abe8..cbbe633d 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Frozen_Aura.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Frozen_Aura.java @@ -12,8 +12,8 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class Frozen_Aura extends Ability implements Listener { @@ -29,7 +29,7 @@ public class Frozen_Aura extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 20; double radiusSquared = Math.pow(data.getModifier("radius"), 2); double amplifier = data.getModifier("amplifier") - 1; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Grand_Heal.java b/src/main/java/net/Indyuce/mmoitems/ability/Grand_Heal.java index 4ee787fe..eed468cd 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Grand_Heal.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Grand_Heal.java @@ -8,8 +8,8 @@ import org.bukkit.entity.Player; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class Grand_Heal extends Ability { @@ -24,7 +24,7 @@ public class Grand_Heal extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double heal = data.getModifier("heal"); double radius = data.getModifier("radius"); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Heal.java b/src/main/java/net/Indyuce/mmoitems/ability/Heal.java index badcd7cd..e514d45f 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Heal.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Heal.java @@ -6,8 +6,8 @@ import org.bukkit.entity.LivingEntity; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class Heal extends Ability { @@ -21,7 +21,7 @@ public class Heal extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1, 2); stats.getPlayer().getWorld().spawnParticle(Particle.HEART, stats.getPlayer().getLocation().add(0, .75, 0), 16, 1, 1, 1, 0); stats.getPlayer().getWorld().spawnParticle(Particle.VILLAGER_HAPPY, stats.getPlayer().getLocation().add(0, .75, 0), 16, 1, 1, 1, 0); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Heavy_Charge.java b/src/main/java/net/Indyuce/mmoitems/ability/Heavy_Charge.java index 7a1c3d0a..d44f3737 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Heavy_Charge.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Heavy_Charge.java @@ -10,10 +10,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Heavy_Charge extends Ability { public Heavy_Charge() { @@ -27,7 +27,7 @@ public class Heavy_Charge extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double knockback = data.getModifier("knockback"); new BukkitRunnable() { @@ -50,7 +50,7 @@ public class Heavy_Charge extends Ability { stats.getPlayer().getWorld().spawnParticle(Particle.EXPLOSION_LARGE, target.getLocation().add(0, 1, 0), 0); target.setVelocity(stats.getPlayer().getVelocity().setY(0.3).multiply(1.7 * knockback)); stats.getPlayer().setVelocity(stats.getPlayer().getVelocity().setX(0).setY(0).setZ(0)); - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) target); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) target); cancel(); break; } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Hoearthquake.java b/src/main/java/net/Indyuce/mmoitems/ability/Hoearthquake.java index e6e565c7..da131f06 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Hoearthquake.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Hoearthquake.java @@ -11,9 +11,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Hoearthquake extends Ability { public Hoearthquake() { @@ -23,12 +24,12 @@ public class Hoearthquake extends Ability { addModifier("mana", 0); addModifier("stamina", 0); - if (!MMOItems.plugin.getVersion().isBelowOrEqual(1, 12)) + if (!MMOLib.plugin.getVersion().isBelowOrEqual(1, 12)) disable(); } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { if (!stats.getPlayer().isOnGround()) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Holy_Missile.java b/src/main/java/net/Indyuce/mmoitems/ability/Holy_Missile.java index a4b13be8..cd1466eb 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Holy_Missile.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Holy_Missile.java @@ -13,11 +13,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Holy_Missile extends Ability { public Holy_Missile() { @@ -31,7 +31,7 @@ public class Holy_Missile extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 10; double damage = data.getModifier("damage"); @@ -63,7 +63,7 @@ public class Holy_Missile extends Ability { loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 1); loc.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, loc, 32, 0, 0, 0, .2); loc.getWorld().playSound(loc, Sound.ENTITY_GENERIC_EXPLODE, 2, 1); - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Ice_Crystal.java b/src/main/java/net/Indyuce/mmoitems/ability/Ice_Crystal.java index 1c3ac273..45bee43a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Ice_Crystal.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Ice_Crystal.java @@ -16,11 +16,12 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Ice_Crystal extends Ability { public Ice_Crystal() { @@ -35,7 +36,7 @@ public class Ice_Crystal extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 1, 1); new BukkitRunnable() { Vector vec = getTargetDirection(stats.getPlayer(), target).multiply(.45); @@ -63,7 +64,7 @@ public class Ice_Crystal extends Ability { for (double a = 0; a < Math.PI * 2; a += Math.PI / 2) { Vector vec = MMOUtils.rotateFunc(new Vector(r * Math.cos(a + (double) ti / 10), r * Math.sin(a + (double) ti / 10), 0), loc); loc.add(vec); - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc, .7f, Color.WHITE); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc, .7f, Color.WHITE); loc.add(vec.multiply(-1)); } @@ -72,7 +73,7 @@ public class Ice_Crystal extends Ability { loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0); loc.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, loc, 48, 0, 0, 0, .2); loc.getWorld().playSound(loc, Sound.ENTITY_GENERIC_EXPLODE, 2, 1); - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (data.getModifier("duration") * 20), (int) data.getModifier("amplifier"))); cancel(); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Item_Bomb.java b/src/main/java/net/Indyuce/mmoitems/ability/Item_Bomb.java index 08cc16fb..893598f8 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Item_Bomb.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Item_Bomb.java @@ -14,12 +14,12 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.api.util.NoInteractItemEntity; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Item_Bomb extends Ability implements Listener { public Item_Bomb() { @@ -35,7 +35,7 @@ public class Item_Bomb extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { ItemStack itemStack = stats.getPlayer().getInventory().getItemInMainHand().clone(); if (itemStack == null || itemStack.getType() == Material.AIR) { result.setSuccessful(false); @@ -58,7 +58,7 @@ public class Item_Bomb extends Ability implements Listener { for (Entity entity : item.getEntity().getNearbyEntities(radius, radius, radius)) if (MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).removePotionEffect(PotionEffectType.SLOW); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (slowDuration * 20), (int) slowAmplifier)); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Item_Throw.java b/src/main/java/net/Indyuce/mmoitems/ability/Item_Throw.java index b7b014d7..f56cf258 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Item_Throw.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Item_Throw.java @@ -12,11 +12,11 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.api.util.NoInteractItemEntity; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Item_Throw extends Ability implements Listener { public Item_Throw() { @@ -30,7 +30,7 @@ public class Item_Throw extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { ItemStack itemStack = stats.getPlayer().getInventory().getItemInMainHand().clone(); if (itemStack == null || itemStack.getType() == Material.AIR) { result.setSuccessful(false); @@ -53,7 +53,7 @@ public class Item_Throw extends Ability implements Listener { item.getEntity().getWorld().spawnParticle(Particle.CRIT, item.getEntity().getLocation(), 0); for (Entity target : item.getEntity().getNearbyEntities(1, 1, 1)) if (MMOUtils.canDamage(stats.getPlayer(), target)) { - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.PHYSICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) target); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.PHYSICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) target); item.close(); cancel(); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Leap.java b/src/main/java/net/Indyuce/mmoitems/ability/Leap.java index 265c8c78..7f46bd8c 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Leap.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Leap.java @@ -7,10 +7,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Leap extends Ability { public Leap() { @@ -23,7 +23,7 @@ public class Leap extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { if (!stats.getPlayer().isOnGround()) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Life_Ender.java b/src/main/java/net/Indyuce/mmoitems/ability/Life_Ender.java index e461c0e9..0de82e14 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Life_Ender.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Life_Ender.java @@ -11,11 +11,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Life_Ender extends Ability { public Life_Ender() { @@ -30,7 +30,7 @@ public class Life_Ender extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); double knockback = data.getModifier("knockback"); double radius = data.getModifier("radius"); @@ -69,7 +69,7 @@ public class Life_Ender extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(source)) if (entity.getLocation().distanceSquared(source) < radius * radius && MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); entity.setVelocity(entity.getLocation().subtract(source).toVector().setY(.75).normalize().multiply(knockback)); } cancel(); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Light_Dash.java b/src/main/java/net/Indyuce/mmoitems/ability/Light_Dash.java index 4dac957e..5b6a5fdd 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Light_Dash.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Light_Dash.java @@ -12,11 +12,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Light_Dash extends Ability { public Light_Dash() { @@ -30,7 +30,7 @@ public class Light_Dash extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); double length = data.getModifier("length"); @@ -49,7 +49,7 @@ public class Light_Dash extends Ability { for (Entity entity : stats.getPlayer().getNearbyEntities(1, 1, 1)) if (!hit.contains(entity.getEntityId()) && MMOUtils.canDamage(stats.getPlayer(), entity)) { hit.add(entity.getEntityId()); - new AttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); } } }.runTaskTimer(MMOItems.plugin, 0, 2); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Lightning_Beam.java b/src/main/java/net/Indyuce/mmoitems/ability/Lightning_Beam.java index 7af3fcad..cc4bca8a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Lightning_Beam.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Lightning_Beam.java @@ -8,11 +8,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Lightning_Beam extends Ability { public Lightning_Beam() { @@ -26,7 +26,7 @@ public class Lightning_Beam extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); @@ -40,7 +40,7 @@ public class Lightning_Beam extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) <= radius * radius) - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 1, 0); loc.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, loc, 64, 0, 0, 0, .2); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Magical_Path.java b/src/main/java/net/Indyuce/mmoitems/ability/Magical_Path.java index 44806a08..da5763e5 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Magical_Path.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Magical_Path.java @@ -15,10 +15,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Magical_Path extends Ability { public Magical_Path() { @@ -32,7 +32,7 @@ public class Magical_Path extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { stats.getPlayer().setAllowFlight(true); stats.getPlayer().setFlying(true); stats.getPlayer().setVelocity(stats.getPlayer().getVelocity().setY(.5)); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Magical_Shield.java b/src/main/java/net/Indyuce/mmoitems/ability/Magical_Shield.java index 9ac1ccd5..b29e9d1a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Magical_Shield.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Magical_Shield.java @@ -11,10 +11,11 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.VersionSound; public class Magical_Shield extends Ability { public static Map magicalShield = new HashMap<>(); @@ -31,7 +32,7 @@ public class Magical_Shield extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { if (!stats.getPlayer().isOnGround()) { result.setSuccessful(false); return; @@ -51,7 +52,7 @@ public class Magical_Shield extends Ability { ti++; for (double j = 0; j < Math.PI / 2; j += Math.PI / (28 + random.nextInt(5))) for (double i = 0; i < Math.PI * 2; i += Math.PI / (14 + random.nextInt(5))) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(2.5 * Math.cos(i + j) * Math.sin(j), 2.5 * Math.cos(j), 2.5 * Math.sin(i + j) * Math.sin(j)), Color.FUCHSIA); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(2.5 * Math.cos(i + j) * Math.sin(j), 2.5 * Math.cos(j), 2.5 * Math.sin(i + j) * Math.sin(j)), Color.FUCHSIA); if (ti > duration * 20 / 3) { magicalShield.remove(loc); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Magma_Fissure.java b/src/main/java/net/Indyuce/mmoitems/ability/Magma_Fissure.java index 401eda0c..8a5a4069 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Magma_Fissure.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Magma_Fissure.java @@ -8,12 +8,14 @@ import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Magma_Fissure extends Ability { public Magma_Fissure() { @@ -27,8 +29,8 @@ public class Magma_Fissure extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -56,7 +58,7 @@ public class Magma_Fissure extends Ability { if (target.getLocation().distanceSquared(loc) < 1) { loc.getWorld().playSound(loc, Sound.ENTITY_BLAZE_HURT, 2, 1); target.setFireTicks((int) (target.getFireTicks() + data.getModifier("ignite") * 20)); - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); cancel(); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Overload.java b/src/main/java/net/Indyuce/mmoitems/ability/Overload.java index be7382aa..6d687255 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Overload.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Overload.java @@ -10,11 +10,11 @@ import org.bukkit.potion.PotionEffectType; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Overload extends Ability { public Overload() { @@ -28,7 +28,7 @@ public class Overload extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); double radius = data.getModifier("radius"); @@ -38,7 +38,7 @@ public class Overload extends Ability { for (Entity entity : stats.getPlayer().getNearbyEntities(radius, radius, radius)) if (MMOUtils.canDamage(stats.getPlayer(), entity)) - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); double step = 12 + (radius * 2.5); for (double j = 0; j < Math.PI * 2; j += Math.PI / step) { diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Present_Throw.java b/src/main/java/net/Indyuce/mmoitems/ability/Present_Throw.java index f56c6fbc..f8a7de43 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Present_Throw.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Present_Throw.java @@ -19,13 +19,13 @@ import com.mojang.authlib.properties.Property; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.api.util.NoInteractItemEntity; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionSound; public class Present_Throw extends Ability { private ItemStack present = VersionMaterial.PLAYER_HEAD.toItem(); @@ -57,7 +57,7 @@ public class Present_Throw extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); double radiusSquared = Math.pow(data.getModifier("radius"), 2); @@ -89,7 +89,7 @@ public class Present_Throw extends Ability { item.getEntity().getWorld().playSound(item.getEntity().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_TWINKLE.toSound(), 2, 1.5f); for (Entity entity : MMOUtils.getNearbyChunkEntities(item.getEntity().getLocation())) if (entity.getLocation().distanceSquared(item.getEntity().getLocation()) < radiusSquared && MMOUtils.canDamage(stats.getPlayer(), entity)) - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); item.close(); cancel(); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Regen_Ally.java b/src/main/java/net/Indyuce/mmoitems/ability/Regen_Ally.java index 251905c7..00fc9319 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Regen_Ally.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Regen_Ally.java @@ -1,3 +1,4 @@ + package net.Indyuce.mmoitems.ability; import org.bukkit.Particle; @@ -8,9 +9,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Regen_Ally extends Ability { public Regen_Ally() { @@ -24,8 +26,8 @@ public class Regen_Ally extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null || !(target instanceof Player)) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Shadow_Veil.java b/src/main/java/net/Indyuce/mmoitems/ability/Shadow_Veil.java index 2844af24..395d5e21 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Shadow_Veil.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Shadow_Veil.java @@ -18,10 +18,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Shadow_Veil extends Ability implements Listener { public Shadow_Veil() { @@ -36,7 +36,7 @@ public class Shadow_Veil extends Ability implements Listener { public static List shadowVeil = new ArrayList(); @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration"); shadowVeil.add(stats.getPlayer().getUniqueId()); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Shockwave.java b/src/main/java/net/Indyuce/mmoitems/ability/Shockwave.java index 03f8ad1c..384d4268 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Shockwave.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Shockwave.java @@ -16,9 +16,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Shockwave extends Ability { public Shockwave() { @@ -32,7 +33,7 @@ public class Shockwave extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double knockUp = data.getModifier("knock-up"); double length = data.getModifier("length"); @@ -50,7 +51,7 @@ public class Shockwave extends Ability { loc.add(vec); loc.getWorld().playSound(loc, Sound.BLOCK_GRAVEL_BREAK, 1, 2); - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.BLOCK_CRACK, loc, 12, .5, 0, .5, 0, Material.DIRT); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.BLOCK_CRACK, loc, 12, .5, 0, .5, 0, Material.DIRT); for (Entity ent : MMOUtils.getNearbyChunkEntities(loc)) if (ent.getLocation().distance(loc) < 1.1 && ent instanceof LivingEntity && !ent.equals(stats.getPlayer()) && !hit.contains(ent.getEntityId())) { diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Shulker_Missile.java b/src/main/java/net/Indyuce/mmoitems/ability/Shulker_Missile.java index d4fcb049..2e67504a 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Shulker_Missile.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Shulker_Missile.java @@ -18,11 +18,12 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class Shulker_Missile extends Ability implements Listener { public Shulker_Missile() { @@ -37,7 +38,7 @@ public class Shulker_Missile extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration"); new BukkitRunnable() { @@ -53,7 +54,7 @@ public class Shulker_Missile extends Ability implements Listener { stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_WITHER_SHOOT, 2, 2); ShulkerBullet shulkerBullet = (ShulkerBullet) stats.getPlayer().getWorld().spawnEntity(stats.getPlayer().getLocation().add(0, 1, 0), EntityType.SHULKER_BULLET); shulkerBullet.setShooter(stats.getPlayer()); - MMOItems.plugin.getEntities().registerCustomEntity(shulkerBullet, new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE), data.getModifier("effect-duration")); + MMOItems.plugin.getEntities().registerCustomEntity(shulkerBullet, new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE), data.getModifier("effect-duration")); new BukkitRunnable() { double ti = 0; @@ -83,7 +84,7 @@ public class Shulker_Missile extends Ability implements Listener { } Object[] data = MMOItems.plugin.getEntities().getEntityData(damager); - AttackResult result = (AttackResult) data[0]; + ItemAttackResult result = (ItemAttackResult) data[0]; double duration = (double) data[1] * 20; // void spirit @@ -108,7 +109,7 @@ public class Shulker_Missile extends Ability implements Listener { y += .04; for (int j = 0; j < 2; j++) { double xz = y * Math.PI * 1.3 + (j * Math.PI); - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(xz), y, Math.sin(xz)), Color.MAROON); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(xz), y, Math.sin(xz)), Color.MAROON); } } if (y >= 2) diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Sky_Smash.java b/src/main/java/net/Indyuce/mmoitems/ability/Sky_Smash.java index 0ef2fff7..308da9b2 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Sky_Smash.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Sky_Smash.java @@ -10,10 +10,10 @@ import org.bukkit.potion.PotionEffectType; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Sky_Smash extends Ability { public Sky_Smash() { @@ -27,7 +27,7 @@ public class Sky_Smash extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); double knockUp = data.getModifier("knock-up"); @@ -39,7 +39,7 @@ public class Sky_Smash extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc) < 10) { - new AttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); Location loc1 = stats.getPlayer().getEyeLocation().clone(); loc1.setPitch(-70); ((LivingEntity) entity).setVelocity(loc1.getDirection().multiply(1.2 * knockUp)); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Smite.java b/src/main/java/net/Indyuce/mmoitems/ability/Smite.java index 2902c25e..d31f44b0 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Smite.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Smite.java @@ -2,12 +2,13 @@ package net.Indyuce.mmoitems.ability; import org.bukkit.entity.LivingEntity; -import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; public class Smite extends Ability { public Smite() { @@ -20,14 +21,14 @@ public class Smite extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { - target = target == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : target; + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { + target = target == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : target; if (target == null) { result.setSuccessful(false); return; } - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); target.getWorld().strikeLightningEffect(target.getLocation()); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Snowman_Turret.java b/src/main/java/net/Indyuce/mmoitems/ability/Snowman_Turret.java index 5a9cc056..d3e963d6 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Snowman_Turret.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Snowman_Turret.java @@ -15,10 +15,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Snowman_Turret extends Ability { public Snowman_Turret() { @@ -33,7 +33,7 @@ public class Snowman_Turret extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Sparkle.java b/src/main/java/net/Indyuce/mmoitems/ability/Sparkle.java index 4cda87bc..0673211d 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Sparkle.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Sparkle.java @@ -7,13 +7,14 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.util.Vector; -import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Sparkle extends Ability { public Sparkle() { @@ -28,8 +29,8 @@ public class Sparkle extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { - target = target == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : target; + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { + target = target == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : target; if (target == null) { result.setSuccessful(false); return; @@ -39,7 +40,7 @@ public class Sparkle extends Ability { double radius = data.getModifier("radius"); double limit = data.getModifier("limit"); - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); target.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, target.getLocation().add(0, 1, 0), 0); target.getWorld().playSound(target.getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_TWINKLE.toSound(), 2, 2); @@ -47,7 +48,7 @@ public class Sparkle extends Ability { for (Entity entity : target.getNearbyEntities(radius, radius, radius)) if (count < limit && entity instanceof LivingEntity && entity != stats.getPlayer() && !(entity instanceof ArmorStand)) { count++; - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); entity.getWorld().playSound(entity.getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_TWINKLE.toSound(), 2, 2); Location loc_t = target.getLocation().add(0, .75, 0); Location loc_ent = entity.getLocation().add(0, .75, 0); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Swiftness.java b/src/main/java/net/Indyuce/mmoitems/ability/Swiftness.java index 518d3cdd..4500451d 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Swiftness.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Swiftness.java @@ -6,10 +6,10 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Swiftness extends Ability { public Swiftness() { @@ -23,7 +23,7 @@ public class Swiftness extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration"); int amplifier = (int) data.getModifier("amplifier"); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/TNT_Throw.java b/src/main/java/net/Indyuce/mmoitems/ability/TNT_Throw.java index 2f7d5f12..37e466a4 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/TNT_Throw.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/TNT_Throw.java @@ -14,8 +14,8 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class TNT_Throw extends Ability implements Listener { @@ -29,7 +29,7 @@ public class TNT_Throw extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Vector vec = getTargetDirection(stats.getPlayer(), target).multiply(2 * data.getModifier("force")); TNTPrimed tnt = (TNTPrimed) stats.getPlayer().getWorld().spawnEntity(stats.getPlayer().getLocation().add(0, 1, 0), EntityType.PRIMED_TNT); tnt.setFuseTicks(80); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Tactical_Grenade.java b/src/main/java/net/Indyuce/mmoitems/ability/Tactical_Grenade.java index 78374ea3..c7035c7d 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Tactical_Grenade.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Tactical_Grenade.java @@ -14,10 +14,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; public class Tactical_Grenade extends Ability { public Tactical_Grenade() { @@ -32,8 +33,8 @@ public class Tactical_Grenade extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -73,7 +74,7 @@ public class Tactical_Grenade extends Ability { if (entity.equals(target)) cancel(); - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); entity.setVelocity(entity.getVelocity().add(offsetVector(knockup))); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Targeted_Fireball.java b/src/main/java/net/Indyuce/mmoitems/ability/Targeted_Fireball.java index 53d86bbd..5bf483be 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Targeted_Fireball.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Targeted_Fireball.java @@ -7,12 +7,14 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Targeted_Fireball extends Ability { public Targeted_Fireball() { @@ -26,8 +28,8 @@ public class Targeted_Fireball extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -55,7 +57,7 @@ public class Targeted_Fireball extends Ability { loc.getWorld().spawnParticle(Particle.FLAME, loc, 32, 0, 0, 0, .1); loc.getWorld().playSound(loc, Sound.ENTITY_BLAZE_HURT, 2, 1); target.setFireTicks((int) (target.getFireTicks() + data.getModifier("ignite") * 20)); - new AttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, target); + new ItemAttackResult(data.getModifier("damage"), DamageType.SKILL, DamageType.MAGICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, target); cancel(); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Throw_Up.java b/src/main/java/net/Indyuce/mmoitems/ability/Throw_Up.java index f01c643f..4032271e 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Throw_Up.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Throw_Up.java @@ -14,12 +14,13 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.api.util.NoInteractItemEntity; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.ItemTag; public class Throw_Up extends Ability implements Listener { public Throw_Up() { @@ -33,7 +34,7 @@ public class Throw_Up extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double duration = data.getModifier("duration") * 10; double dps = data.getModifier("damage") / 2; @@ -52,11 +53,11 @@ public class Throw_Up extends Ability implements Listener { if (j % 5 == 0) for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (entity.getLocation().distanceSquared(loc) < 40 && stats.getPlayer().getEyeLocation().getDirection().angle(entity.getLocation().toVector().subtract(stats.getPlayer().getLocation().toVector())) < Math.PI / 6 && MMOUtils.canDamage(stats.getPlayer(), entity)) - new AttackResult(dps, DamageType.SKILL, DamageType.PHYSICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(dps, DamageType.SKILL, DamageType.PHYSICAL, DamageType.PROJECTILE).applyEffectsAndDamage(stats, null, (LivingEntity) entity); loc.getWorld().playSound(loc, Sound.ENTITY_ZOMBIE_HURT, 1, 1); - NoInteractItemEntity item = new NoInteractItemEntity(stats.getPlayer().getLocation().add(0, 1.2, 0), MMOItems.plugin.getNMS().getNBTItem(new ItemStack(Material.ROTTEN_FLESH)).addTag(new ItemTag("noStack", random.nextInt(1000))).toItem()); + NoInteractItemEntity item = new NoInteractItemEntity(stats.getPlayer().getLocation().add(0, 1.2, 0), MMOLib.plugin.getNMS().getNBTItem(new ItemStack(Material.ROTTEN_FLESH)).addTag(new ItemTag("noStack", random.nextInt(1000))).toItem()); Bukkit.getScheduler().scheduleSyncDelayedTask(MMOItems.plugin, () -> item.close(), 40); item.getEntity().setVelocity(loc.getDirection().multiply(.8)); stats.getPlayer().getWorld().spawnParticle(Particle.SMOKE_LARGE, stats.getPlayer().getLocation().add(0, 1.2, 0), 0, loc.getDirection().getX(), loc.getDirection().getY(), loc.getDirection().getZ(), 1); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/Thrust.java b/src/main/java/net/Indyuce/mmoitems/ability/Thrust.java index faed95a4..a614ec0d 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/Thrust.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/Thrust.java @@ -11,10 +11,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Thrust extends Ability { public Thrust() { @@ -27,7 +27,7 @@ public class Thrust extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { double damage = data.getModifier("damage"); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 1, 0); @@ -39,7 +39,7 @@ public class Thrust extends Ability { loc.add(vec); for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), loc, entity)) - new AttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.PHYSICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); loc.getWorld().spawnParticle(Particle.SMOKE_LARGE, loc, 0); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Hail.java b/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Hail.java index a7568b0c..b0a6f1c9 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Hail.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Hail.java @@ -10,11 +10,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Arcane_Hail extends Ability { public Arcane_Hail() { @@ -29,7 +29,7 @@ public class Arcane_Hail extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); @@ -54,7 +54,7 @@ public class Arcane_Hail extends Ability { loc1.getWorld().playSound(loc1, VersionSound.ENTITY_ENDERMAN_HURT.toSound(), 1, 0); for (Entity entity : MMOUtils.getNearbyChunkEntities(loc1)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc1) <= 4) - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); loc1.getWorld().spawnParticle(Particle.SPELL_WITCH, loc1, 12, 0, 0, 0, .1); loc1.getWorld().spawnParticle(Particle.SMOKE_NORMAL, loc1, 6, 0, 0, 0, .1); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Rift.java b/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Rift.java index 8959baf3..9153a46c 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Rift.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/arcane/Arcane_Rift.java @@ -15,11 +15,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionSound; public class Arcane_Rift extends Ability { public Arcane_Rift() { @@ -35,7 +35,7 @@ public class Arcane_Rift extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { if (!stats.getPlayer().isOnGround()) { result.setSuccessful(false); return; @@ -62,7 +62,7 @@ public class Arcane_Rift extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), entity) && loc.distanceSquared(entity.getLocation()) < 2 && !hit.contains(entity.getEntityId())) { hit.add(entity.getEntityId()); - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); ((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.SLOW, (int) (slowDuration * 20), (int) slowAmplifier)); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Blind.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Blind.java index 017dad00..973c0ec2 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Blind.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Blind.java @@ -8,13 +8,13 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.VersionSound; public class Blind extends Ability { public Blind() { @@ -27,8 +27,8 @@ public class Blind extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { - target = target == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : target; + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { + target = target == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : target; if (target == null) { result.setSuccessful(false); return; @@ -39,7 +39,7 @@ public class Blind extends Ability { for (double j = 0; j < 2; j++) { Location loc = target.getLocation(); Vector vec = MMOUtils.rotateFunc(new Vector(Math.cos(i), 1 + Math.cos(i + (Math.PI * j)) * .5, Math.sin(i)), stats.getPlayer().getLocation()); - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.add(vec), Color.BLACK); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.add(vec), Color.BLACK); } target.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, (int) (data.getModifier("duration") * 20), 0)); } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Bloodbath.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Bloodbath.java index 68e86d73..3bc3f420 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Bloodbath.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Bloodbath.java @@ -4,11 +4,12 @@ import org.bukkit.Effect; import org.bukkit.Sound; import org.bukkit.entity.LivingEntity; -import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Bloodbath extends Ability { public Bloodbath() { @@ -21,8 +22,8 @@ public class Bloodbath extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { - target = target == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : target; + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { + target = target == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : target; if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Burn.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Burn.java index 956e8cde..a6a7cd47 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Burn.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Burn.java @@ -7,10 +7,12 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Burn extends Ability { public Burn() { @@ -23,8 +25,8 @@ public class Burn extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Confuse.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Confuse.java index 3d64574b..f2b790a2 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Confuse.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Confuse.java @@ -7,10 +7,12 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Confuse extends Ability { public Confuse() { @@ -22,8 +24,8 @@ public class Confuse extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Corrosion.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Corrosion.java index e2639b1f..38e5ab44 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Corrosion.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Corrosion.java @@ -10,8 +10,8 @@ import org.bukkit.potion.PotionEffectType; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public class Corrosion extends Ability { @@ -27,7 +27,7 @@ public class Corrosion extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Death_Mark.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Death_Mark.java index e760e4b7..9e875be7 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Death_Mark.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Death_Mark.java @@ -8,11 +8,13 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; public class Death_Mark extends Ability { public Death_Mark() { @@ -27,8 +29,8 @@ public class Death_Mark extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -50,7 +52,7 @@ public class Death_Mark extends Ability { target.getWorld().spawnParticle(Particle.SPELL_MOB, target.getLocation(), 4, .2, 0, .2, 0); if (ti % 20 == 0) - MMOItems.plugin.getDamage().damage(stats.getPlayer(), target, new AttackResult(dps, DamageType.SKILL, DamageType.MAGICAL).applySkillEffects(stats, target), false); + MMOLib.plugin.getDamage().damage(stats.getPlayer(), target, new ItemAttackResult(dps, DamageType.SKILL, DamageType.MAGICAL).applySkillEffects(stats, target), false); } }.runTaskTimer(MMOItems.plugin, 0, 1); target.getWorld().playSound(target.getLocation(), Sound.ENTITY_BLAZE_HURT, 1, 2); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Freeze.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Freeze.java index b66fc843..96cab300 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Freeze.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Freeze.java @@ -9,10 +9,10 @@ import org.bukkit.potion.PotionEffectType; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Freeze extends Ability { public Freeze() { @@ -27,7 +27,7 @@ public class Freeze extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Ignite.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Ignite.java index a4e521b3..0093e306 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Ignite.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Ignite.java @@ -7,10 +7,10 @@ import org.bukkit.entity.LivingEntity; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Ignite extends Ability { public Ignite() { @@ -25,7 +25,7 @@ public class Ignite extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Minor_Explosion.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Minor_Explosion.java index d42751bb..5585d6ef 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Minor_Explosion.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Minor_Explosion.java @@ -8,10 +8,10 @@ import org.bukkit.entity.LivingEntity; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.api.DamageType; public class Minor_Explosion extends Ability { public Minor_Explosion() { @@ -26,7 +26,7 @@ public class Minor_Explosion extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { Location loc = getTargetLocation(stats.getPlayer(), target); if (loc == null) { result.setSuccessful(false); @@ -43,7 +43,7 @@ public class Minor_Explosion extends Ability { for (Entity entity : MMOUtils.getNearbyChunkEntities(loc)) if (entity.getLocation().distanceSquared(loc) < radiusSquared && MMOUtils.canDamage(stats.getPlayer(), entity)) { - new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); + new ItemAttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, (LivingEntity) entity); entity.setVelocity(MMOUtils.normalize(entity.getLocation().subtract(loc).toVector().setY(0)).setY(.2).multiply(2 * knockback)); } } diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Poison.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Poison.java index ba05d299..e9ad84d8 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Poison.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Poison.java @@ -6,11 +6,12 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Poison extends Ability { public Poison() { @@ -24,8 +25,8 @@ public class Poison extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { - target = target == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : target; + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { + target = target == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : target; if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Shock.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Shock.java index beaae0cb..05086e53 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Shock.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Shock.java @@ -7,11 +7,13 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.VersionSound; public class Shock extends Ability { public Shock() { @@ -24,8 +26,8 @@ public class Shock extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Slow.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Slow.java index e1363539..67da3514 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Slow.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Slow.java @@ -10,10 +10,12 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Slow extends Ability { public Slow() { @@ -27,8 +29,8 @@ public class Slow extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -45,7 +47,7 @@ public class Slow extends Ability { for (double j = 0; j < Math.PI * 2; j += Math.PI) for (double r = 0; r < .7; r += .1) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos((ti / 2) + j + (Math.PI * r)) * r * 2, .1, Math.sin((ti / 2) + j + (Math.PI * r)) * r * 2), Color.WHITE); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos((ti / 2) + j + (Math.PI * r)) * r * 2, .1, Math.sin((ti / 2) + j + (Math.PI * r)) * r * 2), Color.WHITE); } }.runTaskTimer(MMOItems.plugin, 0, 1); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Starfall.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Starfall.java index d9f26dac..5b7b0bc1 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Starfall.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Starfall.java @@ -9,10 +9,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public class Starfall extends Ability { public Starfall() { @@ -25,7 +25,7 @@ public class Starfall extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Stun.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Stun.java index 478b1aa5..5bc6a6bb 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Stun.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Stun.java @@ -6,11 +6,12 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Stun extends Ability { public Stun() { @@ -23,8 +24,8 @@ public class Stun extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, AttackResult result) { - target = target == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : target; + public void whenCast(TemporaryStats stats, LivingEntity target, AbilityData data, ItemAttackResult result) { + target = target == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : target; if (target == null) { result.setSuccessful(false); return; diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Vampirism.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Vampirism.java index b06126d9..5a2554ae 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Vampirism.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Vampirism.java @@ -10,9 +10,10 @@ import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Vampirism extends Ability { public Vampirism() { @@ -25,8 +26,8 @@ public class Vampirism extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -43,7 +44,7 @@ public class Vampirism extends Ability { dis += ti <= 10 ? .15 : -.15; for (double j = 0; j < Math.PI * 2; j += Math.PI / 4) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(j + (ti / 20)) * dis, 0, Math.sin(j + (ti / 20)) * dis), Color.RED); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(j + (ti / 20)) * dis, 0, Math.sin(j + (ti / 20)) * dis), Color.RED); } if (ti >= 17) cancel(); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Weaken_Target.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Weaken_Target.java index d4aef16c..ee2d4dcf 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Weaken_Target.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Weaken_Target.java @@ -20,11 +20,13 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.VersionSound; public class Weaken_Target extends Ability implements Listener { public Map marked = new HashMap<>(); @@ -40,8 +42,8 @@ public class Weaken_Target extends Ability implements Listener { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null || marked.containsKey(target.getUniqueId())) { result.setSuccessful(false); return; @@ -102,7 +104,7 @@ public class Weaken_Target extends Ability implements Listener { for (int j = 0; j < 3; j++) { y += .07; for (int k = 0; k < 3; k++) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(y * Math.PI + (k * Math.PI * 2 / 3)) * (3 - y) / 2.5, y, Math.sin(y * Math.PI + (k * Math.PI * 2 / 3)) * (3 - y) / 2.5), Color.BLACK); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(y * Math.PI + (k * Math.PI * 2 / 3)) * (3 - y) / 2.5, y, Math.sin(y * Math.PI + (k * Math.PI * 2 / 3)) * (3 - y) / 2.5), Color.BLACK); } if (y > 3) cancel(); diff --git a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Wither.java b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Wither.java index 23d79b98..8964a111 100644 --- a/src/main/java/net/Indyuce/mmoitems/ability/onhit/Wither.java +++ b/src/main/java/net/Indyuce/mmoitems/ability/onhit/Wither.java @@ -10,10 +10,12 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; +import net.mmogroup.mmolib.MMOLib; public class Wither extends Ability { public Wither() { @@ -27,8 +29,8 @@ public class Wither extends Ability { } @Override - public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, AttackResult result) { - LivingEntity target = initialTarget == null ? MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50).getHit() : initialTarget; + public void whenCast(TemporaryStats stats, LivingEntity initialTarget, AbilityData data, ItemAttackResult result) { + LivingEntity target = initialTarget == null ? MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), 50, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)).getHit() : initialTarget; if (target == null) { result.setSuccessful(false); return; @@ -48,7 +50,7 @@ public class Wither extends Ability { double a = y * Math.PI + (j * Math.PI * 2 / 3); double x = Math.cos(a) * (3 - y) / 2.5; double z = Math.sin(a) * (3 - y) / 2.5; - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(x, x, z), Color.BLACK); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(x, x, z), Color.BLACK); } } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/Ability.java b/src/main/java/net/Indyuce/mmoitems/api/Ability.java index 5717502a..db9a23e7 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/Ability.java +++ b/src/main/java/net/Indyuce/mmoitems/api/Ability.java @@ -17,7 +17,6 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.data.AbilityData; public abstract class Ability { @@ -100,7 +99,7 @@ public abstract class Ability { * these methods need to be overriden by ability classes depending on their * ability type */ - public abstract void whenCast(TemporaryStats playerStats, LivingEntity target, AbilityData data, AttackResult result); + public abstract void whenCast(TemporaryStats playerStats, LivingEntity target, AbilityData data, ItemAttackResult result); /* * util methods for abilities diff --git a/src/main/java/net/Indyuce/mmoitems/api/ArrowParticles.java b/src/main/java/net/Indyuce/mmoitems/api/ArrowParticles.java index 17ee95c1..b6aee86d 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/ArrowParticles.java +++ b/src/main/java/net/Indyuce/mmoitems/api/ArrowParticles.java @@ -8,8 +8,8 @@ import org.bukkit.scheduler.BukkitRunnable; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class ArrowParticles extends BukkitRunnable { private Arrow arrow; @@ -58,7 +58,7 @@ public class ArrowParticles extends BukkitRunnable { } if (colored) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(particle, arrow.getLocation().add(0, .25, 0), amount, offset, offset, offset, 0, 1, color); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(particle, arrow.getLocation().add(0, .25, 0), amount, offset, offset, offset, 0, 1, color); else arrow.getWorld().spawnParticle(particle, arrow.getLocation().add(0, .25, 0), amount, offset, offset, offset, speed); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/CustomBlock.java b/src/main/java/net/Indyuce/mmoitems/api/CustomBlock.java index 02317065..78745431 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/CustomBlock.java +++ b/src/main/java/net/Indyuce/mmoitems/api/CustomBlock.java @@ -17,7 +17,8 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.util.MushroomState; import net.Indyuce.mmoitems.manager.BlockManager; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; public class CustomBlock { MushroomState state; @@ -80,11 +81,11 @@ public class CustomBlock { meta.setUnbreakable(true); meta.addItemFlags(ItemFlag.values()); - if(MMOItems.plugin.getVersion().isBelowOrEqual(1, 13)) ((Damageable) meta).setDamage(id); + if(MMOLib.plugin.getVersion().isBelowOrEqual(1, 13)) ((Damageable) meta).setDamage(id); item.setItemMeta(meta); - return MMOItems.plugin.getNMS().getNBTItem(item) + return MMOLib.plugin.getNMS().getNBTItem(item) .addTag(new ItemTag("MMOITEMS_DISABLE_CRAFTING", true), new ItemTag("MMOITEMS_DISABLE_SMITHING", true), new ItemTag("MMOITEMS_DISABLE_ENCHANTING", true), diff --git a/src/main/java/net/Indyuce/mmoitems/api/CustomSound.java b/src/main/java/net/Indyuce/mmoitems/api/CustomSound.java index 64938417..4a436e18 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/CustomSound.java +++ b/src/main/java/net/Indyuce/mmoitems/api/CustomSound.java @@ -4,7 +4,7 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public enum CustomSound { ON_ATTACK(Material.IRON_SWORD, 19, "Plays when attacking an entity."), diff --git a/src/main/java/net/Indyuce/mmoitems/api/Element.java b/src/main/java/net/Indyuce/mmoitems/api/Element.java index 28f47dae..3459b413 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/Element.java +++ b/src/main/java/net/Indyuce/mmoitems/api/Element.java @@ -19,15 +19,15 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.listener.ElementListener; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionSound; public enum Element { FIRE(Material.BLAZE_POWDER, "Fire", ChatColor.DARK_RED, new ElementParticle(Particle.FLAME, .05f, 8), new ElementHandler() { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double attack, double absolute) { + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double attack, double absolute) { target.getWorld().spawnParticle(Particle.LAVA, target.getLocation().add(0, target.getHeight() / 2, 0), 14); target.getWorld().playSound(target.getLocation(), Sound.ENTITY_BLAZE_HURT, 2, .8f); target.setFireTicks((int) (attack * 2)); @@ -36,7 +36,7 @@ public enum Element { }), ICE(VersionMaterial.SNOWBALL.toMaterial(), "Ice", ChatColor.AQUA, new ElementParticle(Particle.BLOCK_CRACK, .07f, 16, Material.ICE), new ElementHandler() { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double attack, double absolute) { + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double attack, double absolute) { new BukkitRunnable() { double y = 0; Location loc = target.getLocation(); @@ -46,7 +46,7 @@ public enum Element { if ((y += .07) >= 3) cancel(); for (double k = 0; k < Math.PI * 2; k += Math.PI * 2 / 3) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(y * Math.PI + k) * (3 - y) / 2.5, y / 1.1, Math.sin(y * Math.PI + k) * (3 - y) / 2.5), Color.WHITE); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(Math.cos(y * Math.PI + k) * (3 - y) / 2.5, y / 1.1, Math.sin(y * Math.PI + k) * (3 - y) / 2.5), Color.WHITE); } } }.runTaskTimer(MMOItems.plugin, 0, 1); @@ -57,7 +57,7 @@ public enum Element { }), WIND(Material.FEATHER, "Wind", ChatColor.GRAY, new ElementParticle(Particle.EXPLOSION_NORMAL, .06f, 8), new ElementHandler() { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double attack, double absolute) { + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double attack, double absolute) { target.getWorld().playSound(target.getLocation(), VersionSound.ENTITY_ENDER_DRAGON_GROWL.toSound(), 2, 2f); Vector vec = target.getLocation().subtract(stats.getPlayer().getLocation()).toVector().normalize().multiply(1.7).setY(.5); target.setVelocity(vec); @@ -73,9 +73,9 @@ public enum Element { }), EARTH(VersionMaterial.OAK_SAPLING.toMaterial(), "Earth", ChatColor.GREEN, new ElementParticle(Particle.BLOCK_CRACK, .05f, 24, Material.DIRT), new ElementHandler() { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double attack, double absolute) { + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double attack, double absolute) { target.getWorld().playSound(target.getLocation(), Sound.BLOCK_GRASS_BREAK, 2, 0); - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.BLOCK_CRACK, target.getLocation().add(0, .1, 0), 64, 1, 0, 1, 0, Material.DIRT); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.BLOCK_CRACK, target.getLocation().add(0, .1, 0), 64, 1, 0, 1, 0, Material.DIRT); result.addDamage(absolute); target.setVelocity(new Vector(0, 1, 0)); @@ -86,11 +86,11 @@ public enum Element { }), THUNDER(VersionMaterial.GUNPOWDER.toMaterial(), "Thunder", ChatColor.YELLOW, new ElementParticle(Particle.FIREWORKS_SPARK, .05f, 8), new ElementHandler() { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double attack, double absolute) { + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double attack, double absolute) { target.getWorld().playSound(target.getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_LARGE_BLAST.toSound(), 2, 0); for (Entity entity : target.getNearbyEntities(3, 2, 3)) if (MMOUtils.canDamage(stats.getPlayer(), entity)) - new AttackResult(result.getDamage() * attack / 100, DamageType.WEAPON).damage(stats, (LivingEntity) entity); + new ItemAttackResult(result.getDamage() * attack / 100, DamageType.WEAPON).damage(stats, (LivingEntity) entity); result.addDamage(absolute); for (double k = 0; k < Math.PI * 2; k += Math.PI / 16) @@ -99,7 +99,7 @@ public enum Element { }), WATER(VersionMaterial.LILY_PAD.toMaterial(), "Water", ChatColor.BLUE, new ElementParticle(Particle.BLOCK_CRACK, .07f, 32, Material.WATER), new ElementHandler() { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double attack, double absolute) { + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double attack, double absolute) { ElementListener.weaken(target); new BukkitRunnable() { double step = Math.PI / 2; @@ -156,7 +156,7 @@ public enum Element { } public interface ElementHandler { - public void elementAttack(TemporaryStats stats, AttackResult result, LivingEntity target, double damage, double absolute); + public void elementAttack(TemporaryStats stats, ItemAttackResult result, LivingEntity target, double damage, double absolute); } public static class ElementParticle { @@ -167,7 +167,7 @@ public enum Element { } public ElementParticle(Particle particle, float speed, int amount, Material material) { - display = (entity) -> MMOItems.plugin.getVersion().getWrapper().spawnParticle(particle, entity.getLocation().add(0, entity.getHeight() / 2, 0), amount, 0, 0, 0, speed, material); + display = (entity) -> MMOLib.plugin.getVersion().getWrapper().spawnParticle(particle, entity.getLocation().add(0, entity.getHeight() / 2, 0), amount, 0, 0, 0, speed, material); } public void displayParticle(Entity entity) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/ElementalAttack.java b/src/main/java/net/Indyuce/mmoitems/api/ElementalAttack.java index cfd276fc..26f80b80 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/ElementalAttack.java +++ b/src/main/java/net/Indyuce/mmoitems/api/ElementalAttack.java @@ -7,21 +7,20 @@ import java.util.Random; import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class ElementalAttack { private Map relative = new HashMap<>(); private Map absolute = new HashMap<>(); - private AttackResult result; + private ItemAttackResult result; private LivingEntity target; private static final Random random = new Random(); - public ElementalAttack(NBTItem item, AttackResult result) { + public ElementalAttack(NBTItem item, ItemAttackResult result) { this.result = result; for (Element element : Element.values()) { @@ -40,7 +39,7 @@ public class ElementalAttack { this.target = target; for (ItemStack equip : target.getEquipment().getArmorContents()) { - NBTItem nbtEquip = MMOItems.plugin.getNMS().getNBTItem(equip); + NBTItem nbtEquip = MMOLib.plugin.getNMS().getNBTItem(equip); if (nbtEquip.getType() != null) for (Element element : absolute.keySet()) { double defense = nbtEquip.getStat(element.name() + "_DEFENSE") / 100; diff --git a/src/main/java/net/Indyuce/mmoitems/api/ItemAttackResult.java b/src/main/java/net/Indyuce/mmoitems/api/ItemAttackResult.java new file mode 100644 index 00000000..f3c8b7be --- /dev/null +++ b/src/main/java/net/Indyuce/mmoitems/api/ItemAttackResult.java @@ -0,0 +1,127 @@ +package net.Indyuce.mmoitems.api; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import org.bukkit.Particle; +import org.bukkit.Sound; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.Ability.CastingMode; +import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; +import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.AttackResult; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; + +public class ItemAttackResult extends AttackResult { + private static final Random random = new Random(); + + public ItemAttackResult(boolean successful, DamageType... types) { + this(successful, 0, types); + } + + public ItemAttackResult(double damage, DamageType... types) { + this(true, damage, types); + } + + public ItemAttackResult(boolean successful, double damage, DamageType... types) { + this(successful, damage, Arrays.asList(types)); + } + + public ItemAttackResult(boolean successful, double damage, List types) { + super(successful, damage, types); + } + + public ItemAttackResult(ItemAttackResult result) { + super(result); + } + + @Override + public ItemAttackResult clone() { + return new ItemAttackResult(this); + } + + @Override + public ItemAttackResult setSuccessful(boolean successful) { + return (ItemAttackResult) super.setSuccessful(successful); + } + + @Override + public ItemAttackResult multiplyDamage(double coef) { + return (ItemAttackResult) super.multiplyDamage(coef); + } + + public void damage(TemporaryStats stats, LivingEntity target) { + MMOLib.plugin.getDamage().damage(stats.getPlayer(), target, this); + } + + public void applyEffectsAndDamage(TemporaryStats stats, NBTItem item, LivingEntity target) { + MMOLib.plugin.getDamage().damage(stats.getPlayer(), target, applyEffects(stats, item, target)); + } + + /* + * this methods makes applying ALL effects including elemental damage easier + * for untargeted weapons like staffs. + */ + public ItemAttackResult applyEffects(TemporaryStats stats, NBTItem item, LivingEntity target) { + if (hasType(DamageType.WEAPON)) { + applyElementalEffects(stats, item, target); + applyOnHitEffects(stats, target); + } else if (hasType(DamageType.SKILL)) + applySkillEffects(stats, target); + return this; + } + + public ItemAttackResult applySkillEffects(TemporaryStats stats, LivingEntity target) { + + for (DamageType type : DamageType.values()) + if (hasType(type)) + addRelativeDamage(stats.getStat((ItemStat) type.getMMOItemsStat()) / 100); + + addRelativeDamage(stats.getStat(target instanceof Player ? ItemStat.PVP_DAMAGE : ItemStat.PVE_DAMAGE) / 100); + if (MMOUtils.isUndead(target)) + addRelativeDamage(stats.getStat(ItemStat.UNDEAD_DAMAGE) / 100); + + return this; + } + + public ItemAttackResult applyElementalEffects(TemporaryStats stats, NBTItem item, LivingEntity target) { + new ElementalAttack(item, this).applyElementalArmor(target).apply(stats); + return this; + } + + /* + * vanilla melee weapons have no NBTTitems so this method only provides for + * non-weapon specific effects like critical strikes and extra stat damage + */ + public ItemAttackResult applyOnHitEffects(TemporaryStats stats, LivingEntity target) { + + // abilities + stats.getPlayerData().castAbilities(stats, target, this, CastingMode.ON_HIT); + + // extra damage + for (DamageType type : DamageType.values()) + if (hasType(type)) + addRelativeDamage(stats.getStat((ItemStat) type.getMMOItemsStat()) / 100); + + addRelativeDamage(stats.getStat(target instanceof Player ? ItemStat.PVP_DAMAGE : ItemStat.PVE_DAMAGE) / 100); + if (MMOUtils.isUndead(target)) + addRelativeDamage(stats.getStat(ItemStat.UNDEAD_DAMAGE) / 100); + + // critical strikes + if (random.nextDouble() <= stats.getStat(ItemStat.CRITICAL_STRIKE_CHANCE) / 100) { + multiplyDamage(MMOItems.plugin.getConfig().getDouble("crit-coefficient") + stats.getStat(ItemStat.CRITICAL_STRIKE_POWER) / 100); + target.getWorld().playSound(target.getLocation(), Sound.ENTITY_PLAYER_ATTACK_CRIT, 1, 1); + target.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, target.getLocation().add(0, 1, 0), 16, 0, 0, 0, .1); + } + + return this; + } + +} diff --git a/src/main/java/net/Indyuce/mmoitems/api/ProjectileData.java b/src/main/java/net/Indyuce/mmoitems/api/ProjectileData.java index 4b13502c..bb83e100 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/ProjectileData.java +++ b/src/main/java/net/Indyuce/mmoitems/api/ProjectileData.java @@ -1,7 +1,7 @@ package net.Indyuce.mmoitems.api; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; +import net.mmogroup.mmolib.api.item.NBTItem; public class ProjectileData { private final NBTItem sourceItem; diff --git a/src/main/java/net/Indyuce/mmoitems/api/Type.java b/src/main/java/net/Indyuce/mmoitems/api/Type.java index 23e68f41..5e3fb28e 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/Type.java +++ b/src/main/java/net/Indyuce/mmoitems/api/Type.java @@ -11,6 +11,7 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.item.plugin.identify.UnidentifiedItem; import net.Indyuce.mmoitems.manager.TypeManager; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; public class Type { @@ -224,12 +225,12 @@ public class Type { String[] split = str.split("\\:"); Material material = Material.valueOf(split[0]); - return split.length > 1 ? MMOItems.plugin.getVersion().getWrapper().textureItem(material, Integer.parseInt(split[1])) : new ItemStack(material); + return split.length > 1 ? MMOLib.plugin.getVersion().getWrapper().textureItem(material, Integer.parseInt(split[1])) : new ItemStack(material); } @Deprecated public static Type get(ItemStack item) { - return MMOItems.plugin.getNMS().getNBTItem(item).getType(); + return MMOLib.plugin.getNMS().getNBTItem(item).getType(); } /* diff --git a/src/main/java/net/Indyuce/mmoitems/api/TypeSet.java b/src/main/java/net/Indyuce/mmoitems/api/TypeSet.java index 277ba784..d848a8e6 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/TypeSet.java +++ b/src/main/java/net/Indyuce/mmoitems/api/TypeSet.java @@ -15,9 +15,8 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.interaction.weapon.Weapon; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.version.VersionSound; public enum TypeSet { @@ -117,18 +116,18 @@ public enum TypeSet { */ EXTRA; - private SetAttackHandler attackHandler; + private SetAttackHandler attackHandler; private TypeSet() { this((playerStats, target, weapon, result) -> { }); } - private TypeSet(SetAttackHandler attackHandler) { + private TypeSet(SetAttackHandler attackHandler) { this.attackHandler = attackHandler; } - public void applyAttackEffect(TemporaryStats playerStats, LivingEntity target, Weapon weapon, AttackResult result) { + public void applyAttackEffect(TemporaryStats playerStats, LivingEntity target, Weapon weapon, ItemAttackResult result) { attackHandler.apply(playerStats, target, weapon, result); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/crafting/IngredientInventory.java b/src/main/java/net/Indyuce/mmoitems/api/crafting/IngredientInventory.java index 057f9cb3..0b0ebadf 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/crafting/IngredientInventory.java +++ b/src/main/java/net/Indyuce/mmoitems/api/crafting/IngredientInventory.java @@ -13,7 +13,8 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.crafting.ingredient.Ingredient; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class IngredientInventory { @@ -32,7 +33,7 @@ public class IngredientInventory { public IngredientInventory(Inventory inv) { loop: for (ItemStack item : inv.getContents()) if (item != null && item.getType() != Material.AIR) { - NBTItem nbt = MMOItems.plugin.getNMS().getNBTItem(item); + NBTItem nbt = MMOLib.plugin.getNMS().getNBTItem(item); for (Ingredient ingredient : MMOItems.plugin.getCrafting().getIngredients()) if (ingredient.isValid(nbt)) { addIngredient(nbt, ingredient); diff --git a/src/main/java/net/Indyuce/mmoitems/api/crafting/StationItemOptions.java b/src/main/java/net/Indyuce/mmoitems/api/crafting/StationItemOptions.java index c5048a7d..3d89f5c0 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/crafting/StationItemOptions.java +++ b/src/main/java/net/Indyuce/mmoitems/api/crafting/StationItemOptions.java @@ -10,7 +10,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.api.item.plugin.NamedItemStack; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class StationItemOptions { private final CraftingStation station; diff --git a/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/Ingredient.java b/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/Ingredient.java index 5354a17a..22db282c 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/Ingredient.java +++ b/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/Ingredient.java @@ -5,7 +5,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.crafting.ConditionalDisplay; import net.Indyuce.mmoitems.api.crafting.IngredientInventory; import net.Indyuce.mmoitems.api.crafting.IngredientInventory.PlayerIngredient; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public abstract class Ingredient { private final String id; diff --git a/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/MMOItemIngredient.java b/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/MMOItemIngredient.java index 4bc8de69..08d108d2 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/MMOItemIngredient.java +++ b/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/MMOItemIngredient.java @@ -8,11 +8,11 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.crafting.ConditionalDisplay; import net.Indyuce.mmoitems.api.crafting.ConfigMMOItem; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.Display_Name; import net.Indyuce.mmoitems.stat.MaterialStat.MaterialData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class MMOItemIngredient extends Ingredient { private Type type; diff --git a/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/VanillaIngredient.java b/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/VanillaIngredient.java index 3daf5846..8191ad2c 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/VanillaIngredient.java +++ b/src/main/java/net/Indyuce/mmoitems/api/crafting/ingredient/VanillaIngredient.java @@ -6,8 +6,8 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.crafting.ConditionalDisplay; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; +import net.mmogroup.mmolib.api.item.NBTItem; public class VanillaIngredient extends Ingredient { private Material material; diff --git a/src/main/java/net/Indyuce/mmoitems/api/crafting/recipe/UpgradingRecipe.java b/src/main/java/net/Indyuce/mmoitems/api/crafting/recipe/UpgradingRecipe.java index c2434880..0fe34725 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/crafting/recipe/UpgradingRecipe.java +++ b/src/main/java/net/Indyuce/mmoitems/api/crafting/recipe/UpgradingRecipe.java @@ -7,7 +7,6 @@ import org.bukkit.Sound; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.crafting.ConfigMMOItem; import net.Indyuce.mmoitems.api.crafting.CraftingStation; @@ -20,6 +19,7 @@ import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.Upgrade_Stat.UpgradeData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; public class UpgradingRecipe extends Recipe { private final ConfigMMOItem item; @@ -62,7 +62,7 @@ public class UpgradingRecipe extends Recipe { } UpgradingRecipeInfo recipe = (UpgradingRecipeInfo) uncastRecipe; - if (!(recipe.mmoitem = new MMOItem(MMOItems.plugin.getNMS().getNBTItem(inv.getIngredient(ingredient).getFirstItem()))).hasData(ItemStat.UPGRADE)) + if (!(recipe.mmoitem = new MMOItem(MMOLib.plugin.getNMS().getNBTItem(inv.getIngredient(ingredient).getFirstItem()))).hasData(ItemStat.UPGRADE)) return false; if (!(recipe.upgradeData = (UpgradeData) recipe.getMMOItem().getData(ItemStat.UPGRADE)).canLevelUp()) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/drop/DropItem.java b/src/main/java/net/Indyuce/mmoitems/api/drop/DropItem.java index 033926e0..297303eb 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/drop/DropItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/drop/DropItem.java @@ -7,6 +7,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type; +import net.mmogroup.mmolib.MMOLib; public class DropItem { private final Type type; @@ -94,7 +95,7 @@ public class DropItem { return null; item.setAmount(amount); - return isUnidentified() ? type.getUnidentifiedTemplate().newBuilder(MMOItems.plugin.getNMS().getNBTItem(item)).build() : item; + return isUnidentified() ? type.getUnidentifiedTemplate().newBuilder(MMOLib.plugin.getNMS().getNBTItem(item)).build() : item; } public Type getType() { diff --git a/src/main/java/net/Indyuce/mmoitems/api/edition/BlockChatEdition.java b/src/main/java/net/Indyuce/mmoitems/api/edition/BlockChatEdition.java index 9b1b86ed..5135e983 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/edition/BlockChatEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/api/edition/BlockChatEdition.java @@ -7,6 +7,7 @@ import net.Indyuce.mmoitems.api.edition.process.AnvilGUI; import net.Indyuce.mmoitems.api.edition.process.ChatEdition; import net.Indyuce.mmoitems.gui.PluginInventory; import net.Indyuce.mmoitems.gui.edition.BlockEdition.ConfigOptions; +import net.mmogroup.mmolib.MMOLib; public class BlockChatEdition implements Edition { @@ -41,7 +42,7 @@ public class BlockChatEdition implements Edition { * anvil text input feature. enables players to use an anvil to input * text if they are having conflicts with their chat management plugins. */ - if (MMOItems.plugin.getConfig().getBoolean("anvil-text-input") && MMOItems.plugin.getVersion().isBelowOrEqual(1, 13)) { + if (MMOItems.plugin.getConfig().getBoolean("anvil-text-input") && MMOLib.plugin.getVersion().isBelowOrEqual(1, 13)) { new AnvilGUI(inv, this); return; } @@ -50,7 +51,7 @@ public class BlockChatEdition implements Edition { * default chat edition feature */ new ChatEdition(inv, this); - MMOItems.plugin.getNMS().sendTitle(inv.getPlayer(), ChatColor.GOLD + "" + ChatColor.BOLD + "Block Edition", "See chat.", 10, 40, 10); + MMOLib.plugin.getNMS().sendTitle(inv.getPlayer(), ChatColor.GOLD + "" + ChatColor.BOLD + "Block Edition", "See chat.", 10, 40, 10); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/api/edition/NewItemEdition.java b/src/main/java/net/Indyuce/mmoitems/api/edition/NewItemEdition.java index 85adaff6..9f8207fd 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/edition/NewItemEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/api/edition/NewItemEdition.java @@ -7,6 +7,7 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.edition.process.AnvilGUI; import net.Indyuce.mmoitems.api.edition.process.ChatEdition; import net.Indyuce.mmoitems.gui.ItemBrowser; +import net.mmogroup.mmolib.MMOLib; public class NewItemEdition implements Edition { @@ -33,7 +34,7 @@ public class NewItemEdition implements Edition { * anvil text input feature. enables players to use an anvil to input * text if they are having conflicts with their chat management plugins. */ - if (MMOItems.plugin.getConfig().getBoolean("anvil-text-input") && MMOItems.plugin.getVersion().isBelowOrEqual(1, 13)) { + if (MMOItems.plugin.getConfig().getBoolean("anvil-text-input") && MMOLib.plugin.getVersion().isBelowOrEqual(1, 13)) { new AnvilGUI(inv, this); return; } @@ -42,7 +43,7 @@ public class NewItemEdition implements Edition { * default chat edition feature */ new ChatEdition(inv, this); - MMOItems.plugin.getNMS().sendTitle(inv.getPlayer(), ChatColor.GOLD + "" + ChatColor.BOLD + "Item Creation", "See chat.", 10, 40, 10); + MMOLib.plugin.getNMS().sendTitle(inv.getPlayer(), ChatColor.GOLD + "" + ChatColor.BOLD + "Item Creation", "See chat.", 10, 40, 10); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/api/edition/StatEdition.java b/src/main/java/net/Indyuce/mmoitems/api/edition/StatEdition.java index 1757e6f3..2ad2391d 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/edition/StatEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/api/edition/StatEdition.java @@ -7,6 +7,7 @@ import net.Indyuce.mmoitems.api.edition.process.AnvilGUI; import net.Indyuce.mmoitems.api.edition.process.ChatEdition; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; public class StatEdition implements Edition { @@ -45,7 +46,7 @@ public class StatEdition implements Edition { * anvil text input feature. enables players to use an anvil to input * text if they are having conflicts with their chat management plugins. */ - if (MMOItems.plugin.getConfig().getBoolean("anvil-text-input") && MMOItems.plugin.getVersion().isBelowOrEqual(1, 13)) { + if (MMOItems.plugin.getConfig().getBoolean("anvil-text-input") && MMOLib.plugin.getVersion().isBelowOrEqual(1, 13)) { new AnvilGUI(inv, this); return; } @@ -54,7 +55,7 @@ public class StatEdition implements Edition { * default chat edition feature */ new ChatEdition(inv, this); - MMOItems.plugin.getNMS().sendTitle(inv.getPlayer(), ChatColor.GOLD + "" + ChatColor.BOLD + "Item Edition", "See chat.", 10, 40, 10); + MMOLib.plugin.getNMS().sendTitle(inv.getPlayer(), ChatColor.GOLD + "" + ChatColor.BOLD + "Item Edition", "See chat.", 10, 40, 10); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/api/edition/process/AnvilGUI.java b/src/main/java/net/Indyuce/mmoitems/api/edition/process/AnvilGUI.java index a6fbd38c..73b6fb20 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/edition/process/AnvilGUI.java +++ b/src/main/java/net/Indyuce/mmoitems/api/edition/process/AnvilGUI.java @@ -14,6 +14,7 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.edition.Edition; import net.Indyuce.mmoitems.gui.PluginInventory; +import net.mmogroup.mmolib.MMOLib; public class AnvilGUI extends EditionProcess implements Listener { private final int containerId; @@ -28,21 +29,21 @@ public class AnvilGUI extends EditionProcess implements Listener { paperMeta.setDisplayName("Input text.."); paper.setItemMeta(paperMeta); - MMOItems.plugin.getNMS().handleInventoryCloseEvent(getPlayer()); - MMOItems.plugin.getNMS().setActiveContainerDefault(getPlayer()); + MMOLib.plugin.getNMS().handleInventoryCloseEvent(getPlayer()); + MMOLib.plugin.getNMS().setActiveContainerDefault(getPlayer()); Bukkit.getPluginManager().registerEvents(this, MMOItems.plugin); - final Object container = MMOItems.plugin.getNMS().newContainerAnvil(getPlayer()); + final Object container = MMOLib.plugin.getNMS().newContainerAnvil(getPlayer()); - inventory = MMOItems.plugin.getNMS().toBukkitInventory(container); + inventory = MMOLib.plugin.getNMS().toBukkitInventory(container); inventory.setItem(0, paper); - containerId = MMOItems.plugin.getNMS().getNextContainerId(getPlayer()); - MMOItems.plugin.getNMS().sendPacketOpenWindow(getPlayer(), containerId); - MMOItems.plugin.getNMS().setActiveContainer(getPlayer(), container); - MMOItems.plugin.getNMS().setActiveContainerId(container, containerId); - MMOItems.plugin.getNMS().addActiveContainerSlotListener(container, getPlayer()); + containerId = MMOLib.plugin.getNMS().getNextContainerId(getPlayer()); + MMOLib.plugin.getNMS().sendPacketOpenWindow(getPlayer(), containerId); + MMOLib.plugin.getNMS().setActiveContainer(getPlayer(), container); + MMOLib.plugin.getNMS().setActiveContainerId(container, containerId); + MMOLib.plugin.getNMS().addActiveContainerSlotListener(container, getPlayer()); open = true; } @@ -57,9 +58,9 @@ public class AnvilGUI extends EditionProcess implements Listener { return; open = false; - MMOItems.plugin.getNMS().handleInventoryCloseEvent(getPlayer()); - MMOItems.plugin.getNMS().setActiveContainerDefault(getPlayer()); - MMOItems.plugin.getNMS().sendPacketCloseWindow(getPlayer(), containerId); + MMOLib.plugin.getNMS().handleInventoryCloseEvent(getPlayer()); + MMOLib.plugin.getNMS().setActiveContainerDefault(getPlayer()); + MMOLib.plugin.getNMS().sendPacketCloseWindow(getPlayer(), containerId); HandlerList.unregisterAll(this); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/event/ItemBreakEvent.java b/src/main/java/net/Indyuce/mmoitems/api/event/ItemBreakEvent.java index 91270279..672862b2 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/event/ItemBreakEvent.java +++ b/src/main/java/net/Indyuce/mmoitems/api/event/ItemBreakEvent.java @@ -4,7 +4,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; import org.bukkit.event.player.PlayerEvent; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class ItemBreakEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList(); diff --git a/src/main/java/net/Indyuce/mmoitems/api/event/ItemLoseDurabilityEvent.java b/src/main/java/net/Indyuce/mmoitems/api/event/ItemLoseDurabilityEvent.java index e3e66b39..190c22a7 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/event/ItemLoseDurabilityEvent.java +++ b/src/main/java/net/Indyuce/mmoitems/api/event/ItemLoseDurabilityEvent.java @@ -5,7 +5,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; import org.bukkit.event.player.PlayerEvent; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class ItemLoseDurabilityEvent extends PlayerEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/Consumable.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/Consumable.java index 48d90d8c..796f24e5 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/Consumable.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/Consumable.java @@ -15,7 +15,6 @@ import net.Indyuce.mmoitems.api.ItemTier; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.interaction.util.DurabilityItem; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.identify.IdentifiedItem; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.comp.flags.FlagPlugin.CustomFlag; @@ -23,6 +22,8 @@ import net.Indyuce.mmoitems.stat.Soulbound.SoulboundData; import net.Indyuce.mmoitems.stat.Upgrade_Stat.UpgradeData; import net.Indyuce.mmoitems.stat.data.EffectListData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class Consumable extends UseItem { public Consumable(Player player, NBTItem item, Type type) { @@ -203,8 +204,8 @@ public class Consumable extends UseItem { } // vanilla durability - if (!target.getBoolean("Unbreakable") && MMOItems.plugin.getVersion().getWrapper().isDamaged(target.getItem(), target.getItem().getItemMeta())) { - MMOItems.plugin.getVersion().getWrapper().repair(target.getItem(), repairPower); + if (!target.getBoolean("Unbreakable") && MMOLib.plugin.getVersion().getWrapper().isDamaged(target.getItem(), target.getItem().getItemMeta())) { + MMOLib.plugin.getVersion().getWrapper().repair(target.getItem(), repairPower); Message.REPAIRED_ITEM.format(ChatColor.YELLOW, "#item#", MMOUtils.getDisplayName(target.getItem()), "#amount#", "" + repairPower).send(player); return true; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/GemStone.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/GemStone.java index 5f72bf69..5b3865c9 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/GemStone.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/GemStone.java @@ -9,12 +9,12 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.data.GemSocketsData; import net.Indyuce.mmoitems.stat.data.GemSocketsData.GemstoneData; import net.Indyuce.mmoitems.stat.data.Mergeable; import net.Indyuce.mmoitems.stat.type.DoubleStat.DoubleData; +import net.mmogroup.mmolib.api.item.NBTItem; import net.Indyuce.mmoitems.stat.type.ItemStat; public class GemStone extends UseItem { diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/ItemSkin.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/ItemSkin.java index 0b3b3fcf..e1055578 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/ItemSkin.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/ItemSkin.java @@ -11,13 +11,13 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.Skull_Texture.SkullTextureData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class ItemSkin extends UseItem { public ItemSkin(Player player, NBTItem item, Type type) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java index 8d25d5f3..bf5a90f5 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java @@ -12,8 +12,8 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.comp.flags.FlagPlugin.CustomFlag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Tool extends UseItem { public Tool(Player player, NBTItem item, Type type) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/UseItem.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/UseItem.java index 81f03370..7a633484 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/UseItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/UseItem.java @@ -16,12 +16,12 @@ import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.Musket; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.Staff; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.Whip; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.comp.flags.FlagPlugin.CustomFlag; import net.Indyuce.mmoitems.stat.Commands.CommandListData; import net.Indyuce.mmoitems.stat.Commands.CommandListData.CommandData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class UseItem { protected final Player player; diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/util/DurabilityItem.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/util/DurabilityItem.java index e388ec80..ab8d5b8d 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/util/DurabilityItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/util/DurabilityItem.java @@ -16,10 +16,11 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.event.ItemBreakEvent; import net.Indyuce.mmoitems.api.event.ItemLoseDurabilityEvent; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.util.message.Message; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class DurabilityItem { private final NBTItem nbtItem; @@ -31,7 +32,7 @@ public class DurabilityItem { private static final Random random = new Random(); public DurabilityItem(Player player, ItemStack item) { - this(player, MMOItems.plugin.getNMS().getNBTItem(item)); + this(player, MMOLib.plugin.getNMS().getNBTItem(item)); } /* diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Gauntlet.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Gauntlet.java index 1fd68af3..9ef02f56 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Gauntlet.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Gauntlet.java @@ -9,8 +9,8 @@ import org.bukkit.potion.PotionEffectType; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; +import net.mmogroup.mmolib.api.item.NBTItem; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; public class Gauntlet extends Weapon { public Gauntlet(Player player, NBTItem item, Type type) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Weapon.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Weapon.java index 7092361c..da5676c2 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Weapon.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/Weapon.java @@ -8,18 +8,18 @@ import org.bukkit.inventory.EquipmentSlot; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.interaction.UseItem; import net.Indyuce.mmoitems.api.interaction.util.DurabilityItem; import net.Indyuce.mmoitems.api.interaction.util.InteractItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.comp.flags.FlagPlugin.CustomFlag; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class Weapon extends UseItem { public Weapon(Player player, NBTItem item, Type type) { @@ -70,7 +70,7 @@ public class Weapon extends UseItem { return true; } - public AttackResult targetedAttack(TemporaryStats stats, LivingEntity target, EquipmentSlot slot, AttackResult result) { + public ItemAttackResult targetedAttack(TemporaryStats stats, LivingEntity target, EquipmentSlot slot, ItemAttackResult result) { // custom durability DurabilityItem durItem = new DurabilityItem(getPlayer(), getNBTItem()); diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Crossbow.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Crossbow.java index 90f6da65..0ac8ff29 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Crossbow.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Crossbow.java @@ -9,10 +9,10 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class Crossbow extends UntargetedWeapon { public Crossbow(Player player, NBTItem item, Type type) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Lute.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Lute.java index 70cd6a83..9a76aefd 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Lute.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Lute.java @@ -13,16 +13,16 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.api.util.SoundReader; import net.Indyuce.mmoitems.stat.Lute_Attack_Effect.LuteAttackEffect; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionSound; public class Lute extends UntargetedWeapon { public Lute(Player player, NBTItem item, Type type) { @@ -69,7 +69,7 @@ public class Lute extends UntargetedWeapon { for (Entity target : entities) if (MMOUtils.canDamage(getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, getNBTItem(), (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, getNBTItem(), (LivingEntity) target); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java index 1d0b1b99..d391e5aa 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java @@ -7,14 +7,16 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.MMORayTraceResult; +import net.mmogroup.mmolib.api.item.NBTItem; public class Musket extends UntargetedWeapon { public Musket(Player player, NBTItem item, Type type) { @@ -44,9 +46,9 @@ public class Musket extends UntargetedWeapon { loc.setYaw((float) (loc.getYaw() + (random.nextDouble() - .5) * 2 * recoil)); Vector vec = loc.getDirection(); - MMORayTraceResult trace = MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), vec, range); + MMORayTraceResult trace = MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), vec, range, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)); if (trace.hasHit()) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.PHYSICAL).applyEffectsAndDamage(stats, getNBTItem(), trace.getHit()); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.PHYSICAL).applyEffectsAndDamage(stats, getNBTItem(), trace.getHit()); trace.draw(loc, vec, 2, Color.BLACK); getPlayer().getWorld().playSound(getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 2, 2); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Staff.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Staff.java index 496fa6f5..409f8be4 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Staff.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Staff.java @@ -9,16 +9,18 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; import net.Indyuce.mmoitems.stat.Staff_Spirit.StaffSpirit; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.MMORayTraceResult; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionSound; public class Staff extends UntargetedWeapon { public Staff(Player player, NBTItem item, Type type) { @@ -44,9 +46,9 @@ public class Staff extends UntargetedWeapon { double a = Math.toRadians(getPlayer().getEyeLocation().getYaw() + 160); Location loc = getPlayer().getEyeLocation().add(new Vector(Math.cos(a), 0, Math.sin(a)).multiply(.5)); - MMORayTraceResult trace = MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), range); + MMORayTraceResult trace = MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), range, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)); if (trace.hasHit()) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, getNBTItem(), trace.getHit()); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, getNBTItem(), trace.getHit()); trace.draw(loc, getPlayer().getEyeLocation().getDirection(), 2, (tick) -> tick.getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, tick, 0, .1, .1, .1, 0)); getPlayer().getWorld().playSound(getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_TWINKLE.toSound(), 2, 2); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/UntargetedWeapon.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/UntargetedWeapon.java index 2ea7a2f1..6695fd8a 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/UntargetedWeapon.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/UntargetedWeapon.java @@ -8,7 +8,7 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.interaction.util.DurabilityItem; import net.Indyuce.mmoitems.api.interaction.util.InteractItem; import net.Indyuce.mmoitems.api.interaction.weapon.Weapon; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public abstract class UntargetedWeapon extends Weapon { diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Whip.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Whip.java index 6baecd5b..20cf798c 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Whip.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Whip.java @@ -6,15 +6,17 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.MMORayTraceResult; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionSound; public class Whip extends UntargetedWeapon { public Whip(Player player, NBTItem item, Type type) { @@ -34,9 +36,9 @@ public class Whip extends UntargetedWeapon { double a = Math.toRadians(getPlayer().getEyeLocation().getYaw() + 160); Location loc = getPlayer().getEyeLocation().add(new Vector(Math.cos(a), 0, Math.sin(a)).multiply(.5)); - MMORayTraceResult trace = MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), range); + MMORayTraceResult trace = MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), range, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)); if (trace.hasHit()) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.PHYSICAL).applyEffectsAndDamage(stats, getNBTItem(), trace.getHit()); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.PHYSICAL).applyEffectsAndDamage(stats, getNBTItem(), trace.getHit()); trace.draw(loc, getPlayer().getEyeLocation().getDirection(), 2, (tick) -> tick.getWorld().spawnParticle(Particle.CRIT, tick, 0, .1, .1, .1, 0)); getPlayer().getWorld().playSound(getPlayer().getLocation(), VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 1, 2); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/BruteLuteAttack.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/BruteLuteAttack.java index 7d594368..2b8bbe55 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/BruteLuteAttack.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/BruteLuteAttack.java @@ -12,10 +12,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class BruteLuteAttack implements LuteAttackHandler { @@ -44,7 +44,7 @@ public class BruteLuteAttack implements LuteAttackHandler { for (Entity target : entities) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/CircularLuteAttack.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/CircularLuteAttack.java index 502b2cc5..29a5fc6c 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/CircularLuteAttack.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/CircularLuteAttack.java @@ -12,10 +12,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class CircularLuteAttack implements LuteAttackHandler { @@ -47,7 +47,7 @@ public class CircularLuteAttack implements LuteAttackHandler { for (Entity target : entities) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/LuteAttackHandler.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/LuteAttackHandler.java index 6e29f703..7d7ecfdf 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/LuteAttackHandler.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/LuteAttackHandler.java @@ -5,8 +5,8 @@ import java.util.Random; import org.bukkit.Sound; import org.bukkit.util.Vector; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; +import net.mmogroup.mmolib.api.item.NBTItem; public interface LuteAttackHandler { public void handle(TemporaryStats stats, NBTItem nbt, double attackDamage, double range, Vector weight, Sound sound); diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SimpleLuteAttack.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SimpleLuteAttack.java index ec809d03..e4c59676 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SimpleLuteAttack.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SimpleLuteAttack.java @@ -12,10 +12,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class SimpleLuteAttack implements LuteAttackHandler { @@ -44,7 +44,7 @@ public class SimpleLuteAttack implements LuteAttackHandler { for (Entity target : entities) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SlashLuteAttack.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SlashLuteAttack.java index 634db4ba..6cd47d8a 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SlashLuteAttack.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/SlashLuteAttack.java @@ -10,10 +10,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class SlashLuteAttack implements LuteAttackHandler { @@ -41,6 +41,6 @@ public class SlashLuteAttack implements LuteAttackHandler { for (Entity entity : MMOUtils.getNearbyChunkEntities(stats.getPlayer().getLocation())) if (entity.getLocation().distanceSquared(stats.getPlayer().getLocation()) < 40 && stats.getPlayer().getEyeLocation().getDirection().angle(entity.getLocation().toVector().subtract(stats.getPlayer().getLocation().toVector())) < Math.PI / 6 && MMOUtils.canDamage(stats.getPlayer(), entity)) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) entity); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) entity); } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/WaveLuteAttack.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/WaveLuteAttack.java index 7aa05a57..83b87c7d 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/WaveLuteAttack.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/lute/WaveLuteAttack.java @@ -12,10 +12,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class WaveLuteAttack implements LuteAttackHandler { @@ -46,7 +46,7 @@ public class WaveLuteAttack implements LuteAttackHandler { for (Entity target : entities) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); cancel(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/LightningSpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/LightningSpirit.java index bb1b2d94..65e62ae1 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/LightningSpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/LightningSpirit.java @@ -7,11 +7,11 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionSound; public class LightningSpirit implements StaffAttackHandler { @@ -28,7 +28,7 @@ public class LightningSpirit implements StaffAttackHandler { loc.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, loc, 0); for (Entity target : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); loc.getWorld().spawnParticle(Particle.EXPLOSION_NORMAL, loc, 16, 0, 0, 0, .1); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ManaSpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ManaSpirit.java index 3367a4a5..1e580b5a 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ManaSpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ManaSpirit.java @@ -13,10 +13,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class ManaSpirit implements StaffAttackHandler { @@ -46,11 +47,11 @@ public class ManaSpirit implements StaffAttackHandler { for (double item = 0; item < Math.PI * 2; item += Math.PI / 3.5) { Vector vec = MMOUtils.rotateFunc(new Vector(r * Math.cos(item), r * Math.sin(item), 0), loc); if (random.nextDouble() <= .6) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(vec), Color.AQUA); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc.clone().add(vec), Color.AQUA); } for (Entity target : targets) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0); cancel(); return; diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/NetherSpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/NetherSpirit.java index 8a1a3f87..c297fab2 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/NetherSpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/NetherSpirit.java @@ -12,10 +12,10 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class NetherSpirit implements StaffAttackHandler { @@ -42,7 +42,7 @@ public class NetherSpirit implements StaffAttackHandler { loc.getWorld().spawnParticle(Particle.SMOKE_NORMAL, loc, 0); for (Entity target : targets) if (MMOUtils.canDamage(stats.getPlayer(), loc, target)) { - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); loc.getWorld().spawnParticle(Particle.EXPLOSION_LARGE, loc, 0); cancel(); return; diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/StaffAttackHandler.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/StaffAttackHandler.java index adb7a805..0034eda8 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/StaffAttackHandler.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/StaffAttackHandler.java @@ -4,8 +4,8 @@ import java.util.Random; import org.bukkit.Location; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; +import net.mmogroup.mmolib.api.item.NBTItem; public interface StaffAttackHandler { public void handle(TemporaryStats stats, NBTItem nbt, double attackDamage, double range); diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/SunfireSpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/SunfireSpirit.java index 59a818db..074d6b26 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/SunfireSpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/SunfireSpirit.java @@ -13,11 +13,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionSound; public class SunfireSpirit implements StaffAttackHandler { @@ -44,7 +44,7 @@ public class SunfireSpirit implements StaffAttackHandler { loc.getWorld().playSound(loc, VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 2, 2); for (Entity target : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), target) && target.getLocation().distanceSquared(loc) <= 9) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); cancel(); break; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ThunderSpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ThunderSpirit.java index 8f11c634..83c51e56 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ThunderSpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/ThunderSpirit.java @@ -13,11 +13,11 @@ import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionSound; public class ThunderSpirit implements StaffAttackHandler { @@ -42,7 +42,7 @@ public class ThunderSpirit implements StaffAttackHandler { loc.getWorld().playSound(loc, VersionSound.ENTITY_FIREWORK_ROCKET_BLAST.toSound(), 2, 2); for (Entity target : MMOUtils.getNearbyChunkEntities(loc)) if (MMOUtils.canDamage(stats.getPlayer(), target) && target.getLocation().distanceSquared(loc) <= 9) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, (LivingEntity) target); cancel(); } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/VoidSpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/VoidSpirit.java index 54f677af..a544c971 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/VoidSpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/VoidSpirit.java @@ -7,10 +7,10 @@ import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class VoidSpirit implements StaffAttackHandler { @@ -32,6 +32,6 @@ public class VoidSpirit implements StaffAttackHandler { shulkerBullet.setVelocity(vec); } }.runTaskTimer(MMOItems.plugin, 0, 1); - MMOItems.plugin.getEntities().registerCustomEntity(shulkerBullet, new AttackResult(attackDamage, DamageType.WEAPON, DamageType.MAGICAL, DamageType.PROJECTILE), 0., stats, nbt); + MMOItems.plugin.getEntities().registerCustomEntity(shulkerBullet, new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.MAGICAL, DamageType.PROJECTILE), 0., stats, nbt); } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/XRaySpirit.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/XRaySpirit.java index bb7f929f..f22c9ce9 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/XRaySpirit.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/staff/XRaySpirit.java @@ -5,12 +5,13 @@ import org.bukkit.Location; import org.bukkit.Sound; import org.bukkit.util.Vector; -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.MMORayTraceResult; +import net.mmogroup.mmolib.api.item.NBTItem; public class XRaySpirit implements StaffAttackHandler { @@ -21,9 +22,9 @@ public class XRaySpirit implements StaffAttackHandler { double a = Math.toRadians(stats.getPlayer().getEyeLocation().getYaw() + 160); Location loc = stats.getPlayer().getEyeLocation().add(new Vector(Math.cos(a), 0, Math.sin(a)).multiply(.5)); - MMORayTraceResult trace = MMOItems.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), range); + MMORayTraceResult trace = MMOLib.plugin.getVersion().getWrapper().rayTrace(stats.getPlayer(), range, entity -> MMOUtils.canDamage(stats.getPlayer(), entity)); if (trace.hasHit()) - new AttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, trace.getHit()); + new ItemAttackResult(attackDamage, DamageType.WEAPON, DamageType.PROJECTILE, DamageType.MAGICAL).applyEffectsAndDamage(stats, nbt, trace.getHit()); trace.draw(loc, stats.getPlayer().getEyeLocation().getDirection(), 2, Color.BLACK); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 0.40f, 2); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/MMOItem.java b/src/main/java/net/Indyuce/mmoitems/api/item/MMOItem.java index 255b7940..502a4926 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/MMOItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/MMOItem.java @@ -10,6 +10,7 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class MMOItem { diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/NBTItem.java b/src/main/java/net/Indyuce/mmoitems/api/item/NBTItem.java deleted file mode 100644 index 4d0843de..00000000 --- a/src/main/java/net/Indyuce/mmoitems/api/item/NBTItem.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.Indyuce.mmoitems.api.item; - -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -import org.bukkit.inventory.ItemStack; - -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; - -public abstract class NBTItem { - protected ItemStack item; - - public NBTItem(ItemStack item) { - this.item = item; - } - - public ItemStack getItem() { - return item; - } - - public abstract String getString(String path); - - public abstract boolean hasTag(String path); - - public abstract boolean getBoolean(String path); - - public abstract double getDouble(String path); - - public abstract int getInteger(String path); - - public abstract NBTItem addTag(List tags); - - public abstract NBTItem removeTag(String... paths); - - public abstract Set getTags(); - - public abstract ItemStack toItem(); - - // TODO add NBTMeta for display name and lore for less calculations. - - public NBTItem addTag(ItemTag... tags) { - return addTag(Arrays.asList(tags)); - } - - public double getStat(ItemStat stat) { - return getStat(stat.getId()); - } - - public double getStat(String stat) { - return getDouble("MMOITEMS_" + stat); - } - - public boolean hasType() { - return hasTag("MMOITEMS_ITEM_TYPE"); - } - - public Type getType() { - String tag = getString("MMOITEMS_ITEM_TYPE"); - return !tag.equals("") ? MMOItems.plugin.getTypes().get(tag) : null; - } - - public static NBTItem get(ItemStack item) { - return MMOItems.plugin.getNMS().getNBTItem(item); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/build/MMOItemBuilder.java b/src/main/java/net/Indyuce/mmoitems/api/item/build/MMOItemBuilder.java index d0cb51ce..b9cc0f2d 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/build/MMOItemBuilder.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/build/MMOItemBuilder.java @@ -17,8 +17,9 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.item.MMOItem; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat.StringData; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class MMOItemBuilder { private final MMOItem mmoitem; @@ -99,6 +100,6 @@ public class MMOItemBuilder { item.setItemMeta(meta); - return MMOItems.plugin.getNMS().getNBTItem(item).addTag(tags).toItem(); + return MMOLib.plugin.getNMS().getNBTItem(item).addTag(tags).toItem(); } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/ConfigItem.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/ConfigItem.java index 9e66866e..d34c9564 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/ConfigItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/ConfigItem.java @@ -15,7 +15,7 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.api.item.plugin.crafting.CraftingRecipeDisplay; import net.Indyuce.mmoitems.api.item.plugin.crafting.QueueItemDisplay; import net.Indyuce.mmoitems.api.item.plugin.crafting.UpgradingRecipeDisplay; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class ConfigItem { private final String id; @@ -88,7 +88,7 @@ public class ConfigItem { } item.setItemMeta(meta); - // item = MMOItems.plugin.getNMS().getNBTItem(item).addTag(new + // item = MMOLib.plugin.getNMS().getNBTItem(item).addTag(new // ItemTag("itemId", id)).toItem(); } diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/CustomSkull.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/CustomSkull.java index 3d3f9790..f6879ceb 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/CustomSkull.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/CustomSkull.java @@ -14,7 +14,7 @@ import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class CustomSkull extends ConfigItem { private String textureValue; diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/CraftingRecipeDisplay.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/CraftingRecipeDisplay.java index 78570262..019e9d91 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/CraftingRecipeDisplay.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/CraftingRecipeDisplay.java @@ -17,10 +17,10 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.crafting.condition.Condition.ConditionInfo; import net.Indyuce.mmoitems.api.crafting.recipe.CraftingRecipe; import net.Indyuce.mmoitems.api.crafting.recipe.RecipeInfo; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.api.util.message.Message; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class CraftingRecipeDisplay extends ConfigItem { private static final DecimalFormat craftingTimeFormat = new DecimalFormat("0.#"); diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/QueueItemDisplay.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/QueueItemDisplay.java index fb3f0ca8..42286551 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/QueueItemDisplay.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/QueueItemDisplay.java @@ -12,11 +12,11 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.crafting.CraftingStatus.CraftingQueue.CraftingInfo; import net.Indyuce.mmoitems.api.crafting.recipe.CraftingRecipe; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; public class QueueItemDisplay extends ConfigItem { private static final long[] ms = { 1000, 60 * 1000, 60 * 60 * 1000, 24 * 60 * 60 * 1000 }; @@ -87,7 +87,7 @@ public class QueueItemDisplay extends ConfigItem { meta.setLore(lore); item.setItemMeta(meta); - return MMOItems.plugin.getNMS().getNBTItem(item).addTag(new ItemTag("queueId", crafting.getUniqueId().toString())).toItem(); + return MMOLib.plugin.getNMS().getNBTItem(item).addTag(new ItemTag("queueId", crafting.getUniqueId().toString())).toItem(); } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/UpgradingRecipeDisplay.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/UpgradingRecipeDisplay.java index 9cc4ff80..df8ad8dd 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/UpgradingRecipeDisplay.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/crafting/UpgradingRecipeDisplay.java @@ -12,13 +12,13 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.crafting.condition.Condition.ConditionInfo; import net.Indyuce.mmoitems.api.crafting.recipe.RecipeInfo; import net.Indyuce.mmoitems.api.crafting.recipe.UpgradingRecipe; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; public class UpgradingRecipeDisplay extends ConfigItem { public UpgradingRecipeDisplay() { @@ -97,7 +97,7 @@ public class UpgradingRecipeDisplay extends ConfigItem { meta.setLore(lore); item.setItemMeta(meta); - return MMOItems.plugin.getNMS().getNBTItem(item).addTag(new ItemTag("recipeId", recipe.getRecipe().getId())).toItem(); + return MMOLib.plugin.getNMS().getNBTItem(item).addTag(new ItemTag("recipeId", recipe.getRecipe().getId())).toItem(); } } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/IdentifiedItem.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/IdentifiedItem.java index 05e5e55a..61dba4d5 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/IdentifiedItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/IdentifiedItem.java @@ -7,7 +7,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.io.BukkitObjectInputStream; import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class IdentifiedItem { private NBTItem item; diff --git a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/UnidentifiedItem.java b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/UnidentifiedItem.java index 2714e919..b6e41cef 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/UnidentifiedItem.java +++ b/src/main/java/net/Indyuce/mmoitems/api/item/plugin/identify/UnidentifiedItem.java @@ -19,11 +19,12 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ItemTier; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.stat.type.DoubleStat.DoubleData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class UnidentifiedItem extends ConfigItem { public UnidentifiedItem(Type type) { @@ -100,7 +101,7 @@ public class UnidentifiedItem extends ConfigItem { /* * apply changes to item */ - ItemStack unidentified = MMOItems.plugin.getVersion().getWrapper().copyTexture(item).addTag(new ItemTag("MMOITEMS_UNIDENTIFIED_ITEM", serialize(item.getItem()))).toItem(); + ItemStack unidentified = MMOLib.plugin.getVersion().getWrapper().copyTexture(item).addTag(new ItemTag("MMOITEMS_UNIDENTIFIED_ITEM", serialize(item.getItem()))).toItem(); ItemMeta meta = unidentified.getItemMeta(); meta.addItemFlags(ItemFlag.values()); meta.setUnbreakable(true); diff --git a/src/main/java/net/Indyuce/mmoitems/api/player/PlayerData.java b/src/main/java/net/Indyuce/mmoitems/api/player/PlayerData.java index cab79e38..9108ae08 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/player/PlayerData.java +++ b/src/main/java/net/Indyuce/mmoitems/api/player/PlayerData.java @@ -26,17 +26,15 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; import net.Indyuce.mmoitems.api.Ability.CastingMode; -import net.Indyuce.mmoitems.api.ItemSet.SetBonuses; import net.Indyuce.mmoitems.api.ConfigFile; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.ItemSet; +import net.Indyuce.mmoitems.api.ItemSet.SetBonuses; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.crafting.CraftingStatus; import net.Indyuce.mmoitems.api.event.AbilityUseEvent; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.comp.flags.FlagPlugin.CustomFlag; import net.Indyuce.mmoitems.comp.inventory.PlayerInventory.EquippedItem; import net.Indyuce.mmoitems.particle.api.ParticleRunnable; @@ -45,6 +43,9 @@ import net.Indyuce.mmoitems.stat.data.AbilityData; import net.Indyuce.mmoitems.stat.data.EffectListData; import net.Indyuce.mmoitems.stat.data.ParticleData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class PlayerData { @@ -169,8 +170,8 @@ public class PlayerData { * one two handed item and one other item at the same time. this will */ public boolean areHandsFull() { - NBTItem main = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); - NBTItem off = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInOffHand()); + NBTItem main = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem off = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInOffHand()); return (main.getBoolean("MMOITEMS_TWO_HANDED") && (off.getItem() != null && off.getItem().getType() != Material.AIR)) || (off.getBoolean("MMOITEMS_TWO_HANDED") && (main.getItem() != null && main.getItem().getType() != Material.AIR)); } @@ -352,11 +353,11 @@ public class PlayerData { return itemAbilities.stream().filter(abilityData -> abilityData.getCastingMode() == castMode).collect(Collectors.toSet()); } - public AttackResult castAbilities(LivingEntity target, AttackResult result, CastingMode castMode) { + public ItemAttackResult castAbilities(LivingEntity target, ItemAttackResult result, CastingMode castMode) { return castAbilities(getStats().newTemporary(), target, result, castMode); } - public AttackResult castAbilities(TemporaryStats stats, LivingEntity target, AttackResult result, CastingMode castMode) { + public ItemAttackResult castAbilities(TemporaryStats stats, LivingEntity target, ItemAttackResult result, CastingMode castMode) { if (target == null) { if (!MMOItems.plugin.getFlags().isFlagAllowed(player, CustomFlag.MI_ABILITIES)) return result.setSuccessful(false); @@ -379,14 +380,14 @@ public class PlayerData { * cast */ public void cast(Ability ability) { - cast(getStats().newTemporary(), null, new AttackResult(true, DamageType.SKILL), new AbilityData(ability), true); + cast(getStats().newTemporary(), null, new ItemAttackResult(true, DamageType.SKILL), new AbilityData(ability), true); } public void cast(AbilityData data) { - cast(getStats().newTemporary(), null, new AttackResult(true, DamageType.SKILL), data, true); + cast(getStats().newTemporary(), null, new ItemAttackResult(true, DamageType.SKILL), data, true); } - public void cast(TemporaryStats stats, LivingEntity target, AttackResult result, AbilityData ability, boolean message) { + public void cast(TemporaryStats stats, LivingEntity target, ItemAttackResult result, AbilityData ability, boolean message) { AbilityUseEvent event = new AbilityUseEvent(this, ability, target); Bukkit.getPluginManager().callEvent(event); if (event.isCancelled()) @@ -394,7 +395,7 @@ public class PlayerData { /* * check if the player can cast the ability, if he can't just return a - * new instance of of AttackResult with false boolean + * new instance of of ItemAttackResult with false boolean */ if (!rpgPlayer.canCast(ability, message)) return; diff --git a/src/main/java/net/Indyuce/mmoitems/api/player/PlayerStats.java b/src/main/java/net/Indyuce/mmoitems/api/player/PlayerStats.java index 8bc555b1..779f4865 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/player/PlayerStats.java +++ b/src/main/java/net/Indyuce/mmoitems/api/player/PlayerStats.java @@ -49,7 +49,7 @@ public class PlayerStats { double t = 0; for (MMOItem item : playerData.getMMOItems()) - t += item.getNBTItem().getStat(stat); + t += item.getNBTItem().getStat(stat.getId()); if (t != 0) getInstance(stat).set("item", t); diff --git a/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java b/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java index 690fc545..815e3d6d 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java +++ b/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java @@ -7,10 +7,10 @@ import org.bukkit.Sound; import org.bukkit.entity.Player; import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.data.AbilityData; import net.Indyuce.mmoitems.stat.type.Conditional; +import net.mmogroup.mmolib.api.item.NBTItem; public abstract class RPGPlayer { private final PlayerData playerData; diff --git a/src/main/java/net/Indyuce/mmoitems/api/player/damage/AttackResult.java b/src/main/java/net/Indyuce/mmoitems/api/player/damage/AttackResult.java deleted file mode 100644 index c2f696c5..00000000 --- a/src/main/java/net/Indyuce/mmoitems/api/player/damage/AttackResult.java +++ /dev/null @@ -1,204 +0,0 @@ -package net.Indyuce.mmoitems.api.player.damage; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Random; - -import org.apache.commons.lang.Validate; -import org.bukkit.Particle; -import org.bukkit.Sound; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; - -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.ElementalAttack; -import net.Indyuce.mmoitems.api.Ability.CastingMode; -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageInfo; -import net.Indyuce.mmoitems.stat.type.ItemStat; - -public class AttackResult { - private double damage; - private boolean successful; - - private final List damageTypes; - - private static final Random random = new Random(); - - public AttackResult(boolean successful, DamageType... types) { - this(successful, 0, types); - } - - public AttackResult(double damage, DamageType... types) { - this(true, damage, types); - } - - public AttackResult(boolean successful, double damage, DamageType... types) { - this(successful, damage, Arrays.asList(types)); - } - - public AttackResult(boolean successful, double damage, List types) { - Validate.isTrue(types.size() > 0, "Attack must have at least one damage type!"); - - this.successful = successful; - this.damage = damage; - - this.damageTypes = types; - } - - public AttackResult(AttackResult result) { - damage = result.damage; - successful = result.successful; - damageTypes = new ArrayList<>(result.damageTypes); - } - - public List getTypes() { - return damageTypes; - } - - public boolean hasType(DamageType type) { - return damageTypes.contains(type); - } - - public boolean isSuccessful() { - return successful; - } - - public double getDamage() { - return damage; - } - - public void addDamage(double value) { - damage += value; - } - - public void addRelativeDamage(double coef) { - multiplyDamage(1 + coef); - } - - public AttackResult multiplyDamage(double coef) { - damage *= coef; - return this; - } - - public AttackResult setSuccessful(boolean successful) { - this.successful = successful; - return this; - } - - public AttackResult clone() { - return new AttackResult(this); - } - - public void damage(TemporaryStats stats, LivingEntity target) { - MMOItems.plugin.getDamage().damage(stats.getPlayer(), target, this); - } - - public void applyEffectsAndDamage(TemporaryStats stats, NBTItem item, LivingEntity target) { - MMOItems.plugin.getDamage().damage(stats.getPlayer(), target, applyEffects(stats, item, target)); - } - - /* - * this methods makes applying ALL effects including elemental damage easier - * for untargeted weapons like staffs. - */ - public AttackResult applyEffects(TemporaryStats stats, NBTItem item, LivingEntity target) { - if (hasType(DamageType.WEAPON)) { - applyElementalEffects(stats, item, target); - applyOnHitEffects(stats, target); - } else if (hasType(DamageType.SKILL)) - applySkillEffects(stats, target); - return this; - } - - public AttackResult applySkillEffects(TemporaryStats stats, LivingEntity target) { - - for (DamageType type : DamageType.values()) - if (hasType(type)) - addRelativeDamage(stats.getStat(type.getStat()) / 100); - - addRelativeDamage(stats.getStat(target instanceof Player ? ItemStat.PVP_DAMAGE : ItemStat.PVE_DAMAGE) / 100); - if (MMOUtils.isUndead(target)) - addRelativeDamage(stats.getStat(ItemStat.UNDEAD_DAMAGE) / 100); - - return this; - } - - public AttackResult applyElementalEffects(TemporaryStats stats, NBTItem item, LivingEntity target) { - new ElementalAttack(item, this).applyElementalArmor(target).apply(stats); - return this; - } - - /* - * vanilla melee weapons have no NBTTitems so this method only provides for - * non-weapon specific effects like critical strikes and extra stat damage - */ - public AttackResult applyOnHitEffects(TemporaryStats stats, LivingEntity target) { - - // abilities - stats.getPlayerData().castAbilities(stats, target, this, CastingMode.ON_HIT); - - // extra damage - for (DamageType type : DamageType.values()) - if (hasType(type)) - addRelativeDamage(stats.getStat(type.getStat()) / 100); - - addRelativeDamage(stats.getStat(target instanceof Player ? ItemStat.PVP_DAMAGE : ItemStat.PVE_DAMAGE) / 100); - if (MMOUtils.isUndead(target)) - addRelativeDamage(stats.getStat(ItemStat.UNDEAD_DAMAGE) / 100); - - // critical strikes - if (random.nextDouble() <= stats.getStat(ItemStat.CRITICAL_STRIKE_CHANCE) / 100) { - multiplyDamage(MMOItems.plugin.getConfig().getDouble("crit-coefficient") + stats.getStat(ItemStat.CRITICAL_STRIKE_POWER) / 100); - target.getWorld().playSound(target.getLocation(), Sound.ENTITY_PLAYER_ATTACK_CRIT, 1, 1); - target.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, target.getLocation().add(0, 1, 0), 16, 0, 0, 0, .1); - } - - return this; - } - - public DamageInfo toDamageInfo() { - return new DamageInfo(damage, damageTypes); - } - - public enum DamageType { - - /* - * skills or abilities dealing magic damage - */ - MAGICAL(ItemStat.MAGIC_DAMAGE), - - /* - * skills or abilities dealing physical damage - */ - PHYSICAL(ItemStat.PHYSICAL_DAMAGE), - - /* - * weapons dealing damage - */ - WEAPON(ItemStat.WEAPON_DAMAGE), - - /* - * skill damage - */ - SKILL(ItemStat.SKILL_DAMAGE), - - /* - * projectile based weapons or skills - */ - PROJECTILE(ItemStat.PROJECTILE_DAMAGE); - - private final ItemStat stat; - - private DamageType(ItemStat stat) { - this.stat = stat; - } - - public ItemStat getStat() { - return stat; - } - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/api/util/IsSimilar.java b/src/main/java/net/Indyuce/mmoitems/api/util/IsSimilar.java index e914b71c..09743ebd 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/util/IsSimilar.java +++ b/src/main/java/net/Indyuce/mmoitems/api/util/IsSimilar.java @@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.api.util; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class IsSimilar { public static boolean check(ItemStack i1, ItemStack i2) { diff --git a/src/main/java/net/Indyuce/mmoitems/api/util/MMORayTraceResult.java b/src/main/java/net/Indyuce/mmoitems/api/util/MMORayTraceResult.java deleted file mode 100644 index 6ec63cad..00000000 --- a/src/main/java/net/Indyuce/mmoitems/api/util/MMORayTraceResult.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.Indyuce.mmoitems.api.util; - -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.Particle; -import org.bukkit.entity.LivingEntity; -import org.bukkit.util.Consumer; -import org.bukkit.util.Vector; - -import net.Indyuce.mmoitems.MMOItems; - -public class MMORayTraceResult { - private final LivingEntity entity; - private final double range; - - public MMORayTraceResult(LivingEntity entity, double range) { - this.range = range; - this.entity = entity; - } - - public boolean hasHit() { - return entity != null; - } - - public LivingEntity getHit() { - return entity; - } - - public double getRange() { - return range; - } - - public void draw(Location source, Vector vec, double c, Color color) { - draw(source, vec, c, (loc) -> MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, loc, color)); - } - - public void draw(Location loc, Vector vec, double c, Consumer tick) { - vec = vec.multiply(1 / c); - for (int j = 0; j < range * c; j++) - tick.accept(loc.add(vec)); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/api/util/message/PlayerMessage.java b/src/main/java/net/Indyuce/mmoitems/api/util/message/PlayerMessage.java index 80023921..aba43d19 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/util/message/PlayerMessage.java +++ b/src/main/java/net/Indyuce/mmoitems/api/util/message/PlayerMessage.java @@ -7,6 +7,7 @@ import org.bukkit.entity.Player; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmoitems.MMOItems; +import net.mmogroup.mmolib.MMOLib; public class PlayerMessage { private String message; @@ -37,15 +38,14 @@ public class PlayerMessage { return; if (MMOItems.plugin.getConfig().getBoolean("action-bar-display." + actionBarBooleanPath)) { - if(Bukkit.getPluginManager().isPluginEnabled("MMOCore")) + if (Bukkit.getPluginManager().isPluginEnabled("MMOCore")) PlayerData.get(player).setActionBarTimeOut(60); - - MMOItems.plugin.getNMS().sendActionBar(player, message); - } - else + + MMOLib.plugin.getNMS().sendActionBar(player, message); + } else player.sendMessage(message); } - + @Override public String toString() { return message; diff --git a/src/main/java/net/Indyuce/mmoitems/command/MMOItemsCommand.java b/src/main/java/net/Indyuce/mmoitems/command/MMOItemsCommand.java index a096acdd..43b8fa1b 100644 --- a/src/main/java/net/Indyuce/mmoitems/command/MMOItemsCommand.java +++ b/src/main/java/net/Indyuce/mmoitems/command/MMOItemsCommand.java @@ -31,7 +31,6 @@ import net.Indyuce.mmoitems.api.PluginUpdate; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.crafting.CraftingStation; import net.Indyuce.mmoitems.api.drop.DropItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.identify.IdentifiedItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.RPGPlayer; @@ -46,7 +45,9 @@ import net.Indyuce.mmoitems.stat.Lute_Attack_Effect.LuteAttackEffect; import net.Indyuce.mmoitems.stat.Staff_Spirit.StaffSpirit; import net.Indyuce.mmoitems.stat.data.AbilityData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class MMOItemsCommand implements CommandExecutor { private static final Random random = new Random(); @@ -91,7 +92,7 @@ public class MMOItemsCommand implements CommandExecutor { return true; } if (args[1].equalsIgnoreCase("blocks")) { - if (MMOItems.plugin.getVersion().isStrictlyHigher(1, 12)) + if (MMOLib.plugin.getVersion().isStrictlyHigher(1, 12)) new BlockBrowser((Player) sender).open(); else sender.sendMessage(ChatColor.RED + "Blocks are only for 1.13+."); return true; @@ -260,7 +261,7 @@ public class MMOItemsCommand implements CommandExecutor { Player player = (Player) sender; player.sendMessage(ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "--------------------------------------------------"); - for (String s : MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getTags()) + for (String s : MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getTags()) player.sendMessage("- " + s); } // ================================================================================================================================== @@ -274,7 +275,7 @@ public class MMOItemsCommand implements CommandExecutor { if (args.length < 2) return true; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); player.sendMessage(ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "--------------------------------------------------"); player.sendMessage(ChatColor.AQUA + "Boolean = " + ChatColor.RESET + item.getBoolean("MMOITEMS_" + args[1].toUpperCase().replace("-", "_"))); player.sendMessage(ChatColor.AQUA + "Double = " + ChatColor.RESET + item.getDouble("MMOITEMS_" + args[1].toUpperCase().replace("-", "_"))); @@ -291,7 +292,7 @@ public class MMOItemsCommand implements CommandExecutor { if (args.length < 3) return true; try { - player.getInventory().setItemInMainHand(MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()) + player.getInventory().setItemInMainHand(MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()) .addTag(new ItemTag(args[1].toUpperCase().replace("-", "_"), args[2].replace("%%", " "))).toItem()); player.sendMessage("Successfully set tag."); @@ -307,7 +308,7 @@ public class MMOItemsCommand implements CommandExecutor { } Player player = (Player) sender; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); if (item.getType() == null) { sender.sendMessage(MMOItems.plugin.getPrefix() + "Couldn't unidentify the item you are holding."); return true; @@ -329,7 +330,7 @@ public class MMOItemsCommand implements CommandExecutor { } Player player = (Player) sender; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); String tag = item.getString("MMOITEMS_UNIDENTIFIED_ITEM"); if (tag.equals("")) { sender.sendMessage(MMOItems.plugin.getPrefix() + "The item you are holding is already identified."); @@ -520,7 +521,7 @@ public class MMOItemsCommand implements CommandExecutor { String nameFormat = config.getConfigurationSection(s).contains("name") ? " " + ChatColor.WHITE + "(" + ChatColor.translateAlternateColorCodes('&', config.getString(s + ".name")) + ChatColor.WHITE + ")" : ""; - MMOItems.plugin.getNMS().sendJson((Player) sender, + MMOLib.plugin.getNMS().sendJson((Player) sender, "{\"text\":\"* " + ChatColor.GREEN + s + nameFormat + "\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/mi edit " + type.getId() + " " + s + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"Click to edit " + (nameFormat.equals("") ? s : ChatColor.translateAlternateColorCodes('&', config.getString(s + ".name"))) + ChatColor.WHITE + ".\",\"color\":\"white\"}}}"); @@ -538,14 +539,14 @@ public class MMOItemsCommand implements CommandExecutor { if (sender instanceof Player) { sender.sendMessage(""); sender.sendMessage("Spigot Javadoc Links:"); - MMOItems.plugin.getNMS().sendJson((Player) sender, "[{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + MMOLib.plugin.getNMS().sendJson((Player) sender, "[{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + "Materials/Blocks\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + ChatColor.GREEN + "Click to open webpage.\"}]}}},{\"text\":\" " + ChatColor.LIGHT_PURPLE + "- \"},{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + "Potion Effects\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + ChatColor.GREEN + "Click to open webpage.\"}]}}},{\"text\":\" " + ChatColor.LIGHT_PURPLE + "- \"},{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + "Sounds\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + ChatColor.GREEN + "Click to open webpage.\"}]}}}]"); - MMOItems.plugin.getNMS().sendJson((Player) sender, "[{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + MMOLib.plugin.getNMS().sendJson((Player) sender, "[{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + "Entities/Mobs\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + ChatColor.GREEN + "Click to open webpage.\"}]}}},{\"text\":\" " + ChatColor.LIGHT_PURPLE + "- \"},{\"text\":\"" + ChatColor.UNDERLINE + ChatColor.GREEN + "Enchantments\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" @@ -631,8 +632,8 @@ public class MMOItemsCommand implements CommandExecutor { } if (item.hasItemMeta()) { - if (MMOItems.plugin.getVersion().getWrapper().isDamaged(item, item.getItemMeta())) - config.getConfig().set(name + ".durability", MMOItems.plugin.getVersion().getWrapper().getDurability(item, item.getItemMeta())); + if (MMOLib.plugin.getVersion().getWrapper().isDamaged(item, item.getItemMeta())) + config.getConfig().set(name + ".durability", MMOLib.plugin.getVersion().getWrapper().getDurability(item, item.getItemMeta())); if (item.getItemMeta().hasDisplayName()) config.getConfig().set(name + ".name", item.getItemMeta().getDisplayName().replace("§", "&")); if (item.getItemMeta().hasLore()) { @@ -647,10 +648,10 @@ public class MMOItemsCommand implements CommandExecutor { if (!skullTextureUrl.equals("")) config.getConfig().set(name + ".skull-texture", skullTextureUrl); } - if (MMOItems.plugin.getNMS().getNBTItem(item).getBoolean("Unbreakable")) + if (MMOLib.plugin.getNMS().getNBTItem(item).getBoolean("Unbreakable")) config.getConfig().set(name + ".unbreakable", true); for (Enchantment enchant : item.getEnchantments().keySet()) - config.getConfig().set(name + ".enchants." + MMOItems.plugin.getVersion().getWrapper().getName(enchant), item.getEnchantmentLevel(enchant)); + config.getConfig().set(name + ".enchants." + MMOLib.plugin.getVersion().getWrapper().getName(enchant), item.getEnchantmentLevel(enchant)); } config.getConfig().set(name + ".material", args[0].equalsIgnoreCase("load") ? item.getType().name() : type.getItem().getType().name()); @@ -824,7 +825,7 @@ public class MMOItemsCommand implements CommandExecutor { long old = System.currentTimeMillis(); new ItemEdition((Player) sender, type, args[2], item).open(); long ms = System.currentTimeMillis() - old; - MMOItems.plugin.getNMS().sendActionBar((Player) sender, + MMOLib.plugin.getNMS().sendActionBar((Player) sender, ChatColor.YELLOW + "Took " + ms + "ms (" + new DecimalFormat("#.##").format(ms / 50.) + "tick" + (ms > 99 ? "s" : "") + ") to open the menu."); } // ================================================================================================================================== @@ -1009,7 +1010,7 @@ public class MMOItemsCommand implements CommandExecutor { return true; if (unidentifiedChance > 0 && random.nextDouble() < unidentifiedChance / 100) - item = type.getUnidentifiedTemplate().newBuilder(MMOItems.plugin.getNMS().getNBTItem(item)).build(); + item = type.getUnidentifiedTemplate().newBuilder(MMOLib.plugin.getNMS().getNBTItem(item)).build(); // message if (sender != target) diff --git a/src/main/java/net/Indyuce/mmoitems/command/PluginHelp.java b/src/main/java/net/Indyuce/mmoitems/command/PluginHelp.java index a59e622d..ff0cf687 100644 --- a/src/main/java/net/Indyuce/mmoitems/command/PluginHelp.java +++ b/src/main/java/net/Indyuce/mmoitems/command/PluginHelp.java @@ -4,8 +4,8 @@ import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.util.AltChar; +import net.mmogroup.mmolib.MMOLib; public class PluginHelp { private static final int commandsPerPage = 8; @@ -35,7 +35,7 @@ public class PluginHelp { while (n++ < commandsPerPage) sender.sendMessage(""); - MMOItems.plugin.getNMS().sendJson((Player) sender, "[{\"text\":\"" + ChatColor.DARK_GRAY + ChatColor.STRIKETHROUGH + "------------------" + ChatColor.DARK_GRAY + "[\"},{\"text\":\"" + ChatColor.RED + "««\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/mi help " + (page - 1) + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"Previous Page\"}}},{\"text\":\"" + ChatColor.DARK_GRAY + "]" + ChatColor.STRIKETHROUGH + "---" + ChatColor.DARK_GRAY + "(" + ChatColor.GREEN + page + ChatColor.DARK_GRAY + "/" + ChatColor.GREEN + getMaxPage() + ChatColor.DARK_GRAY + ")" + ChatColor.STRIKETHROUGH + "---" + ChatColor.DARK_GRAY + "[\"},{\"text\":\"" + ChatColor.GREEN + "»»\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/mi help " + (page + 1) + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"Next Page\"}}},{\"text\":\"" + ChatColor.DARK_GRAY + "]" + ChatColor.STRIKETHROUGH + "-----------------\"}]"); + MMOLib.plugin.getNMS().sendJson((Player) sender, "[{\"text\":\"" + ChatColor.DARK_GRAY + ChatColor.STRIKETHROUGH + "------------------" + ChatColor.DARK_GRAY + "[\"},{\"text\":\"" + ChatColor.RED + "««\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/mi help " + (page - 1) + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"Previous Page\"}}},{\"text\":\"" + ChatColor.DARK_GRAY + "]" + ChatColor.STRIKETHROUGH + "---" + ChatColor.DARK_GRAY + "(" + ChatColor.GREEN + page + ChatColor.DARK_GRAY + "/" + ChatColor.GREEN + getMaxPage() + ChatColor.DARK_GRAY + ")" + ChatColor.STRIKETHROUGH + "---" + ChatColor.DARK_GRAY + "[\"},{\"text\":\"" + ChatColor.GREEN + "»»\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/mi help " + (page + 1) + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"Next Page\"}}},{\"text\":\"" + ChatColor.DARK_GRAY + "]" + ChatColor.STRIKETHROUGH + "-----------------\"}]"); } else { for (PluginCommand command : PluginCommand.values()) command.sendAsMessage(sender); @@ -99,7 +99,7 @@ public class PluginHelp { private void sendAsJson(Player player) { if (isCommand()) - MMOItems.plugin.getNMS().sendJson(player, "{\"text\":\"" + ChatColor.LIGHT_PURPLE + AltChar.listDash + ChatColor.GRAY + " /" + usage + "\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"" + help + "\"}}}"); + MMOLib.plugin.getNMS().sendJson(player, "{\"text\":\"" + ChatColor.LIGHT_PURPLE + AltChar.listDash + ChatColor.GRAY + " /" + usage + "\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"" + help + "\"}}}"); else player.sendMessage(ChatColor.LIGHT_PURPLE + usage); } diff --git a/src/main/java/net/Indyuce/mmoitems/command/UpdateItemCommand.java b/src/main/java/net/Indyuce/mmoitems/command/UpdateItemCommand.java index 83ec5dec..7a92b6e7 100644 --- a/src/main/java/net/Indyuce/mmoitems/command/UpdateItemCommand.java +++ b/src/main/java/net/Indyuce/mmoitems/command/UpdateItemCommand.java @@ -10,9 +10,10 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.gui.edition.ItemUpdaterEdition; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class UpdateItemCommand implements CommandExecutor { @Override @@ -27,7 +28,7 @@ public class UpdateItemCommand implements CommandExecutor { Player player = (Player) sender; if (args.length < 1) { - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); // for items generated before 2.0 if (!item.hasTag("MMOITEMS_ITEM_TYPE")) { diff --git a/src/main/java/net/Indyuce/mmoitems/comp/AdvancedEnchantmentsHook.java b/src/main/java/net/Indyuce/mmoitems/comp/AdvancedEnchantmentsHook.java index 1a439c9f..d8e08d65 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/AdvancedEnchantmentsHook.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/AdvancedEnchantmentsHook.java @@ -4,13 +4,13 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import n3kas.ae.api.EnchantApplyEvent; -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class AdvancedEnchantmentsHook implements Listener { @EventHandler public void a(EnchantApplyEvent event) { - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(event.getItem()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(event.getItem()); if (item.getType() != null && item.getBoolean("MMOITEMS_DISABLE_ADVANCED_ENCHANTS")) event.setCancelled(true); } diff --git a/src/main/java/net/Indyuce/mmoitems/comp/RealDualWieldHook.java b/src/main/java/net/Indyuce/mmoitems/comp/RealDualWieldHook.java index cbd701e5..b1918bda 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/RealDualWieldHook.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/RealDualWieldHook.java @@ -9,14 +9,14 @@ import org.bukkit.inventory.EquipmentSlot; import com.evill4mer.RealDualWield.Api.PlayerDamageEntityWithOffhandEvent; -import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.TypeSet; import net.Indyuce.mmoitems.api.interaction.weapon.Weapon; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class RealDualWieldHook implements Listener { @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) @@ -31,7 +31,7 @@ public class RealDualWieldHook implements Listener { // custom damage check LivingEntity target = (LivingEntity) event.getEntity(); - if (MMOItems.plugin.getDamage().findInfo(target) != null) + if (MMOLib.plugin.getDamage().findInfo(target) != null) return; Player player = event.getPlayer(); @@ -42,9 +42,9 @@ public class RealDualWieldHook implements Listener { * be cancelled before anything is applied */ PlayerData playerData = PlayerData.get(player); - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); - NBTItem offhandItem = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInOffHand()); - AttackResult result = new AttackResult(event.getDamage(), DamageType.WEAPON, DamageType.PHYSICAL); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem offhandItem = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInOffHand()); + ItemAttackResult result = new ItemAttackResult(event.getDamage(), DamageType.WEAPON, DamageType.PHYSICAL); if (item.hasType()) { Weapon weapon = new Weapon(playerData, item, item.getType()); diff --git a/src/main/java/net/Indyuce/mmoitems/comp/inventory/OrnamentPlayerInventory.java b/src/main/java/net/Indyuce/mmoitems/comp/inventory/OrnamentPlayerInventory.java index 5d7c7ed0..6a489247 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/inventory/OrnamentPlayerInventory.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/inventory/OrnamentPlayerInventory.java @@ -14,8 +14,9 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type.EquipmentSlot; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class OrnamentPlayerInventory implements PlayerInventory, Listener { public OrnamentPlayerInventory() { @@ -33,7 +34,7 @@ public class OrnamentPlayerInventory implements PlayerInventory, Listener { for (ItemStack item : player.getInventory().getContents()) { NBTItem nbtItem; - if (item != null && (nbtItem = MMOItems.plugin.getNMS().getNBTItem(item)).hasType() && nbtItem.getType().getEquipmentType() == EquipmentSlot.ANY) + if (item != null && (nbtItem = MMOLib.plugin.getNMS().getNBTItem(item)).hasType() && nbtItem.getType().getEquipmentType() == EquipmentSlot.ANY) list.add(new EquippedItem(nbtItem, EquipmentSlot.ANY)); } diff --git a/src/main/java/net/Indyuce/mmoitems/comp/inventory/PlayerInventory.java b/src/main/java/net/Indyuce/mmoitems/comp/inventory/PlayerInventory.java index 6a991c21..835cd760 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/inventory/PlayerInventory.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/inventory/PlayerInventory.java @@ -5,10 +5,10 @@ import java.util.List; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.Type.EquipmentSlot; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public interface PlayerInventory { public List getInventory(Player player); @@ -18,7 +18,7 @@ public interface PlayerInventory { private final EquipmentSlot slot; public EquippedItem(ItemStack item, EquipmentSlot slot) { - this(MMOItems.plugin.getNMS().getNBTItem(item), slot); + this(MMOLib.plugin.getNMS().getNBTItem(item), slot); } public EquippedItem(NBTItem item, EquipmentSlot slot) { diff --git a/src/main/java/net/Indyuce/mmoitems/comp/inventory/RPGInventoryHook.java b/src/main/java/net/Indyuce/mmoitems/comp/inventory/RPGInventoryHook.java index 8905d9eb..81747cdd 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/inventory/RPGInventoryHook.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/inventory/RPGInventoryHook.java @@ -12,8 +12,9 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type.EquipmentSlot; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; import ru.endlesscode.rpginventory.api.InventoryAPI; public class RPGInventoryHook implements PlayerInventory, Listener { @@ -44,7 +45,7 @@ public class RPGInventoryHook implements PlayerInventory, Listener { if (ornaments) for (ItemStack item : player.getInventory().getContents()) { NBTItem nbtItem; - if (item != null && (nbtItem = MMOItems.plugin.getNMS().getNBTItem(item)).hasType() && nbtItem.getType().getEquipmentType() == EquipmentSlot.ANY) + if (item != null && (nbtItem = MMOLib.plugin.getNMS().getNBTItem(item)).hasType() && nbtItem.getType().getEquipmentType() == EquipmentSlot.ANY) list.add(new EquippedItem(nbtItem, EquipmentSlot.ANY)); } diff --git a/src/main/java/net/Indyuce/mmoitems/comp/itemglow/ItemGlowListener.java b/src/main/java/net/Indyuce/mmoitems/comp/itemglow/ItemGlowListener.java index 978d3321..060ef5ab 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/itemglow/ItemGlowListener.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/itemglow/ItemGlowListener.java @@ -13,7 +13,7 @@ import org.inventivetalent.glow.GlowAPI; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ItemTier; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class ItemGlowListener implements Listener { diff --git a/src/main/java/net/Indyuce/mmoitems/comp/itemglow/NoGlowListener.java b/src/main/java/net/Indyuce/mmoitems/comp/itemglow/NoGlowListener.java index 2483a029..4e30c379 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/itemglow/NoGlowListener.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/itemglow/NoGlowListener.java @@ -6,7 +6,7 @@ import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class NoGlowListener implements Listener { diff --git a/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOCoreHook.java b/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOCoreHook.java index aaaa1887..d6cdc337 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOCoreHook.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOCoreHook.java @@ -1,10 +1,7 @@ package net.Indyuce.mmoitems.comp.mmocore; -import java.util.stream.Collectors; - import org.bukkit.Bukkit; import org.bukkit.Material; -import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; @@ -17,16 +14,13 @@ import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; import net.Indyuce.mmocore.api.player.stats.StatType; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.player.RPGPlayer; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.comp.mmocore.stat.Required_Attribute; import net.Indyuce.mmoitems.comp.rpg.RPGHandler; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageHandler; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageInfo; import net.Indyuce.mmoitems.stat.type.DoubleStat; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; -public class MMOCoreHook implements RPGHandler, Listener, DamageHandler { +public class MMOCoreHook implements RPGHandler, Listener { private final ItemStat manaRegen = new DoubleStat(VersionMaterial.LAPIS_LAZULI.toItem(), "Mana Regeneration", new String[] { "Increases mana regen." }, "mana-regeneration"); private final ItemStat maxStamina = new DoubleStat(VersionMaterial.LIGHT_BLUE_DYE.toItem(), "Max Stamina", new String[] { "Adds stamina to your max stamina bar." }, "max-stamina"); @@ -41,12 +35,6 @@ public class MMOCoreHook implements RPGHandler, Listener, DamageHandler { Bukkit.getPluginManager().registerEvents(this, MMOItems.plugin); - /* - * register custom damage - */ - MMOCore.plugin.damage.registerHandler(new MMOItemsDamageHandler()); - MMOItems.plugin.getDamage().registerHandler(this); - MMOItems.plugin.getStats().register("MANA_REGENERATION", manaRegen); MMOItems.plugin.getStats().register("MAX_STAMINA", maxStamina); MMOItems.plugin.getStats().register("STAMINA_REGENERATION", staminaRegen); @@ -63,17 +51,6 @@ public class MMOCoreHook implements RPGHandler, Listener, DamageHandler { MMOItems.plugin.getUpgrades().reload(); } - @Override - public boolean hasDamage(Entity entity) { - return MMOCore.plugin.damage.hasDamage(entity); - } - - @Override - public DamageInfo getDamage(Entity entity) { - net.Indyuce.mmocore.comp.rpg.damage.DamageInfo info = MMOCore.plugin.damage.getDamage(entity); - return new DamageInfo(info.getValue(), info.getTypes().stream().map((type) -> DamageType.valueOf(type.name())).collect(Collectors.toList())); - } - @Override public void refreshStats(net.Indyuce.mmoitems.api.player.PlayerData data) { PlayerData rpgdata = PlayerData.get(data.getPlayer()); diff --git a/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOItemsDamageHandler.java b/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOItemsDamageHandler.java deleted file mode 100644 index 30433c1b..00000000 --- a/src/main/java/net/Indyuce/mmoitems/comp/mmocore/MMOItemsDamageHandler.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.Indyuce.mmoitems.comp.mmocore; - -import java.util.stream.Collectors; - -import org.bukkit.entity.Entity; - -import net.Indyuce.mmocore.comp.rpg.damage.DamageHandler; -import net.Indyuce.mmocore.comp.rpg.damage.DamageInfo; -import net.Indyuce.mmocore.comp.rpg.damage.DamageInfo.DamageType; -import net.Indyuce.mmoitems.MMOItems; - -public class MMOItemsDamageHandler implements DamageHandler { - - @Override - public DamageInfo getDamage(Entity entity) { - net.Indyuce.mmoitems.comp.rpg.damage.DamageInfo result = MMOItems.plugin.getDamage().getDamage(entity); - return new DamageInfo(result.getValue(), result.getTypes().stream().map((type) -> DamageType.valueOf(type.name())).collect(Collectors.toSet())); - } - - @Override - public boolean hasDamage(Entity entity) { - return MMOItems.plugin.getDamage().isDamaged(entity); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/comp/mmocore/load/SmeltMMOItemExperienceSource.java b/src/main/java/net/Indyuce/mmoitems/comp/mmocore/load/SmeltMMOItemExperienceSource.java index ce044e35..504e4819 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/mmocore/load/SmeltMMOItemExperienceSource.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/mmocore/load/SmeltMMOItemExperienceSource.java @@ -14,8 +14,8 @@ import net.Indyuce.mmocore.api.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.api.load.MMOLineConfig; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.manager.profession.ExperienceManager; -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class SmeltMMOItemExperienceSource extends SpecificExperienceSource { private final String type, id; @@ -40,7 +40,7 @@ public class SmeltMMOItemExperienceSource extends SpecificExperienceSource targets = new ArrayList<>(); targets.add(target == null || selfOnly ? stats.getPlayer() : target); diff --git a/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsDamageHandler.java b/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsDamageHandler.java deleted file mode 100644 index 9030f66a..00000000 --- a/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsDamageHandler.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.Indyuce.mmoitems.comp.mythicmobs; - -import org.bukkit.entity.Entity; - -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageHandler; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageInfo; - -public class MythicMobsDamageHandler implements DamageHandler { - - @Override - public DamageInfo getDamage(Entity entity) { - return new DamageInfo(0, DamageType.MAGICAL, DamageType.SKILL); - } - - @Override - public boolean hasDamage(Entity entity) { - return entity.hasMetadata("skill-damage"); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsHook.java b/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsHook.java index 7c89f2d9..57cabaaf 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsHook.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/mythicmobs/MythicMobsHook.java @@ -24,7 +24,6 @@ import net.Indyuce.mmoitems.api.drop.DropItem; public class MythicMobsHook implements Listener { public MythicMobsHook() { MythicMobs.inst().getPlaceholderManager().register("mmoitems.skill", Placeholder.meta((metadata, arg) -> String.valueOf(PlayerData.get(metadata.getCaster().getEntity().getUniqueId()).getSkillData().getCachedModifier(arg)))); - MMOItems.plugin.getDamage().registerHandler(new MythicMobsDamageHandler()); } @EventHandler diff --git a/src/main/java/net/Indyuce/mmoitems/comp/placeholderapi/MMOItemsPlaceholders.java b/src/main/java/net/Indyuce/mmoitems/comp/placeholderapi/MMOItemsPlaceholders.java index 41719563..80e9df0d 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/placeholderapi/MMOItemsPlaceholders.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/placeholderapi/MMOItemsPlaceholders.java @@ -8,11 +8,12 @@ import org.bukkit.inventory.ItemStack; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class MMOItemsPlaceholders extends PlaceholderExpansion { private DecimalFormat oneDigit = new DecimalFormat("0.#"); @@ -43,13 +44,13 @@ public class MMOItemsPlaceholders extends PlaceholderExpansion { PlayerData.get(player).getRemainingAbilityCooldown(identifier.substring(11)); if (identifier.equals("durability")) - return "" + (int) MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getDouble("MMOITEMS_DURABILITY"); + return "" + (int) MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getDouble("MMOITEMS_DURABILITY"); if (identifier.equals("durability_max")) - return "" + (int) MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getDouble("MMOITEMS_MAX_DURABILITY"); + return "" + (int) MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getDouble("MMOITEMS_MAX_DURABILITY"); if (identifier.equals("durability_ratio")) { - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); double durability = item.getDouble("MMOITEMS_DURABILITY"); double maxDurability = item.getDouble("MMOITEMS_MAX_DURABILITY"); return oneDigit.format(durability / maxDurability * 100); @@ -67,7 +68,7 @@ public class MMOItemsPlaceholders extends PlaceholderExpansion { } private String getCurrentDurabilityBar(ItemStack item, String barChar, int length) { - NBTItem nbtItem = MMOItems.plugin.getNMS().getNBTItem(item); + NBTItem nbtItem = MMOLib.plugin.getNMS().getNBTItem(item); double durability = nbtItem.getDouble("MMOITEMS_DURABILITY"); double maxDurability = nbtItem.getDouble("MMOITEMS_MAX_DURABILITY"); long r = Math.round(durability / maxDurability * length); diff --git a/src/main/java/net/Indyuce/mmoitems/comp/rpg/HeroesHook.java b/src/main/java/net/Indyuce/mmoitems/comp/rpg/HeroesHook.java index 0c3404fb..30c5e1af 100644 --- a/src/main/java/net/Indyuce/mmoitems/comp/rpg/HeroesHook.java +++ b/src/main/java/net/Indyuce/mmoitems/comp/rpg/HeroesHook.java @@ -20,17 +20,18 @@ import com.herocraftonline.heroes.characters.skill.SkillType; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.RPGPlayer; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageHandler; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageInfo; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.AttackResult; +import net.mmogroup.mmolib.api.DamageHandler; +import net.mmogroup.mmolib.api.DamageType; public class HeroesHook implements RPGHandler, Listener, DamageHandler { private final Map damages = new HashMap<>(); public HeroesHook() { Bukkit.getPluginManager().registerEvents(this, MMOItems.plugin); - MMOItems.plugin.getDamage().registerHandler(this); + MMOLib.plugin.getDamage().registerHandler(this); damages.put(SkillType.ABILITY_PROPERTY_PHYSICAL, DamageType.PHYSICAL); damages.put(SkillType.ABILITY_PROPERTY_MAGICAL, DamageType.MAGICAL); @@ -43,9 +44,9 @@ public class HeroesHook implements RPGHandler, Listener, DamageHandler { } @Override - public DamageInfo getDamage(Entity entity) { + public AttackResult getDamage(Entity entity) { SkillUseInfo info = Heroes.getInstance().getDamageManager().getSpellTargetInfo(entity); - return new DamageInfo(0, info.getSkill().getTypes().stream().filter(type -> damages.containsKey(type)).map(type -> damages.get(type)).collect(Collectors.toList())); + return new AttackResult(true, 0, info.getSkill().getTypes().stream().filter(type -> damages.containsKey(type)).map(type -> damages.get(type)).collect(Collectors.toList())); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/comp/rpg/damage/DamageHandler.java b/src/main/java/net/Indyuce/mmoitems/comp/rpg/damage/DamageHandler.java deleted file mode 100644 index 572927ba..00000000 --- a/src/main/java/net/Indyuce/mmoitems/comp/rpg/damage/DamageHandler.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.Indyuce.mmoitems.comp.rpg.damage; - -import org.bukkit.entity.Entity; - -public interface DamageHandler { - public DamageInfo getDamage(Entity entity); - - public boolean hasDamage(Entity entity); -} diff --git a/src/main/java/net/Indyuce/mmoitems/comp/rpg/damage/DamageInfo.java b/src/main/java/net/Indyuce/mmoitems/comp/rpg/damage/DamageInfo.java deleted file mode 100644 index 3668602f..00000000 --- a/src/main/java/net/Indyuce/mmoitems/comp/rpg/damage/DamageInfo.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.Indyuce.mmoitems.comp.rpg.damage; - -import java.util.Arrays; -import java.util.List; - -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; - -public class DamageInfo { - private final double damage; - private final List damageTypes; - - public DamageInfo(double damage, DamageType... damageTypes) { - this(damage, Arrays.asList(damageTypes)); - } - - public DamageInfo(double damage, List damageTypes) { - this.damage = damage; - this.damageTypes = damageTypes; - } - - public double getValue() { - return damage; - } - - public List getTypes() { - return damageTypes; - } - - public boolean hasType(DamageType type) { - return damageTypes.contains(type); - } - - public AttackResult toAttackResult() { - return new AttackResult(true, damage, damageTypes); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeList.java b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeList.java index 4e595b75..e2810a12 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeList.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeList.java @@ -15,11 +15,11 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.AdvancedRecipe; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.api.util.message.Message; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class AdvancedRecipeList extends PluginInventory { private Type type; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipePreview.java b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipePreview.java index 214450ff..04a20648 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipePreview.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipePreview.java @@ -16,7 +16,7 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.gui.edition.EditionInventory; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class AdvancedRecipePreview extends EditionInventory { private static final int[] glassSlots = { 0, 1, 2, 6, 7, 8, 9, 11, 15, 17, 18, 19, 20, 24, 25, 26 }; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeTypeList.java b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeTypeList.java index f3914d25..995a674d 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeTypeList.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedRecipeTypeList.java @@ -14,10 +14,10 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.api.util.message.Message; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class AdvancedRecipeTypeList extends PluginInventory { private static final int[] slots = { 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25 }; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedWorkbench.java b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedWorkbench.java index bdd8cc2a..edab75d9 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/AdvancedWorkbench.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/AdvancedWorkbench.java @@ -20,7 +20,7 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.AdvancedRecipe; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.api.util.message.Message; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class AdvancedWorkbench extends PluginInventory { private List allowedCraftingClicks = Arrays.asList(new InventoryAction[] { InventoryAction.PICKUP_ALL, InventoryAction.MOVE_TO_OTHER_INVENTORY }); diff --git a/src/main/java/net/Indyuce/mmoitems/gui/BlockBrowser.java b/src/main/java/net/Indyuce/mmoitems/gui/BlockBrowser.java index 002255e9..0bfbd347 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/BlockBrowser.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/BlockBrowser.java @@ -21,10 +21,11 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.CustomBlock; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.BlockEdition; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class BlockBrowser extends PluginInventory { private Map cached = new HashMap<>(); @@ -141,7 +142,7 @@ public class BlockBrowser extends PluginInventory { } if (item.getItemMeta().getDisplayName().equals(ChatColor.GREEN + "Download Default Resourcepack")) { - MMOItems.plugin.getNMS().sendJson(player, "[{\"text\":\"Click to download!\",\"color\":\"green\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://mythiccraft.io/resources/MICustomBlockPack.zip\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":[\"\",{\"text\":\"https://mythiccraft.io/resources/MICustomBlockPack.zip\",\"italic\":true,\"color\":\"white\"}]}}]"); + MMOLib.plugin.getNMS().sendJson(player, "[{\"text\":\"Click to download!\",\"color\":\"green\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://mythiccraft.io/resources/MICustomBlockPack.zip\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":[\"\",{\"text\":\"https://mythiccraft.io/resources/MICustomBlockPack.zip\",\"italic\":true,\"color\":\"white\"}]}}]"); player.closeInventory(); return; } diff --git a/src/main/java/net/Indyuce/mmoitems/gui/CraftingStationView.java b/src/main/java/net/Indyuce/mmoitems/gui/CraftingStationView.java index 94a9a606..32e313fa 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/CraftingStationView.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/CraftingStationView.java @@ -22,12 +22,13 @@ import net.Indyuce.mmoitems.api.crafting.ingredient.Ingredient; import net.Indyuce.mmoitems.api.crafting.recipe.CraftingRecipe; import net.Indyuce.mmoitems.api.crafting.recipe.RecipeInfo; import net.Indyuce.mmoitems.api.event.crafting.PlayerUseRecipeEvent; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.plugin.ConfigItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.util.IsSimilar; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.listener.CustomSoundListener; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class CraftingStationView extends PluginInventory { private final CraftingStation station; @@ -154,7 +155,7 @@ public class CraftingStationView extends PluginInventory { return; } - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(event.getCurrentItem()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(event.getCurrentItem()); String tag = item.getString("recipeId"); if (!tag.equals("")) { RecipeInfo recipe = getRecipe(tag); diff --git a/src/main/java/net/Indyuce/mmoitems/gui/ItemBrowser.java b/src/main/java/net/Indyuce/mmoitems/gui/ItemBrowser.java index 9b6c82d5..46400623 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/ItemBrowser.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/ItemBrowser.java @@ -22,11 +22,12 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.edition.NewItemEdition; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.ItemEdition; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class ItemBrowser extends PluginInventory { private final Map cached = new HashMap<>(); @@ -94,7 +95,7 @@ public class ItemBrowser extends PluginInventory { ItemMeta switchMeta = switchBrowse.getItemMeta(); switchMeta.setDisplayName(ChatColor.GREEN + "Switch to Block Explorer"); - if(!MMOItems.plugin.getVersion().isStrictlyHigher(1, 12)) { + if(!MMOLib.plugin.getVersion().isStrictlyHigher(1, 12)) { List lore = new ArrayList(); lore.add(""); lore.add("&cThis feature is disabled."); @@ -229,7 +230,7 @@ public class ItemBrowser extends PluginInventory { if (item.getItemMeta().getDisplayName().equals(ChatColor.GREEN + "Switch to Block Explorer")) { - if (MMOItems.plugin.getVersion().isStrictlyHigher(1, 12)) + if (MMOLib.plugin.getVersion().isStrictlyHigher(1, 12)) new BlockBrowser(player).open(); else player.sendMessage(ChatColor.RED + "Blocks are only for 1.13+."); return; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityEdition.java index efdae669..187f65b8 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityEdition.java @@ -25,8 +25,9 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class AbilityEdition extends EditionInventory { private String configKey; @@ -104,7 +105,7 @@ public class AbilityEdition extends EditionInventory { modifierItemMeta.setLore(modifierItemLore); modifierItem.setItemMeta(modifierItemMeta); - modifierItem = MMOItems.plugin.getNMS().getNBTItem(modifierItem).addTag(new ItemTag("abilityModifier", modifier)).toItem(); + modifierItem = MMOLib.plugin.getNMS().getNBTItem(modifierItem).addTag(new ItemTag("abilityModifier", modifier)).toItem(); inv.setItem(slots[n++], modifierItem); } @@ -193,7 +194,7 @@ public class AbilityEdition extends EditionInventory { return; } - String tag = MMOItems.plugin.getNMS().getNBTItem(item).getString("abilityModifier"); + String tag = MMOLib.plugin.getNMS().getNBTItem(item).getString("abilityModifier"); if (tag.equals("")) return; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityListEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityListEdition.java index 7cf23f31..9aae21d8 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityListEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/AbilityListEdition.java @@ -19,11 +19,12 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; import net.Indyuce.mmoitems.api.Ability.CastingMode; -import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.Indyuce.mmoitems.api.util.AltChar; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class AbilityListEdition extends EditionInventory { private static final DecimalFormat modifierFormat = new DecimalFormat("0.###"); @@ -70,7 +71,7 @@ public class AbilityListEdition extends EditionInventory { abilityItemMeta.setLore(abilityItemLore); abilityItem.setItemMeta(abilityItemMeta); - abilityItem = MMOItems.plugin.getNMS().getNBTItem(abilityItem).addTag(new ItemTag("configKey", key)).toItem(); + abilityItem = MMOLib.plugin.getNMS().getNBTItem(abilityItem).addTag(new ItemTag("configKey", key)).toItem(); inv.setItem(slots[n++], abilityItem); } @@ -124,7 +125,7 @@ public class AbilityListEdition extends EditionInventory { } } - String tag = MMOItems.plugin.getNMS().getNBTItem(item).getString("configKey"); + String tag = MMOLib.plugin.getNMS().getNBTItem(item).getString("configKey"); if (tag.equals("")) return; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/AdvancedRecipeEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/AdvancedRecipeEdition.java index 93a66651..44789463 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/AdvancedRecipeEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/AdvancedRecipeEdition.java @@ -20,9 +20,10 @@ import org.bukkit.inventory.meta.ItemMeta; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class AdvancedRecipeEdition extends EditionInventory implements Listener { @@ -135,7 +136,7 @@ public class AdvancedRecipeEdition extends EditionInventory implements Listener return; // type/id overrides material/name/damage - NBTItem nbtCursor = MMOItems.plugin.getNMS().getNBTItem(cursor); + NBTItem nbtCursor = MMOLib.plugin.getNMS().getNBTItem(cursor); String id1 = nbtCursor.getString("MMOITEMS_ITEM_ID"); String type1 = nbtCursor.getString("MMOITEMS_ITEM_TYPE"); if (id1 == null || id1.equals("") || type1 == null || type1.equals("")) { diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/ArrowParticlesEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/ArrowParticlesEdition.java index f6ee8159..a731d97d 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/ArrowParticlesEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/ArrowParticlesEdition.java @@ -24,7 +24,7 @@ import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.data.ParticleData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class ArrowParticlesEdition extends EditionInventory { public ArrowParticlesEdition(Player player, Type type, String id) { diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/CommandListEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/CommandListEdition.java index 98776245..708d6af0 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/CommandListEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/CommandListEdition.java @@ -18,11 +18,12 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.edition.StatEdition; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class CommandListEdition extends EditionInventory { private static final int[] slots = { 19, 20, 21, 22, 23, 24, 25, 28, 29, 33, 34, 37, 38, 42, 43 }; @@ -92,7 +93,7 @@ public class CommandListEdition extends EditionInventory { return; } - String tag = MMOItems.plugin.getNMS().getNBTItem(item).getString("configKey"); + String tag = MMOLib.plugin.getNMS().getNBTItem(item).getString("configKey"); if (tag.equals("")) return; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/EditionInventory.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/EditionInventory.java index 7cbcaeb4..9966a806 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/EditionInventory.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/EditionInventory.java @@ -16,7 +16,7 @@ import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.PluginInventory; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public abstract class EditionInventory extends PluginInventory { protected Type type; diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemEdition.java index 9efa4054..796f396f 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemEdition.java @@ -18,10 +18,11 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class ItemEdition extends EditionInventory { private static final int[] slots = { 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 }; @@ -65,7 +66,7 @@ public class ItemEdition extends EditionInventory { meta.setLore(lore); item.setItemMeta(meta); - inv.setItem(slots[n++], MMOItems.plugin.getNMS().getNBTItem(item).addTag(new ItemTag("guiStat", stat.getId())).toItem()); + inv.setItem(slots[n++], MMOLib.plugin.getNMS().getNBTItem(item).addTag(new ItemTag("guiStat", stat.getId())).toItem()); } ItemStack glass = VersionMaterial.GRAY_STAINED_GLASS_PANE.toItem(); diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemUpdaterEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemUpdaterEdition.java index b5351489..ef2d2b66 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemUpdaterEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/ItemUpdaterEdition.java @@ -16,7 +16,7 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.manager.UpdaterManager.UpdaterData; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class ItemUpdaterEdition extends EditionInventory { public ItemUpdaterEdition(Player player, Type type, String id) { diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/ParticlesEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/ParticlesEdition.java index f744a177..8dd0ea2e 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/ParticlesEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/ParticlesEdition.java @@ -21,13 +21,13 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.edition.StatEdition; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.particle.api.ParticleType; import net.Indyuce.mmoitems.stat.data.ParticleData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class ParticlesEdition extends EditionInventory { public ParticlesEdition(Player player, Type type, String id) { diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/RecipeEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/RecipeEdition.java index 4fb30c47..54de7695 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/RecipeEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/RecipeEdition.java @@ -19,7 +19,7 @@ import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class RecipeEdition extends EditionInventory { public RecipeEdition(Player player, Type type, String id) { diff --git a/src/main/java/net/Indyuce/mmoitems/gui/edition/UpgradingEdition.java b/src/main/java/net/Indyuce/mmoitems/gui/edition/UpgradingEdition.java index 24c77988..e5e9af4d 100644 --- a/src/main/java/net/Indyuce/mmoitems/gui/edition/UpgradingEdition.java +++ b/src/main/java/net/Indyuce/mmoitems/gui/edition/UpgradingEdition.java @@ -21,7 +21,8 @@ import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.plugin.NamedItemStack; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.VersionMaterial; public class UpgradingEdition extends EditionInventory { private static final ItemStack notAvailable = new NamedItemStack(VersionMaterial.RED_STAINED_GLASS_PANE.toMaterial(), "&cNot Available"); @@ -135,7 +136,7 @@ public class UpgradingEdition extends EditionInventory { inv.setItem(24, successItem); if (success > 0 && !type.corresponds(Type.CONSUMABLE)) { - ItemStack destroyOnFail = MMOItems.plugin.getVersion().getWrapper().generate(Material.FISHING_ROD, 30); + ItemStack destroyOnFail = MMOLib.plugin.getVersion().getWrapper().generate(Material.FISHING_ROD, 30); ItemMeta destroyOnFailMeta = destroyOnFail.getItemMeta(); destroyOnFailMeta.setDisplayName(ChatColor.GREEN + "Destroy on fail?"); List destroyOnFailLore = new ArrayList<>(); diff --git a/src/main/java/net/Indyuce/mmoitems/listener/AdvancedWorkbenchListener.java b/src/main/java/net/Indyuce/mmoitems/listener/AdvancedWorkbenchListener.java index 959bc8fc..d167f43f 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/AdvancedWorkbenchListener.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/AdvancedWorkbenchListener.java @@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.gui.AdvancedWorkbench; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class AdvancedWorkbenchListener implements Listener { @EventHandler diff --git a/src/main/java/net/Indyuce/mmoitems/listener/CustomBlockListener.java b/src/main/java/net/Indyuce/mmoitems/listener/CustomBlockListener.java index 9bfc719b..ce34cb22 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/CustomBlockListener.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/CustomBlockListener.java @@ -27,7 +27,8 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.CustomBlock; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class CustomBlockListener implements Listener { Random rnd = new Random(); @@ -63,7 +64,7 @@ public class CustomBlockListener implements Listener { if (!event.hasItem() || event.getAction() != Action.RIGHT_CLICK_BLOCK || event.getHand() != EquipmentSlot.HAND || event.getClickedBlock().getType().isInteractable()) return; if (event.getItem().getType() == Material.CLAY_BALL) { - NBTItem nbtItem = MMOItems.plugin.getNMS().getNBTItem(event.getItem()); + NBTItem nbtItem = MMOLib.plugin.getNMS().getNBTItem(event.getItem()); if (nbtItem.getInteger("MMOITEMS_BLOCK_ID") > 160 || nbtItem.getInteger("MMOITEMS_BLOCK_ID") < 1) return; @@ -92,8 +93,8 @@ public class CustomBlockListener implements Listener { modify.setType(block.getType(), false); modify.setBlockData(block.getBlockData(), false); - MMOItems.plugin.getNMS().playArmAnimation(event.getPlayer()); - modify.getWorld().playSound(event.getPlayer().getLocation(), MMOItems.plugin.getNMS().getBlockPlaceSound(modify), 0.8f, 1.0f); + MMOLib.plugin.getNMS().playArmAnimation(event.getPlayer()); + modify.getWorld().playSound(event.getPlayer().getLocation(), MMOLib.plugin.getNMS().getBlockPlaceSound(modify), 0.8f, 1.0f); BlockPlaceEvent bpe = new BlockPlaceEvent(modify, oldState.getState(), event.getClickedBlock(), event.getItem(), event.getPlayer(), true, EquipmentSlot.HAND); Bukkit.getServer().getPluginManager().callEvent(bpe); diff --git a/src/main/java/net/Indyuce/mmoitems/listener/CustomSoundListener.java b/src/main/java/net/Indyuce/mmoitems/listener/CustomSoundListener.java index 0dfb745e..5a031134 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/CustomSoundListener.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/CustomSoundListener.java @@ -22,7 +22,7 @@ import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.event.ItemBreakEvent; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class CustomSoundListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) diff --git a/src/main/java/net/Indyuce/mmoitems/listener/DisableInteractions.java b/src/main/java/net/Indyuce/mmoitems/listener/DisableInteractions.java index d0a72809..fad1f08e 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/DisableInteractions.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/DisableInteractions.java @@ -17,7 +17,7 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.api.item.NBTItem; public class DisableInteractions implements Listener { diff --git a/src/main/java/net/Indyuce/mmoitems/listener/ItemUse.java b/src/main/java/net/Indyuce/mmoitems/listener/ItemUse.java index 1089dbf3..6b20ecd5 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/ItemUse.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/ItemUse.java @@ -25,6 +25,7 @@ import org.bukkit.inventory.EquipmentSlot; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.TypeSet; import net.Indyuce.mmoitems.api.interaction.Consumable; @@ -37,14 +38,14 @@ import net.Indyuce.mmoitems.api.interaction.weapon.Weapon; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.Staff; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.UntargetedWeapon; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.UntargetedWeapon.WeaponType; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.gui.AdvancedWorkbench; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class ItemUse implements Listener { private static final DecimalFormat digit = new DecimalFormat("0.#"); @@ -54,7 +55,7 @@ public class ItemUse implements Listener { if (!event.hasItem() || event.getHand() != EquipmentSlot.HAND) return; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(event.getItem()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(event.getItem()); if (!item.hasType()) return; @@ -84,7 +85,7 @@ public class ItemUse implements Listener { return; } - useItem.getPlayerData().applyItemCooldown(useItem.getMMOItem().getId(), useItem.getNBTItem().getStat(ItemStat.ITEM_COOLDOWN)); + useItem.getPlayerData().applyItemCooldown(useItem.getMMOItem().getId(), useItem.getNBTItem().getStat("ITEM_COOLDOWN")); useItem.executeCommands(); if (useItem instanceof Consumable) { @@ -113,7 +114,7 @@ public class ItemUse implements Listener { // custom damage check LivingEntity target = (LivingEntity) event.getEntity(); - if (MMOItems.plugin.getDamage().findInfo(target) != null) + if (MMOLib.plugin.getDamage().findInfo(target) != null) return; Player player = (Player) event.getDamager(); @@ -124,9 +125,9 @@ public class ItemUse implements Listener { * be cancelled before anything is applied */ PlayerData playerData = PlayerData.get(player); - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); - NBTItem offhandItem = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInOffHand()); - AttackResult result = new AttackResult(event.getDamage(), DamageType.WEAPON, DamageType.PHYSICAL); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem offhandItem = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInOffHand()); + ItemAttackResult result = new ItemAttackResult(event.getDamage(), DamageType.WEAPON, DamageType.PHYSICAL); if (item.hasType()) { Weapon weapon = new Weapon(playerData, item, item.getType()); @@ -176,7 +177,7 @@ public class ItemUse implements Listener { if (player.getGameMode() == GameMode.CREATIVE) return; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); if (!item.hasType()) return; @@ -196,7 +197,7 @@ public class ItemUse implements Listener { if (!(event.getRightClicked() instanceof LivingEntity)) return; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()); if (!item.hasType()) return; @@ -223,7 +224,7 @@ public class ItemUse implements Listener { if (event.getAction() != InventoryAction.SWAP_WITH_CURSOR || event.getInventory().getHolder() instanceof AdvancedWorkbench) return; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(event.getCursor()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(event.getCursor()); if (!item.hasType()) return; @@ -232,7 +233,7 @@ public class ItemUse implements Listener { return; if (useItem instanceof ItemSkin) { - NBTItem picked = MMOItems.plugin.getNMS().getNBTItem(event.getCurrentItem()); + NBTItem picked = MMOLib.plugin.getNMS().getNBTItem(event.getCurrentItem()); if (!picked.hasType()) return; @@ -250,7 +251,7 @@ public class ItemUse implements Listener { } if (useItem instanceof GemStone) { - NBTItem picked = MMOItems.plugin.getNMS().getNBTItem(event.getCurrentItem()); + NBTItem picked = MMOLib.plugin.getNMS().getNBTItem(event.getCurrentItem()); if (!picked.hasType()) return; @@ -269,7 +270,7 @@ public class ItemUse implements Listener { if (useItem instanceof Consumable && event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR) { event.setCancelled(true); - if (((Consumable) useItem).useOnItem(event, MMOItems.plugin.getNMS().getNBTItem(event.getCurrentItem()))) + if (((Consumable) useItem).useOnItem(event, MMOLib.plugin.getNMS().getNBTItem(event.getCurrentItem()))) event.getCursor().setAmount(event.getCursor().getAmount() - 1); } } @@ -279,7 +280,7 @@ public class ItemUse implements Listener { if (!(event.getProjectile() instanceof Arrow) || !(event.getEntity() instanceof Player)) return; - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(event.getBow()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(event.getBow()); Type type = item.getType(); PlayerData playerData = PlayerData.get((Player) event.getEntity()); @@ -297,7 +298,7 @@ public class ItemUse implements Listener { @EventHandler public void g(PlayerItemConsumeEvent event) { - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(event.getItem()); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(event.getItem()); if (!item.hasType()) return; diff --git a/src/main/java/net/Indyuce/mmoitems/listener/MitigationListener.java b/src/main/java/net/Indyuce/mmoitems/listener/MitigationListener.java index 68ce8e03..c6a7ddae 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/MitigationListener.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/MitigationListener.java @@ -25,10 +25,11 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.PlayerData.CooldownType; -import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.api.player.PlayerStats; +import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionSound; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.version.VersionSound; public class MitigationListener implements Listener { private static final Random random = new Random(); @@ -86,7 +87,7 @@ public class MitigationListener implements Listener { double yaw = getYaw(player, getVector(player, event)) + 95; for (double j = yaw - 90; j < yaw + 90; j += 5) for (double y = 0; y < 2; y += .1) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, player.getLocation().clone().add(Math.cos(Math.toRadians(j)) * .7, y, Math.sin(Math.toRadians(j)) * .7), Color.GRAY); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(Particle.REDSTONE, player.getLocation().clone().add(Math.cos(Math.toRadians(j)) * .7, y, Math.sin(Math.toRadians(j)) * .7), Color.GRAY); } } diff --git a/src/main/java/net/Indyuce/mmoitems/listener/PlayerListener.java b/src/main/java/net/Indyuce/mmoitems/listener/PlayerListener.java index 03b034fb..9cc0a43a 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/PlayerListener.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/PlayerListener.java @@ -20,15 +20,15 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.ability.Magical_Shield; import net.Indyuce.mmoitems.api.Ability.CastingMode; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.SoulboundInfo; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.api.player.PlayerStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.DamageType; public class PlayerListener implements Listener { @EventHandler(priority = EventPriority.HIGH) @@ -49,7 +49,7 @@ public class PlayerListener implements Listener { /* * damage reduction */ - if (MMOItems.plugin.getDamage().findInfo(player) != null) + if (MMOLib.plugin.getDamage().findInfo(player) != null) return; PlayerStats stats = PlayerData.get(player).getStats(); @@ -92,7 +92,7 @@ public class PlayerListener implements Listener { LivingEntity damager = (LivingEntity) event.getDamager(); Player player = (Player) event.getEntity(); - PlayerData.get(player).castAbilities(damager, new AttackResult(event.getDamage(), DamageType.SKILL), CastingMode.WHEN_HIT); + PlayerData.get(player).castAbilities(damager, new ItemAttackResult(event.getDamage(), DamageType.SKILL), CastingMode.WHEN_HIT); } @EventHandler(priority = EventPriority.LOW) @@ -102,7 +102,7 @@ public class PlayerListener implements Listener { Player player = event.getPlayer(); boolean left = event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK; - PlayerData.get(player).castAbilities(null, new AttackResult(true, DamageType.SKILL), player.isSneaking() ? (left ? CastingMode.SHIFT_LEFT_CLICK : CastingMode.SHIFT_RIGHT_CLICK) : (left ? CastingMode.LEFT_CLICK : CastingMode.RIGHT_CLICK)); + PlayerData.get(player).castAbilities(null, new ItemAttackResult(true, DamageType.SKILL), player.isSneaking() ? (left ? CastingMode.SHIFT_LEFT_CLICK : CastingMode.SHIFT_RIGHT_CLICK) : (left ? CastingMode.LEFT_CLICK : CastingMode.RIGHT_CLICK)); } /* @@ -122,7 +122,7 @@ public class PlayerListener implements Listener { ItemStack item; Iterator iterator = event.getDrops().iterator(); while (iterator.hasNext()) - if (MMOItems.plugin.getNMS().getNBTItem(item = iterator.next()).getString("MMOITEMS_SOULBOUND").equals(player.getUniqueId().toString())) { + if (MMOLib.plugin.getNMS().getNBTItem(item = iterator.next()).getString("MMOITEMS_SOULBOUND").equals(player.getUniqueId().toString())) { iterator.remove(); soulboundInfo.add(item); } diff --git a/src/main/java/net/Indyuce/mmoitems/listener/version/Listener_v1_13.java b/src/main/java/net/Indyuce/mmoitems/listener/version/Listener_v1_13.java index 78c82603..19a4eddb 100644 --- a/src/main/java/net/Indyuce/mmoitems/listener/version/Listener_v1_13.java +++ b/src/main/java/net/Indyuce/mmoitems/listener/version/Listener_v1_13.java @@ -11,8 +11,9 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.interaction.util.InteractItem; import net.Indyuce.mmoitems.api.interaction.weapon.Weapon; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerData; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class Listener_v1_13 implements Listener { @EventHandler @@ -24,7 +25,7 @@ public class Listener_v1_13 implements Listener { if (!item.hasItem()) return; - NBTItem nbtItem = MMOItems.plugin.getNMS().getNBTItem(item.getItem()); + NBTItem nbtItem = MMOLib.plugin.getNMS().getNBTItem(item.getItem()); Type type = nbtItem.getType(); PlayerData playerData = PlayerData.get((Player) event.getEntity().getShooter()); diff --git a/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java b/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java index fe4e30cc..b9b173d8 100644 --- a/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java +++ b/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java @@ -26,6 +26,7 @@ import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.CustomBlock; import net.Indyuce.mmoitems.api.drop.DropTable; import net.Indyuce.mmoitems.listener.CustomBlockListener; +import net.mmogroup.mmolib.MMOLib; public class DropTableManager implements Listener { private Map monsters = new HashMap<>(); @@ -90,7 +91,7 @@ public class DropTableManager implements Listener { Block block = event.getBlock(); final Material type = block.getType(); - CustomBlock custom = MMOItems.plugin.getVersion().isStrictlyHigher(1, 12) ? CustomBlock.getFromData(block.getBlockData()) : null; + CustomBlock custom = MMOLib.plugin.getVersion().isStrictlyHigher(1, 12) ? CustomBlock.getFromData(block.getBlockData()) : null; if(custom != null) { if (customBlocks.containsKey(custom.getId())) Bukkit.getScheduler().runTaskLater(MMOItems.plugin, () -> { diff --git a/src/main/java/net/Indyuce/mmoitems/manager/EntityManager.java b/src/main/java/net/Indyuce/mmoitems/manager/EntityManager.java index 86047d5b..5925df6f 100644 --- a/src/main/java/net/Indyuce/mmoitems/manager/EntityManager.java +++ b/src/main/java/net/Indyuce/mmoitems/manager/EntityManager.java @@ -17,12 +17,12 @@ import org.bukkit.event.entity.EntityDeathEvent; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ArrowParticles; +import net.Indyuce.mmoitems.api.ItemAttackResult; import net.Indyuce.mmoitems.api.ProjectileData; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.PlayerStats.TemporaryStats; -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.api.player.damage.AttackResult.DamageType; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.DamageType; +import net.mmogroup.mmolib.api.item.NBTItem; public class EntityManager implements Listener { @@ -109,7 +109,7 @@ public class EntityManager implements Listener { LivingEntity target = (LivingEntity) event.getEntity(); TemporaryStats stats = data.getPlayerStats(); - AttackResult result = new AttackResult(data.isCustomWeapon() ? stats.getStat(ItemStat.ATTACK_DAMAGE) : event.getDamage(), DamageType.WEAPON, DamageType.PROJECTILE, DamageType.PHYSICAL).applyOnHitEffects(stats, target); + ItemAttackResult result = new ItemAttackResult(data.isCustomWeapon() ? stats.getStat(ItemStat.ATTACK_DAMAGE) : event.getDamage(), DamageType.WEAPON, DamageType.PROJECTILE, DamageType.PHYSICAL).applyOnHitEffects(stats, target); /* * only modify the damage when the bow used is a custom weapon. diff --git a/src/main/java/net/Indyuce/mmoitems/manager/RecipeManager.java b/src/main/java/net/Indyuce/mmoitems/manager/RecipeManager.java index e0318d4e..f30e9c7d 100644 --- a/src/main/java/net/Indyuce/mmoitems/manager/RecipeManager.java +++ b/src/main/java/net/Indyuce/mmoitems/manager/RecipeManager.java @@ -20,7 +20,8 @@ import org.bukkit.inventory.ShapelessRecipe; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.AdvancedRecipe; import net.Indyuce.mmoitems.api.Type; -import net.Indyuce.mmoitems.api.item.NBTItem; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class RecipeManager { @@ -148,7 +149,7 @@ public class RecipeManager { float exp = (float) config.getDouble(path + ".furnace-craft.exp"); int cook = config.getInt(path + ".furnace-craft.cook"); cook = cook == 0 ? 80 : cook; - Bukkit.getServer().addRecipe(MMOItems.plugin.getVersion().getWrapper().getFurnaceRecipe(path, item, material, exp, cook)); + Bukkit.getServer().addRecipe(MMOLib.plugin.getVersion().getWrapper().getFurnaceRecipe(path, item, material, exp, cook)); } } } @@ -294,7 +295,7 @@ public class RecipeManager { continue; } - NBTItem item = MMOItems.plugin.getNMS().getNBTItem(inv.getItem(j)); + NBTItem item = MMOLib.plugin.getNMS().getNBTItem(inv.getItem(j)); // type, id String id1 = item.getString("MMOITEMS_ITEM_ID"); diff --git a/src/main/java/net/Indyuce/mmoitems/manager/StandaloneDamageManager.java b/src/main/java/net/Indyuce/mmoitems/manager/StandaloneDamageManager.java deleted file mode 100644 index 4833bc61..00000000 --- a/src/main/java/net/Indyuce/mmoitems/manager/StandaloneDamageManager.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.Indyuce.mmoitems.manager; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.bukkit.attribute.Attribute; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityDamageByEntityEvent; - -import net.Indyuce.mmoitems.api.player.damage.AttackResult; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageHandler; -import net.Indyuce.mmoitems.comp.rpg.damage.DamageInfo; - -public class StandaloneDamageManager implements Listener, DamageHandler { - private final Map customDamage = new HashMap<>(); - private final List handlers = new ArrayList<>(); - - public StandaloneDamageManager() { - handlers.add(this); - } - - public void registerHandler(DamageHandler handler) { - handlers.add(handler); - } - - public boolean isDamaged(Entity entity) { - return customDamage.containsKey(entity.getEntityId()); - } - - @Override - public boolean hasDamage(Entity entity) { - return customDamage.containsKey(entity.getEntityId()); - } - - public DamageInfo getDamage(Entity entity) { - return customDamage.get(entity.getEntityId()); - } - - public void damage(Player player, LivingEntity target, AttackResult result) { - damage(player, target, result, true); - } - - public void damage(Player player, LivingEntity target, AttackResult result, boolean knockback) { - if (target.hasMetadata("NPC") || player.hasMetadata("NPC")) - return; - - /* - * calculate extra damage depending on the type of attack and the entity - * that is being damaged - */ - customDamage.put(target.getEntityId(), result.toDamageInfo()); - - if (!knockback) { - final double baseKnockbackValue = target.getAttribute(Attribute.GENERIC_KNOCKBACK_RESISTANCE).getBaseValue(); - target.getAttribute(Attribute.GENERIC_KNOCKBACK_RESISTANCE).setBaseValue(63); - try { - target.damage(result.getDamage(), player); - } catch (Exception e) { - e.printStackTrace(); - } - target.getAttribute(Attribute.GENERIC_KNOCKBACK_RESISTANCE).setBaseValue(baseKnockbackValue); - - } else - target.damage(result.getDamage(), player); - } - - public DamageInfo findInfo(Entity entity) { - for (DamageHandler handler : handlers) - if (handler.hasDamage(entity)) - return handler.getDamage(entity); - return null; - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = false) - public void a(EntityDamageByEntityEvent event) { - customDamage.remove(Integer.valueOf(event.getEntity().getEntityId())); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/manager/UpdaterManager.java b/src/main/java/net/Indyuce/mmoitems/manager/UpdaterManager.java index 20c96e09..e7d9d3c5 100644 --- a/src/main/java/net/Indyuce/mmoitems/manager/UpdaterManager.java +++ b/src/main/java/net/Indyuce/mmoitems/manager/UpdaterManager.java @@ -23,10 +23,11 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.util.IsSimilar; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.wrapper.VersionWrapper; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.wrapper.VersionWrapper; public class UpdaterManager implements Listener { private Map map = new HashMap<>(); @@ -101,7 +102,7 @@ public class UpdaterManager implements Listener { } public ItemStack getUpdated(ItemStack item) { - return getUpdated(MMOItems.plugin.getNMS().getNBTItem(item)); + return getUpdated(MMOLib.plugin.getNMS().getNBTItem(item)); } public ItemStack getUpdated(NBTItem item) { @@ -175,7 +176,7 @@ public class UpdaterManager implements Listener { * keep durability can be used for tools to save their durability so * users do not get extra durability when the item is updated */ - VersionWrapper wrapper = MMOItems.plugin.getVersion().getWrapper(); + VersionWrapper wrapper = MMOLib.plugin.getVersion().getWrapper(); if (did.keepDurability() && wrapper.isDamageable(item.getItem()) && wrapper.isDamageable(newItem)) wrapper.applyDurability(newItem, newItemMeta, wrapper.getDurability(item.getItem(), item.getItem().getItemMeta())); diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Abilities.java b/src/main/java/net/Indyuce/mmoitems/stat/Abilities.java index ef615294..9f4d1867 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Abilities.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Abilities.java @@ -21,18 +21,18 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.Ability; import net.Indyuce.mmoitems.api.Ability.CastingMode; +import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; -import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.gui.edition.AbilityListEdition; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.AbilityData; import net.Indyuce.mmoitems.stat.data.Mergeable; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Abilities extends ItemStat { private final DecimalFormat modifierFormat = new DecimalFormat("0.###"); diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe.java b/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe.java index 274723cb..c63a3c45 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe.java @@ -12,14 +12,14 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.AdvancedRecipeEdition; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Advanced_Crafting_Recipe extends StringStat { public Advanced_Crafting_Recipe() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe_Permission.java b/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe_Permission.java index 2caf061d..87ffe9ac 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe_Permission.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Advanced_Crafting_Recipe_Permission.java @@ -4,11 +4,11 @@ import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Advanced_Crafting_Recipe_Permission extends StringStat { public Advanced_Crafting_Recipe_Permission() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Armor.java b/src/main/java/net/Indyuce/mmoitems/stat/Armor.java index 1e1d3540..c02a28f9 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Armor.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Armor.java @@ -7,8 +7,8 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class Armor extends AttributeStat { public Armor() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Armor_Toughness.java b/src/main/java/net/Indyuce/mmoitems/stat/Armor_Toughness.java index c79aaf27..e6c49057 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Armor_Toughness.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Armor_Toughness.java @@ -8,7 +8,7 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Armor_Toughness extends AttributeStat { public Armor_Toughness() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Arrow_Particles.java b/src/main/java/net/Indyuce/mmoitems/stat/Arrow_Particles.java index 71221b76..a48de3be 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Arrow_Particles.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Arrow_Particles.java @@ -17,7 +17,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.ArrowParticlesEdition; @@ -26,8 +25,9 @@ import net.Indyuce.mmoitems.stat.data.ParticleData; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Arrow_Particles extends StringStat { public Arrow_Particles() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Attack_Damage.java b/src/main/java/net/Indyuce/mmoitems/stat/Attack_Damage.java index 2dfc74d1..b4d3a576 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Attack_Damage.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Attack_Damage.java @@ -8,7 +8,7 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Attack_Damage extends AttributeStat { public Attack_Damage() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Attack_Speed.java b/src/main/java/net/Indyuce/mmoitems/stat/Attack_Speed.java index 5e1e6dbc..8baf616f 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Attack_Speed.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Attack_Speed.java @@ -2,17 +2,17 @@ package net.Indyuce.mmoitems.stat; import org.bukkit.attribute.Attribute; -import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class Attack_Speed extends AttributeStat { public Attack_Speed() { - super(VersionMaterial.LIGHT_GRAY_DYE.toItem(), "Attack Speed", new String[] { "The speed at which your weapon strikes.", "In attacks/sec." }, "attack-speed", Attribute.GENERIC_ATTACK_SPEED, MMOItems.plugin.getVersion().isBelowOrEqual(1, 12) ? 1.6 : 4); + super(VersionMaterial.LIGHT_GRAY_DYE.toItem(), "Attack Speed", new String[] { "The speed at which your weapon strikes.", "In attacks/sec." }, "attack-speed", Attribute.GENERIC_ATTACK_SPEED, MMOLib.plugin.getVersion().isBelowOrEqual(1, 12) ? 1.6 : 4); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Commands.java b/src/main/java/net/Indyuce/mmoitems/stat/Commands.java index 21b0c60f..2450d89f 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Commands.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Commands.java @@ -22,15 +22,15 @@ import com.google.gson.JsonSyntaxException; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.CommandListEdition; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Commands extends ItemStat { private static final int max = 15; diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Compatible_Types.java b/src/main/java/net/Indyuce/mmoitems/stat/Compatible_Types.java index 75d58075..59d85072 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Compatible_Types.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Compatible_Types.java @@ -17,7 +17,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -25,8 +24,9 @@ import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Compatible_Types extends StringStat { public Compatible_Types() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Crafting_Recipe.java b/src/main/java/net/Indyuce/mmoitems/stat/Crafting_Recipe.java index 1a43a125..e0a2ef2e 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Crafting_Recipe.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Crafting_Recipe.java @@ -21,7 +21,7 @@ import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.RecipeEdition; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class Crafting_Recipe extends StringStat { public Crafting_Recipe() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/CustomSounds.java b/src/main/java/net/Indyuce/mmoitems/stat/CustomSounds.java index 136a4c2f..6e826e5b 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/CustomSounds.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/CustomSounds.java @@ -18,14 +18,14 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.CustomSound; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.SoundsEdition; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class CustomSounds extends ItemStat { public CustomSounds() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Custom_Model_Data.java b/src/main/java/net/Indyuce/mmoitems/stat/Custom_Model_Data.java index b0913e2f..f780fe70 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Custom_Model_Data.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Custom_Model_Data.java @@ -4,17 +4,17 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.DoubleStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Custom_Model_Data extends DoubleStat { public Custom_Model_Data() { super(new ItemStack(Material.PAINTING), "Custom Model Data", new String[] { "Your 1.14+ model data.", "(Only works on 1.14+)" }, "custom-model-data", new String[] { "all" }); - //if (MMOItems.plugin.getVersion().isBelowOrEqual(1, 13)) disable(); + //if (MMOLib.plugin.getVersion().isBelowOrEqual(1, 13)) disable(); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Display_Name.java b/src/main/java/net/Indyuce/mmoitems/stat/Display_Name.java index 4503131e..578f47b3 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Display_Name.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Display_Name.java @@ -5,12 +5,12 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Display_Name extends StringStat { public Display_Name() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Dye_Color.java b/src/main/java/net/Indyuce/mmoitems/stat/Dye_Color.java index 96268fbd..1a6f7758 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Dye_Color.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Dye_Color.java @@ -15,7 +15,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -23,7 +22,8 @@ import net.Indyuce.mmoitems.stat.data.ColorData; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Dye_Color extends StringStat { public Dye_Color() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Effects.java b/src/main/java/net/Indyuce/mmoitems/stat/Effects.java index 81b4c6d9..6d58a293 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Effects.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Effects.java @@ -26,7 +26,6 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -34,7 +33,8 @@ import net.Indyuce.mmoitems.stat.data.EffectListData; import net.Indyuce.mmoitems.stat.data.PotionEffectData; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Effects extends ItemStat { private DecimalFormat durationFormat = new DecimalFormat("0.#"); diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Elements.java b/src/main/java/net/Indyuce/mmoitems/stat/Elements.java index 589b6901..4f1a223a 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Elements.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Elements.java @@ -19,7 +19,6 @@ import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.Element; import net.Indyuce.mmoitems.api.Element.StatType; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.api.util.StatFormat; @@ -27,7 +26,8 @@ import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.ElementsEdition; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Elements extends ItemStat { public Elements() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Enchants.java b/src/main/java/net/Indyuce/mmoitems/stat/Enchants.java index 7b328536..a15e8fef 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Enchants.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Enchants.java @@ -21,12 +21,13 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; public class Enchants extends ItemStat { public Enchants() { @@ -55,7 +56,7 @@ public class Enchants extends ItemStat { } private String getName(Enchantment enchant) { - return MMOItems.plugin.getVersion().getWrapper().getName(enchant); + return MMOLib.plugin.getVersion().getWrapper().getName(enchant); } @Override diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Gem_Color.java b/src/main/java/net/Indyuce/mmoitems/stat/Gem_Color.java index 7c37c43e..353edc07 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Gem_Color.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Gem_Color.java @@ -3,8 +3,8 @@ package net.Indyuce.mmoitems.stat; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class Gem_Color extends StringStat { public Gem_Color() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Gem_Sockets.java b/src/main/java/net/Indyuce/mmoitems/stat/Gem_Sockets.java index 4239c7ca..0ef2d50e 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Gem_Sockets.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Gem_Sockets.java @@ -20,7 +20,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -28,7 +27,8 @@ import net.Indyuce.mmoitems.stat.data.GemSocketsData; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Gem_Sockets extends ItemStat { public Gem_Sockets() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Hide_Enchants.java b/src/main/java/net/Indyuce/mmoitems/stat/Hide_Enchants.java index e18abe0a..96c36225 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Hide_Enchants.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Hide_Enchants.java @@ -5,11 +5,11 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.BooleanStat; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class Hide_Enchants extends BooleanStat { public Hide_Enchants() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Hide_Potion_Effects.java b/src/main/java/net/Indyuce/mmoitems/stat/Hide_Potion_Effects.java index 94ad99d1..2643e614 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Hide_Potion_Effects.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Hide_Potion_Effects.java @@ -5,11 +5,11 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.BooleanStat; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class Hide_Potion_Effects extends BooleanStat { public Hide_Potion_Effects() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Inedible.java b/src/main/java/net/Indyuce/mmoitems/stat/Inedible.java index 9c6b39c7..252a40d7 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Inedible.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Inedible.java @@ -6,7 +6,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.BooleanStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Inedible extends BooleanStat { public Inedible() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Item_Particles.java b/src/main/java/net/Indyuce/mmoitems/stat/Item_Particles.java index bfdaca8d..b89e69f4 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Item_Particles.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Item_Particles.java @@ -16,7 +16,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -25,8 +24,9 @@ import net.Indyuce.mmoitems.particle.api.ParticleType; import net.Indyuce.mmoitems.stat.data.ParticleData; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Item_Particles extends ItemStat { public Item_Particles() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Item_Set.java b/src/main/java/net/Indyuce/mmoitems/stat/Item_Set.java index 7d5ffcb8..0c9a94a3 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Item_Set.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Item_Set.java @@ -15,13 +15,13 @@ import net.Indyuce.mmoitems.api.ItemSet; import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Item_Set extends StringStat { public Item_Set() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Item_Tier.java b/src/main/java/net/Indyuce/mmoitems/stat/Item_Tier.java index 6831628c..d68729df 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Item_Tier.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Item_Tier.java @@ -11,7 +11,7 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Item_Tier extends StringStat { public Item_Tier() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Item_Type_Restriction.java b/src/main/java/net/Indyuce/mmoitems/stat/Item_Type_Restriction.java index 1671d13b..1643cc3a 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Item_Type_Restriction.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Item_Type_Restriction.java @@ -24,7 +24,7 @@ import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Item_Type_Restriction extends StringStat { public Item_Type_Restriction() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Knockback_Resistance.java b/src/main/java/net/Indyuce/mmoitems/stat/Knockback_Resistance.java index 38e029db..1d6bb6e4 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Knockback_Resistance.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Knockback_Resistance.java @@ -8,7 +8,7 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Knockback_Resistance extends AttributeStat { public Knockback_Resistance() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Lore.java b/src/main/java/net/Indyuce/mmoitems/stat/Lore.java index c87d4cab..0e92f219 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Lore.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Lore.java @@ -17,7 +17,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -25,8 +24,9 @@ import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Lore extends StringStat { public Lore() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Effect.java b/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Effect.java index 44da20e4..0815d38b 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Effect.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Effect.java @@ -16,13 +16,13 @@ import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.lute.LuteAttackHan import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.lute.SimpleLuteAttack; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.lute.SlashLuteAttack; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.lute.WaveLuteAttack; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Lute_Attack_Effect extends StringStat { public Lute_Attack_Effect() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Sound.java b/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Sound.java index a465f2b0..165dc8d8 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Sound.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Lute_Attack_Sound.java @@ -5,8 +5,8 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class Lute_Attack_Sound extends StringStat { public Lute_Attack_Sound() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/MaterialStat.java b/src/main/java/net/Indyuce/mmoitems/stat/MaterialStat.java index c837c615..e32484d1 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/MaterialStat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/MaterialStat.java @@ -12,13 +12,13 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class MaterialStat extends StringStat { public MaterialStat() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Max_Custom_Durability.java b/src/main/java/net/Indyuce/mmoitems/stat/Max_Custom_Durability.java index 9fd62293..a823becc 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Max_Custom_Durability.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Max_Custom_Durability.java @@ -9,14 +9,14 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.interaction.util.DurabilityItem; import net.Indyuce.mmoitems.api.interaction.util.DurabilityState; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.player.RPGPlayer; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.Conditional; import net.Indyuce.mmoitems.stat.type.DoubleStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Max_Custom_Durability extends DoubleStat implements Conditional { public Max_Custom_Durability() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Max_Health.java b/src/main/java/net/Indyuce/mmoitems/stat/Max_Health.java index cabc85ff..83a7af53 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Max_Health.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Max_Health.java @@ -8,7 +8,7 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Max_Health extends AttributeStat { public Max_Health() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Movement_Speed.java b/src/main/java/net/Indyuce/mmoitems/stat/Movement_Speed.java index 861f74dc..ec0b609a 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Movement_Speed.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Movement_Speed.java @@ -8,7 +8,7 @@ import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.AttributeStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Movement_Speed extends AttributeStat { public Movement_Speed() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Perm_Effects.java b/src/main/java/net/Indyuce/mmoitems/stat/Perm_Effects.java index 00dbe3e6..131a3cd0 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Perm_Effects.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Perm_Effects.java @@ -23,7 +23,6 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -31,7 +30,8 @@ import net.Indyuce.mmoitems.stat.data.EffectListData; import net.Indyuce.mmoitems.stat.data.PotionEffectData; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Perm_Effects extends ItemStat { public Perm_Effects() { @@ -53,7 +53,7 @@ public class Perm_Effects extends ItemStat { config.getConfig().set(inv.getItemId() + ".perm-effects", null); inv.registerItemEdition(config); inv.open(); - inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Successfully removed " + last.substring(0, 1).toUpperCase() + last.substring(1).toLowerCase() + "§7."); + inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Successfully removed " + last.substring(0, 1).toUpperCase() + last.substring(1).toLowerCase() + "�7."); } } return true; diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Permission.java b/src/main/java/net/Indyuce/mmoitems/stat/Permission.java index 17ebbf4a..f1fea8fd 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Permission.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Permission.java @@ -16,7 +16,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.player.RPGPlayer; import net.Indyuce.mmoitems.api.util.AltChar; @@ -26,8 +25,9 @@ import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.Conditional; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Permission extends ItemStat implements Conditional { public Permission() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Pickaxe_Power.java b/src/main/java/net/Indyuce/mmoitems/stat/Pickaxe_Power.java index 02643f0d..e8e1372a 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Pickaxe_Power.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Pickaxe_Power.java @@ -6,7 +6,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.DoubleStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Pickaxe_Power extends DoubleStat { public Pickaxe_Power() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Required_Class.java b/src/main/java/net/Indyuce/mmoitems/stat/Required_Class.java index fadab428..e4259d39 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Required_Class.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Required_Class.java @@ -16,7 +16,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.player.RPGPlayer; import net.Indyuce.mmoitems.api.util.AltChar; @@ -27,8 +26,9 @@ import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.Conditional; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Required_Class extends StringStat implements Conditional { public Required_Class() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Required_Level.java b/src/main/java/net/Indyuce/mmoitems/stat/Required_Level.java index 0d2b27e0..9a5d29f3 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Required_Level.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Required_Level.java @@ -4,15 +4,15 @@ import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.player.RPGPlayer; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.Conditional; import net.Indyuce.mmoitems.stat.type.DoubleStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Required_Level extends DoubleStat implements Conditional { public Required_Level() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Restore.java b/src/main/java/net/Indyuce/mmoitems/stat/Restore.java index d107e415..c77b7ff4 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Restore.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Restore.java @@ -18,8 +18,8 @@ import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class Restore extends StringStat { public Restore() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Shapeless_Recipe.java b/src/main/java/net/Indyuce/mmoitems/stat/Shapeless_Recipe.java index 64cbbc4b..4153981d 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Shapeless_Recipe.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Shapeless_Recipe.java @@ -22,7 +22,7 @@ import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.version.VersionMaterial; public class Shapeless_Recipe extends StringStat { public Shapeless_Recipe() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Shield_Pattern.java b/src/main/java/net/Indyuce/mmoitems/stat/Shield_Pattern.java index 5dec978c..d57a6939 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Shield_Pattern.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Shield_Pattern.java @@ -25,13 +25,13 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class Shield_Pattern extends StringStat { public Shield_Pattern() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Skull_Texture.java b/src/main/java/net/Indyuce/mmoitems/stat/Skull_Texture.java index 774d3333..70c87a70 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Skull_Texture.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Skull_Texture.java @@ -14,13 +14,13 @@ import com.mojang.authlib.properties.Property; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Skull_Texture extends StringStat { public Skull_Texture() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Soulbound.java b/src/main/java/net/Indyuce/mmoitems/stat/Soulbound.java index 6be6fcd2..b760fa6f 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Soulbound.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Soulbound.java @@ -14,7 +14,6 @@ import com.google.gson.JsonSyntaxException; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.player.RPGPlayer; import net.Indyuce.mmoitems.api.util.message.Message; @@ -22,8 +21,9 @@ import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.Conditional; import net.Indyuce.mmoitems.stat.type.InternalStat; import net.Indyuce.mmoitems.stat.type.ItemStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Soulbound extends InternalStat implements Conditional { public Soulbound() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Soulbound_Level.java b/src/main/java/net/Indyuce/mmoitems/stat/Soulbound_Level.java index cf374688..570511cf 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Soulbound_Level.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Soulbound_Level.java @@ -6,8 +6,8 @@ import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.DoubleStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.version.VersionMaterial; public class Soulbound_Level extends DoubleStat { public Soulbound_Level() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Staff_Spirit.java b/src/main/java/net/Indyuce/mmoitems/stat/Staff_Spirit.java index 99311a74..7ea56c80 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Staff_Spirit.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Staff_Spirit.java @@ -14,13 +14,13 @@ import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.staff.SunfireSpiri import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.staff.ThunderSpirit; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.staff.VoidSpirit; import net.Indyuce.mmoitems.api.interaction.weapon.untargeted.staff.XRaySpirit; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.StringStat; -import net.Indyuce.mmoitems.version.VersionMaterial; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public class Staff_Spirit extends StringStat { public Staff_Spirit() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Unbreakable.java b/src/main/java/net/Indyuce/mmoitems/stat/Unbreakable.java index 202fdf32..3ff5470e 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Unbreakable.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Unbreakable.java @@ -5,11 +5,11 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.BooleanStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Unbreakable extends BooleanStat { public Unbreakable() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Upgrade_Stat.java b/src/main/java/net/Indyuce/mmoitems/stat/Upgrade_Stat.java index bfc5016f..0d12f8b2 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Upgrade_Stat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Upgrade_Stat.java @@ -17,7 +17,6 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.UpgradeTemplate; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; @@ -26,7 +25,8 @@ import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.StringListData; import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.StringStat.StringData; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class Upgrade_Stat extends ItemStat { public Upgrade_Stat() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Vanilla_Eating_Animation.java b/src/main/java/net/Indyuce/mmoitems/stat/Vanilla_Eating_Animation.java index fba90513..fb7337e8 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Vanilla_Eating_Animation.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Vanilla_Eating_Animation.java @@ -6,7 +6,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.BooleanStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Vanilla_Eating_Animation extends BooleanStat { public Vanilla_Eating_Animation() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/Will_Break.java b/src/main/java/net/Indyuce/mmoitems/stat/Will_Break.java index 0be8fba2..0a01292e 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/Will_Break.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/Will_Break.java @@ -6,7 +6,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.BooleanStat; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class Will_Break extends BooleanStat { public Will_Break() { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/data/GemSocketsData.java b/src/main/java/net/Indyuce/mmoitems/stat/data/GemSocketsData.java index 05cd5eb6..7e5b3162 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/data/GemSocketsData.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/data/GemSocketsData.java @@ -15,9 +15,9 @@ import com.google.gson.JsonObject; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOUtils; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.stat.Abilities.AbilityListData; import net.Indyuce.mmoitems.stat.type.DoubleStat.DoubleData; +import net.mmogroup.mmolib.api.item.NBTItem; import net.Indyuce.mmoitems.stat.type.ItemStat; public class GemSocketsData extends StatData { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/data/ParticleData.java b/src/main/java/net/Indyuce/mmoitems/stat/data/ParticleData.java index cad98649..afec3669 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/data/ParticleData.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/data/ParticleData.java @@ -17,6 +17,7 @@ import net.Indyuce.mmoitems.api.item.MMOItem; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.particle.api.ParticleRunnable; import net.Indyuce.mmoitems.particle.api.ParticleType; +import net.mmogroup.mmolib.MMOLib; public class ParticleData extends StatData { private ParticleType type; @@ -122,14 +123,14 @@ public class ParticleData extends StatData { public void display(Location location, int amount, float offsetX, float offsetY, float offsetZ, float speed) { if (isColored()) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(particle, location, amount, offsetX, offsetY, offsetZ, speed, 1, color); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(particle, location, amount, offsetX, offsetY, offsetZ, speed, 1, color); else location.getWorld().spawnParticle(particle, location, amount, offsetX, offsetY, offsetZ, speed); } public void display(Location location, Vector direction, float speed) { if (isColored()) - MMOItems.plugin.getVersion().getWrapper().spawnParticle(particle, location, 0, direction.getX(), direction.getY(), direction.getZ(), speed, 1, color); + MMOLib.plugin.getVersion().getWrapper().spawnParticle(particle, location, 0, direction.getX(), direction.getY(), direction.getZ(), speed, 1, color); else location.getWorld().spawnParticle(particle, location, 0, direction.getX(), direction.getY(), direction.getZ(), speed); } diff --git a/src/main/java/net/Indyuce/mmoitems/stat/type/BooleanStat.java b/src/main/java/net/Indyuce/mmoitems/stat/type/BooleanStat.java index 400312fd..8123076f 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/type/BooleanStat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/type/BooleanStat.java @@ -11,12 +11,12 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class BooleanStat extends ItemStat { public BooleanStat(ItemStack item, String name, String[] lore, String path, String[] types, Material... materials) { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/type/Conditional.java b/src/main/java/net/Indyuce/mmoitems/stat/type/Conditional.java index 169f9899..06d701be 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/type/Conditional.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/type/Conditional.java @@ -1,7 +1,7 @@ package net.Indyuce.mmoitems.stat.type; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.player.RPGPlayer; +import net.mmogroup.mmolib.api.item.NBTItem; public interface Conditional { public boolean canUse(RPGPlayer player, NBTItem item, boolean message); diff --git a/src/main/java/net/Indyuce/mmoitems/stat/type/DisableStat.java b/src/main/java/net/Indyuce/mmoitems/stat/type/DisableStat.java index 8392cade..118f0706 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/type/DisableStat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/type/DisableStat.java @@ -7,7 +7,7 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; public class DisableStat extends BooleanStat { private String tag; diff --git a/src/main/java/net/Indyuce/mmoitems/stat/type/DoubleStat.java b/src/main/java/net/Indyuce/mmoitems/stat/type/DoubleStat.java index 58ec7618..ace1f0e4 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/type/DoubleStat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/type/DoubleStat.java @@ -15,14 +15,14 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.api.util.StatFormat; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.data.upgrade.UpgradeInfo; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class DoubleStat extends ItemStat implements Upgradable { public DoubleStat(ItemStack item, String name, String[] lore, String path) { diff --git a/src/main/java/net/Indyuce/mmoitems/stat/type/ItemStat.java b/src/main/java/net/Indyuce/mmoitems/stat/type/ItemStat.java index 4ad9ee89..af9335c2 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/type/ItemStat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/type/ItemStat.java @@ -13,7 +13,6 @@ import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.Abilities; @@ -72,12 +71,14 @@ import net.Indyuce.mmoitems.stat.Upgrade_Stat; import net.Indyuce.mmoitems.stat.Vanilla_Eating_Animation; import net.Indyuce.mmoitems.stat.Will_Break; import net.Indyuce.mmoitems.stat.data.StatData; -import net.Indyuce.mmoitems.version.VersionMaterial; import net.Indyuce.mmoitems.version.durability.stat.DefaultDurability; import net.Indyuce.mmoitems.version.durability.stat.LegacyDurability; +import net.mmogroup.mmolib.MMOLib; +import net.mmogroup.mmolib.api.item.NBTItem; +import net.mmogroup.mmolib.version.VersionMaterial; public abstract class ItemStat { - public static final ItemStat MATERIAL = new MaterialStat(), DURABILITY = MMOItems.plugin.getVersion().isBelowOrEqual(1, 12) ? new LegacyDurability() : new DefaultDurability(), CUSTOM_MODEL_DATA = new Custom_Model_Data(), MAX_CUSTOM_DURABILITY = new Max_Custom_Durability(), WILL_BREAK = new Will_Break(); + public static final ItemStat MATERIAL = new MaterialStat(), DURABILITY = MMOLib.plugin.getVersion().isBelowOrEqual(1, 12) ? new LegacyDurability() : new DefaultDurability(), CUSTOM_MODEL_DATA = new Custom_Model_Data(), MAX_CUSTOM_DURABILITY = new Max_Custom_Durability(), WILL_BREAK = new Will_Break(); public static final ItemStat NAME = new Display_Name(), LORE = new Lore(); public static final ItemStat DISPLAYED_TYPE = new StringStat(new ItemStack(VersionMaterial.OAK_SIGN.toMaterial()), "Displayed Type", new String[] { "This option will only affect the", "type displayed on the item lore." }, "displayed-type", new String[] { "all" }); public static final ItemStat ENCHANTS = new Enchants(), HIDE_ENCHANTS = new Hide_Enchants(), PERMISSION = new Permission(), ITEM_PARTICLES = new Item_Particles(), ARROW_PARTICLES = new Arrow_Particles(); diff --git a/src/main/java/net/Indyuce/mmoitems/stat/type/StringStat.java b/src/main/java/net/Indyuce/mmoitems/stat/type/StringStat.java index 7f7b4df5..2f1ab2c9 100644 --- a/src/main/java/net/Indyuce/mmoitems/stat/type/StringStat.java +++ b/src/main/java/net/Indyuce/mmoitems/stat/type/StringStat.java @@ -14,12 +14,12 @@ import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.ConfigFile; import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.stat.data.StatData; -import net.Indyuce.mmoitems.version.nms.ItemTag; +import net.mmogroup.mmolib.api.item.ItemTag; +import net.mmogroup.mmolib.api.item.NBTItem; public class StringStat extends ItemStat { public StringStat(ItemStack item, String name, String[] lore, String path, String[] types, Material... materials) { diff --git a/src/main/java/net/Indyuce/mmoitems/version/ServerVersion.java b/src/main/java/net/Indyuce/mmoitems/version/ServerVersion.java deleted file mode 100644 index 566dc2a6..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/ServerVersion.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.Indyuce.mmoitems.version; - -import net.Indyuce.mmoitems.version.wrapper.VersionWrapper; -import net.Indyuce.mmoitems.version.wrapper.VersionWrapper_1_13; -import net.Indyuce.mmoitems.version.wrapper.VersionWrapper_1_14; -import net.Indyuce.mmoitems.version.wrapper.VersionWrapper_Legacy; - -public class ServerVersion { - private final String version; - private final int[] integers; - - private final VersionWrapper versionWrapper; - - public ServerVersion(Class clazz) { - version = clazz.getPackage().getName().replace(".", ",").split(",")[3]; - String[] split = version.substring(1).split("\\_"); - integers = new int[] { Integer.parseInt(split[0]), Integer.parseInt(split[1]) }; - - versionWrapper = isBelowOrEqual(1, 12) ? new VersionWrapper_Legacy() : isBelowOrEqual(1, 13) ? new VersionWrapper_1_13() : new VersionWrapper_1_14(); - } - - public boolean isBelowOrEqual(int... version) { - return version[0] > integers[0] ? true : version[1] >= integers[1]; - } - - public boolean isStrictlyHigher(int... version) { - return version[0] < integers[0] ? true : version[1] < integers[1]; - // return !isBelowOrEqual(version); - } - - public int getRevisionNumber() { - return Integer.parseInt(version.split("\\_")[2].replaceAll("[^0-9]", "")); - } - - public int[] toNumbers() { - return integers; - } - - public VersionWrapper getWrapper() { - return versionWrapper; - } - - @Override - public String toString() { - return version; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/SpigotPlugin.java b/src/main/java/net/Indyuce/mmoitems/version/SpigotPlugin.java deleted file mode 100644 index 0261701b..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/SpigotPlugin.java +++ /dev/null @@ -1,109 +0,0 @@ -package net.Indyuce.mmoitems.version; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.util.Arrays; -import java.util.List; -import java.util.logging.Level; - -import javax.net.ssl.HttpsURLConnection; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class SpigotPlugin { - private JavaPlugin plugin; - private int id; - private String version; - - public SpigotPlugin(int id, JavaPlugin plugin) { - this.plugin = plugin; - this.id = id; - } - - /* - * the request is executed asynchronously as not to block the main thread. - */ - public void checkForUpdate() { - Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { - try { - HttpsURLConnection connection = (HttpsURLConnection) new URL("https://api.spigotmc.org/legacy/update.php?resource=" + id).openConnection(); - connection.setRequestMethod("GET"); - version = new BufferedReader(new InputStreamReader(connection.getInputStream())).readLine(); - } catch (IOException e) { - plugin.getLogger().log(Level.INFO, "Couldn't check the latest plugin version :/"); - return; - } - - if (!isOldVersion(version, plugin.getDescription().getVersion())) return; - - plugin.getLogger().log(Level.INFO, "A new build is available: " + version + " (you are running " + plugin.getDescription().getVersion() + ")"); - plugin.getLogger().log(Level.INFO, "Download it here: " + getResourceUrl()); - - /* - * registers the event to notify op players when they join only if - * the corresponding option is enabled - */ - if (plugin.getConfig().getBoolean("update-notify")) - Bukkit.getScheduler().runTask(plugin, () -> Bukkit.getPluginManager().registerEvents(new Listener() { - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerJoin(PlayerJoinEvent event) { - Player player = event.getPlayer(); - if (player.hasPermission(plugin.getName().toLowerCase() + ".update-notify")) - getOutOfDateMessage().forEach(msg -> player.sendMessage(ChatColor.translateAlternateColorCodes('&', msg))); - } - }, plugin)); - }); - } - - private boolean isOldVersion(String v1, String v2) { - if(v1.equals(v2)) return false; - String[] netVersion = v1.replaceAll("[^0-9.]", "").split("\\."); - String[] localVersion = v2.replaceAll("[^0-9.]", "").split("\\."); - - int netVersionFirst = parse(netVersion[0]); - int localVersionFirst = parse(localVersion[0]); - - if(netVersionFirst < localVersionFirst) return false; - if(netVersionFirst > localVersionFirst) return true; - - int netVersionMiddle = parse(netVersion[1]); - int localVersionMiddle = parse(localVersion[1]); - - if(netVersionMiddle < localVersionMiddle) return false; - if(netVersionMiddle > localVersionMiddle) return true; - - int netVersionLast = netVersion.length > 1 ? parse(netVersion[2]) : 0; - int localVersionLast = localVersion.length > 1 ? parse(localVersion[2]) : 0; - - if(netVersionLast < localVersionLast) return false; - if(netVersionLast > localVersionLast) return true; - - return false; - } - - private int parse(String s) { - try { - return Integer.parseInt(s); - } - catch(NumberFormatException e) { - plugin.getLogger().warning("Something went wrong checking the version numbers!"); - return 0; - } - } - - private List getOutOfDateMessage() { - return Arrays.asList("&8--------------------------------------------", "&a" + plugin.getName() + " " + version + " is available!", "&a" + getResourceUrl(), "&7&oYou can disable this notification in the config file.", "&8--------------------------------------------"); - } - public String getResourceUrl() { - return "https://www.mythicmobs.net/index.php?pages/download-mmoitems/"; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/VersionMaterial.java b/src/main/java/net/Indyuce/mmoitems/version/VersionMaterial.java deleted file mode 100644 index a5c00d26..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/VersionMaterial.java +++ /dev/null @@ -1,84 +0,0 @@ -package net.Indyuce.mmoitems.version; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -import net.Indyuce.mmoitems.MMOItems; - -public enum VersionMaterial { - - /* - * the enum object name corresponds to the 1.14 material name. the first - * argument corresponds to the 1.13 name. second argument corresponds to - * legacy, third is DURABILITY if needed only. - */ - - OAK_SIGN("SIGN", "SIGN"), - LAPIS_LAZULI("LAPIS_LAZULI", "INK_SACK", 4), - LIME_DYE("LIME_DYE", "INK_SACK", 5), - LIGHT_GRAY_DYE("LIGHT_GRAY_DYE", "INK_SACK", 7), - GRAY_DYE("GRAY_DYE", "INK_SACK", 8), - LIGHT_BLUE_DYE("LIGHT_BLUE_DYE", "INK_SACK", 12), - RED_DYE("ROSE_RED", "INK_SACK", 14), - BONE_MEAL("BONE_MEAL", "INK_SACK", 18), - GRAY_STAINED_GLASS_PANE("GRAY_STAINED_GLASS_PANE", "STAINED_GLASS_PANE", 7), - RED_STAINED_GLASS_PANE("RED_STAINED_GLASS_PANE", "STAINED_GLASS_PANE", 14), - GREEN_STAINED_GLASS_PANE("GREEN_STAINED_GLASS_PANE", "STAINED_GLASS_PANE", 13), - LIME_STAINED_GLASS("LIME_STAINED_GLASS", "STAINED_GLASS", 5), - PINK_STAINED_GLASS("PINK_STAINED_GLASS", "STAINED_GLASS", 6), - PLAYER_HEAD("PLAYER_HEAD", "SKULL_ITEM", 3), - SKELETON_SKULL("SKELETON_SKULL", "SKULL_ITEM"), - NETHER_WART("NETHER_WART", "NETHER_STALK"), - WRITABLE_BOOK("WRITABLE_BOOK", "BOOK_AND_QUILL"), - CRAFTING_TABLE("CRAFTING_TABLE", "WORKBENCH"), - SNOWBALL("SNOWBALL", "SNOW_BALL"), - LILY_PAD("LILY_PAD", "WATER_LILY"), - GUNPOWDER("GUNPOWDER", "SULPHUR"), - OAK_SAPLING("OAK_SAPLING", "SAPLING"), - COMPARATOR("COMPARATOR", "REDSTONE_COMPARATOR"), - EXPERIENCE_BOTTLE("EXPERIENCE_BOTTLE", "EXP_BOTTLE"), - IRON_HORSE_ARMOR("IRON_HORSE_ARMOR", "IRON_BARDING"), - MUSIC_DISC_MALL("MUSIC_DISC_MALL", "RECORD_8"), - COBBLESTONE_WALL("COBBLESTONE_WALL", "COBBLE_WALL"), - ENDER_EYE("ENDER_EYE", "EYE_OF_ENDER"), - GRASS_BLOCK("GRASS_BLOCK", "GRASS"), - ENCHANTING_TABLE("ENCHANTING_TABLE", "ENCHANTMENT_TABLE"), - PORKCHOP("PORKCHOP", "PORK"), - GOLDEN_CHESTPLATE("GOLDEN_CHESTPLATE", "GOLD_CHESTPLATE"), - GOLDEN_HORSE_ARMOR("GOLDEN_HORSE_ARMOR", "GOLD_BARDING"), - COMMAND_BLOCK_MINECART("COMMAND_BLOCK_MINECART", "COMMAND_MINECART"), - COMMAND_BLOCK("COMMAND_BLOCK", "COMMAND"), - OAK_PLANKS("OAK_PLANKS", "WOOD"), - CAULDRON("CAULDRON", "CAULDRON_ITEM"), - DIAMOND_HORSE_ARMOR("DIAMOND_HORSE_ARMOR", "DIAMOND_BARDING"), - - ; - - private Material material; - private ItemStack item; - - private VersionMaterial(String name_1_13, String legacy) { - material = Material.valueOf(MMOItems.plugin.getVersion().isStrictlyHigher(1, 13) ? name() : MMOItems.plugin.getVersion().isStrictlyHigher(1, 12) ? name_1_13 : legacy); - } - - @SuppressWarnings("deprecation") - private VersionMaterial(String name_1_13, String legacy, int legacyDurability) { - if (MMOItems.plugin.getVersion().isStrictlyHigher(1, 12)) - material = Material.valueOf(MMOItems.plugin.getVersion().isStrictlyHigher(1, 13) ? name() : name_1_13); - else - item = new ItemStack(material = Material.valueOf(legacy), 1, (short) legacyDurability); - } - - public Material toMaterial() { - return material; - } - - public boolean hasItem() { - return item != null; - } - - public ItemStack toItem() { - return hasItem() ? item.clone() : new ItemStack(material); - } -} - diff --git a/src/main/java/net/Indyuce/mmoitems/version/VersionSound.java b/src/main/java/net/Indyuce/mmoitems/version/VersionSound.java deleted file mode 100644 index 9f099a81..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/VersionSound.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.Indyuce.mmoitems.version; - -import org.bukkit.Sound; - -import net.Indyuce.mmoitems.MMOItems; - -public enum VersionSound { - ENTITY_ENDERMAN_HURT("ENTITY_ENDERMEN_HURT"), - ENTITY_ENDERMAN_DEATH("ENTITY_ENDERMEN_DEATH"), - ENTITY_ENDERMAN_TELEPORT("ENTITY_ENDERMEN_TELEPORT"), - ENTITY_FIREWORK_ROCKET_LARGE_BLAST("ENTITY_FIREWORK_LARGE_BLAST"), - ENTITY_FIREWORK_ROCKET_TWINKLE("ENTITY_FIREWORK_TWINKLE"), - ENTITY_FIREWORK_ROCKET_BLAST("ENTITY_FIREWORK_BLAST"), - ENTITY_ZOMBIE_PIGMAN_ANGRY("ENTITY_ZOMBIE_PIG_ANGRY"), - BLOCK_NOTE_BLOCK_HAT("BLOCK_NOTE_HAT"), - BLOCK_NOTE_BLOCK_PLING("BLOCK_NOTE_PLING"), - BLOCK_NOTE_BLOCK_BELL("BLOCK_NOTE_BELL"), - ENTITY_ZOMBIE_ATTACK_WOODEN_DOOR("ENTITY_ZOMBIE_ATTACK_DOOR_WOOD"), - ENTITY_ENDER_DRAGON_GROWL("ENTITY_ENDERDRAGON_GROWL"), - ENTITY_ENDER_DRAGON_FLAP("ENTITY_ENDERDRAGON_FLAP"), - - ; - - private final Sound sound; - - private VersionSound(String legacy) { - sound = Sound.valueOf(MMOItems.plugin.getVersion().isStrictlyHigher(1, 12) ? name() : legacy); - } - - public Sound toSound() { - return sound; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/durability/stat/DefaultDurability.java b/src/main/java/net/Indyuce/mmoitems/version/durability/stat/DefaultDurability.java index 5140d525..7646bd34 100644 --- a/src/main/java/net/Indyuce/mmoitems/version/durability/stat/DefaultDurability.java +++ b/src/main/java/net/Indyuce/mmoitems/version/durability/stat/DefaultDurability.java @@ -5,11 +5,11 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.Damageable; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.DoubleStat; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class DefaultDurability extends DoubleStat { public DefaultDurability() { diff --git a/src/main/java/net/Indyuce/mmoitems/version/durability/stat/LegacyDurability.java b/src/main/java/net/Indyuce/mmoitems/version/durability/stat/LegacyDurability.java index 0da7b908..7630572e 100644 --- a/src/main/java/net/Indyuce/mmoitems/version/durability/stat/LegacyDurability.java +++ b/src/main/java/net/Indyuce/mmoitems/version/durability/stat/LegacyDurability.java @@ -5,11 +5,11 @@ import org.bukkit.entity.Damageable; import org.bukkit.inventory.ItemStack; import net.Indyuce.mmoitems.api.item.MMOItem; -import net.Indyuce.mmoitems.api.item.NBTItem; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.stat.data.StatData; import net.Indyuce.mmoitems.stat.type.DoubleStat; import net.Indyuce.mmoitems.stat.type.ItemStat; +import net.mmogroup.mmolib.api.item.NBTItem; public class LegacyDurability extends DoubleStat { public LegacyDurability() { diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/ItemTag.java b/src/main/java/net/Indyuce/mmoitems/version/nms/ItemTag.java deleted file mode 100644 index 61150e76..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/ItemTag.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -public class ItemTag { - private String path; - private Object value; - - public ItemTag(String path, Object value) { - this.path = path; - this.value = value; - } - - public String getPath() { - return path; - } - - public Object getValue() { - return value; - } -} \ No newline at end of file diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler.java b/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler.java deleted file mode 100644 index 57671053..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; - -import net.Indyuce.mmoitems.api.item.NBTItem; - -public interface NMSHandler { - NBTItem getNBTItem(ItemStack item); - - void sendTitle(Player player, String title, String subtitle, int fadeIn, int ticks, int fadeOut); - - void sendActionBar(Player player, String message); - - void sendJson(Player player, String message); - - int getNextContainerId(Player player); - - void handleInventoryCloseEvent(Player player); - - void sendPacketOpenWindow(Player player, int containerId); - - void sendPacketCloseWindow(Player player, int containerId); - - void setActiveContainerDefault(Player player); - - void setActiveContainer(Player player, Object container); - - void setActiveContainerId(Object container, int containerId); - - void addActiveContainerSlotListener(Object container, Player player); - - void playArmAnimation(Player player); - - Inventory toBukkitInventory(Object container); - - Sound getBlockPlaceSound(Block block); - - Object newContainerAnvil(Player player); - - boolean isInBoundingBox(Entity entity, Location loc); - - double distanceSquaredFromBoundingBox(Entity entity, Location loc); - - default double distanceFromBoundingBox(Entity entity, Location loc) { - return Math.sqrt(distanceFromBoundingBox(entity, loc)); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_12_R1.java b/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_12_R1.java deleted file mode 100644 index ec204ac7..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_12_R1.java +++ /dev/null @@ -1,244 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_12_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory; -import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.minecraft.server.v1_12_R1.AxisAlignedBB; -import net.minecraft.server.v1_12_R1.Block; -import net.minecraft.server.v1_12_R1.BlockPosition; -import net.minecraft.server.v1_12_R1.Blocks; -import net.minecraft.server.v1_12_R1.ChatMessage; -import net.minecraft.server.v1_12_R1.ChatMessageType; -import net.minecraft.server.v1_12_R1.Container; -import net.minecraft.server.v1_12_R1.ContainerAnvil; -import net.minecraft.server.v1_12_R1.EntityHuman; -import net.minecraft.server.v1_12_R1.EntityPlayer; -import net.minecraft.server.v1_12_R1.EnumHand; -import net.minecraft.server.v1_12_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_12_R1.ItemStack; -import net.minecraft.server.v1_12_R1.MinecraftKey; -import net.minecraft.server.v1_12_R1.NBTTagCompound; -import net.minecraft.server.v1_12_R1.PacketPlayInArmAnimation; -import net.minecraft.server.v1_12_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_12_R1.PacketPlayOutChat; -import net.minecraft.server.v1_12_R1.PacketPlayOutCloseWindow; -import net.minecraft.server.v1_12_R1.PacketPlayOutOpenWindow; -import net.minecraft.server.v1_12_R1.PacketPlayOutTitle; -import net.minecraft.server.v1_12_R1.PacketPlayOutTitle.EnumTitleAction; -import net.minecraft.server.v1_12_R1.PlayerConnection; -import net.minecraft.server.v1_12_R1.SoundEffect; -import net.minecraft.server.v1_12_R1.SoundEffectType; -import net.minecraft.server.v1_12_R1.World; - -public class NMSHandler_1_12_R1 implements NMSHandler { - @Override - public void sendJson(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(message))); - } - - @Override - public void sendTitle(Player player, String msgTitle, String msgSubTitle, int fadeIn, int ticks, int fadeOut) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\": \"" + msgTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\": \"" + msgSubTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TIMES, null, fadeIn, ticks, fadeOut)); - } - - @Override - public void sendActionBar(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a("{\"text\": \"" + message + "\"}"), ChatMessageType.GAME_INFO)); - } - - @Override - public int getNextContainerId(Player player) { - return ((CraftPlayer) player).getHandle().nextContainerCounter(); - } - - @Override - public void handleInventoryCloseEvent(Player player) { - CraftEventFactory.handleInventoryCloseEvent(((CraftPlayer) player).getHandle()); - } - - @Override - public void sendPacketOpenWindow(Player player, int containerId) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutOpenWindow(containerId, "minecraft:anvil", new ChatMessage(Blocks.ANVIL.a() + ".name"))); - } - - @Override - public void sendPacketCloseWindow(Player player, int containerId) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId)); - } - - @Override - public void setActiveContainerDefault(Player player) { - ((CraftPlayer) player).getHandle().activeContainer = ((CraftPlayer) player).getHandle().defaultContainer; - } - - @Override - public void setActiveContainer(Player player, Object container) { - ((CraftPlayer) player).getHandle().activeContainer = (Container) container; - } - - @Override - public void setActiveContainerId(Object container, int containerId) { - ((Container) container).windowId = containerId; - } - - @Override - public void addActiveContainerSlotListener(Object container, Player player) { - ((Container) container).addSlotListener(((CraftPlayer) player).getHandle()); - } - - @Override - public Inventory toBukkitInventory(Object container) { - return ((Container) container).getBukkitView().getTopInventory(); - } - - @Override - public Object newContainerAnvil(Player player) { - return new AnvilContainer(((CraftPlayer) player).getHandle()); - } - - private class AnvilContainer extends ContainerAnvil { - public AnvilContainer(EntityHuman entityhuman) { - super(entityhuman.inventory, entityhuman.world, new BlockPosition(0, 0, 0), entityhuman); - this.checkReachable = false; - } - } - - @Override - public NBTItem getNBTItem(org.bukkit.inventory.ItemStack item) { - return new NBTItem_v1_12_R1(item); - } - - public class NBTItem_v1_12_R1 extends NBTItem { - private final ItemStack nms; - private final NBTTagCompound compound; - - public NBTItem_v1_12_R1(org.bukkit.inventory.ItemStack item) { - super(item); - - nms = CraftItemStack.asNMSCopy(item); - compound = nms.hasTag() ? nms.getTag() : new NBTTagCompound(); - } - - @Override - public String getString(String path) { - return compound.getString(path); - } - - @Override - public boolean hasTag(String path) { - return compound.hasKey(path); - } - - @Override - public boolean getBoolean(String path) { - return compound.getBoolean(path); - } - - @Override - public double getDouble(String path) { - return compound.getDouble(path); - } - - @Override - public int getInteger(String path) { - return compound.getInt(path); - } - - @Override - public NBTItem addTag(List tags) { - tags.forEach(tag -> { - if (tag.getValue() instanceof Boolean) - compound.setBoolean(tag.getPath(), (boolean) tag.getValue()); - else if (tag.getValue() instanceof Double) - compound.setDouble(tag.getPath(), (double) tag.getValue()); - else if (tag.getValue() instanceof String) - compound.setString(tag.getPath(), (String) tag.getValue()); - else if (tag.getValue() instanceof Integer) - compound.setInt(tag.getPath(), (int) tag.getValue()); - }); - return this; - } - - @Override - public NBTItem removeTag(String... paths) { - for (String path : paths) - compound.remove(path); - return this; - } - - @Override - public Set getTags() { - return compound.c(); - } - - @Override - public org.bukkit.inventory.ItemStack toItem() { - nms.setTag(compound); - return CraftItemStack.asBukkitCopy(nms); - } - } - - @Override - public boolean isInBoundingBox(Entity entity, Location loc) { - AxisAlignedBB box = ((CraftEntity) entity).getHandle().getBoundingBox().grow(.2, .2, .2); - return box.a < loc.getX() && box.d > loc.getX() && box.b < loc.getY() && box.e > loc.getY() && box.c < loc.getZ() && box.f > loc.getZ(); - } - - @Override - public double distanceSquaredFromBoundingBox(Entity entity, Location loc) { - AxisAlignedBB box = ((CraftEntity) entity).getHandle().getBoundingBox().grow(.2, .2, .2); - - double dx = loc.getX() > box.a && loc.getX() < box.d ? 0 : Math.min(Math.abs(box.a - loc.getX()), Math.abs(box.d - loc.getX())); - double dy = loc.getY() > box.b && loc.getY() < box.e ? 0 : Math.min(Math.abs(box.b - loc.getY()), Math.abs(box.e - loc.getY())); - double dz = loc.getZ() > box.c && loc.getZ() < box.f ? 0 : Math.min(Math.abs(box.c - loc.getZ()), Math.abs(box.f - loc.getZ())); - - return dx * dx + dx * dy + dz * dz; - } - - @Override - public void playArmAnimation(Player player) { - EntityPlayer p = ((CraftPlayer) player).getHandle(); - PlayerConnection connection = p.playerConnection; - PacketPlayOutAnimation armSwing = new PacketPlayOutAnimation(p, 0); - connection.sendPacket(armSwing); - connection.a(new PacketPlayInArmAnimation(EnumHand.MAIN_HAND)); - } - - @Override - public Sound getBlockPlaceSound(org.bukkit.block.Block block) { - try { - World nmsWorld = ((CraftWorld) block.getWorld()).getHandle(); - - Block nmsBlock = nmsWorld.getType(new BlockPosition(block.getX(), block.getY(), block.getZ())).getBlock(); - SoundEffectType soundEffectType = nmsBlock.getStepSound(); - - Field breakSound = SoundEffectType.class.getDeclaredField("y"); - breakSound.setAccessible(true); - SoundEffect nmsSound = (SoundEffect) breakSound.get(soundEffectType); - - Field keyField = SoundEffect.class.getDeclaredField("a"); - keyField.setAccessible(true); - MinecraftKey nmsString = (MinecraftKey) keyField.get(nmsSound); - - return Sound.valueOf(nmsString.getKey().replace(".", "_").toUpperCase()); - } catch (IllegalAccessException | NoSuchFieldException ex) { - ex.printStackTrace(); - } - return null; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_13_R1.java b/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_13_R1.java deleted file mode 100644 index 53e21f4f..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_13_R1.java +++ /dev/null @@ -1,242 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_13_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_13_R1.event.CraftEventFactory; -import org.bukkit.craftbukkit.v1_13_R1.inventory.CraftItemStack; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.util.BoundingBox; - -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.minecraft.server.v1_13_R1.Block; -import net.minecraft.server.v1_13_R1.BlockPosition; -import net.minecraft.server.v1_13_R1.Blocks; -import net.minecraft.server.v1_13_R1.ChatMessage; -import net.minecraft.server.v1_13_R1.ChatMessageType; -import net.minecraft.server.v1_13_R1.Container; -import net.minecraft.server.v1_13_R1.ContainerAnvil; -import net.minecraft.server.v1_13_R1.EntityHuman; -import net.minecraft.server.v1_13_R1.EntityPlayer; -import net.minecraft.server.v1_13_R1.EnumHand; -import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R1.ItemStack; -import net.minecraft.server.v1_13_R1.MinecraftKey; -import net.minecraft.server.v1_13_R1.NBTTagCompound; -import net.minecraft.server.v1_13_R1.PacketPlayInArmAnimation; -import net.minecraft.server.v1_13_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_13_R1.PacketPlayOutChat; -import net.minecraft.server.v1_13_R1.PacketPlayOutCloseWindow; -import net.minecraft.server.v1_13_R1.PacketPlayOutOpenWindow; -import net.minecraft.server.v1_13_R1.PacketPlayOutTitle; -import net.minecraft.server.v1_13_R1.PacketPlayOutTitle.EnumTitleAction; -import net.minecraft.server.v1_13_R1.PlayerConnection; -import net.minecraft.server.v1_13_R1.SoundEffect; -import net.minecraft.server.v1_13_R1.SoundEffectType; -import net.minecraft.server.v1_13_R1.World; - -public class NMSHandler_1_13_R1 implements NMSHandler { - @Override - public void sendJson(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(message))); - } - - @Override - public void sendTitle(Player player, String msgTitle, String msgSubTitle, int fadeIn, int ticks, int fadeOut) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\": \"" + msgTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\": \"" + msgSubTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TIMES, null, fadeIn, ticks, fadeOut)); - } - - @Override - public void sendActionBar(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a("{\"text\": \"" + message + "\"}"), ChatMessageType.GAME_INFO)); - } - - @Override - public int getNextContainerId(Player player) { - return ((CraftPlayer) player).getHandle().nextContainerCounter(); - } - - @Override - public void handleInventoryCloseEvent(Player player) { - CraftEventFactory.handleInventoryCloseEvent(((CraftPlayer) player).getHandle()); - } - - @Override - public void sendPacketOpenWindow(Player player, int containerId) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutOpenWindow(containerId, "minecraft:anvil", new ChatMessage(Blocks.ANVIL.a() + ".name"))); - } - - @Override - public void sendPacketCloseWindow(Player player, int containerId) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId)); - } - - @Override - public void setActiveContainerDefault(Player player) { - ((CraftPlayer) player).getHandle().activeContainer = ((CraftPlayer) player).getHandle().defaultContainer; - } - - @Override - public void setActiveContainer(Player player, Object container) { - ((CraftPlayer) player).getHandle().activeContainer = (Container) container; - } - - @Override - public void setActiveContainerId(Object container, int containerId) { - ((Container) container).windowId = containerId; - } - - @Override - public void addActiveContainerSlotListener(Object container, Player player) { - ((Container) container).addSlotListener(((CraftPlayer) player).getHandle()); - } - - @Override - public Inventory toBukkitInventory(Object container) { - return ((Container) container).getBukkitView().getTopInventory(); - } - - @Override - public Object newContainerAnvil(Player player) { - return new AnvilContainer(((CraftPlayer) player).getHandle()); - } - - private class AnvilContainer extends ContainerAnvil { - public AnvilContainer(EntityHuman entityhuman) { - super(entityhuman.inventory, entityhuman.world, new BlockPosition(0, 0, 0), entityhuman); - this.checkReachable = false; - } - } - - @Override - public NBTItem getNBTItem(org.bukkit.inventory.ItemStack item) { - return new NBTItem_v1_13_R1(item); - } - - public class NBTItem_v1_13_R1 extends NBTItem { - private final ItemStack nms; - private final NBTTagCompound compound; - - public NBTItem_v1_13_R1(org.bukkit.inventory.ItemStack item) { - super(item); - - nms = CraftItemStack.asNMSCopy(item); - compound = nms.hasTag() ? nms.getTag() : new NBTTagCompound(); - } - - @Override - public String getString(String path) { - return compound.getString(path); - } - - @Override - public boolean hasTag(String path) { - return compound.hasKey(path); - } - - @Override - public boolean getBoolean(String path) { - return compound.getBoolean(path); - } - - @Override - public double getDouble(String path) { - return compound.getDouble(path); - } - - @Override - public int getInteger(String path) { - return compound.getInt(path); - } - - @Override - public NBTItem addTag(List tags) { - tags.forEach(tag -> { - if (tag.getValue() instanceof Boolean) - compound.setBoolean(tag.getPath(), (boolean) tag.getValue()); - else if (tag.getValue() instanceof Double) - compound.setDouble(tag.getPath(), (double) tag.getValue()); - else if (tag.getValue() instanceof String) - compound.setString(tag.getPath(), (String) tag.getValue()); - else if (tag.getValue() instanceof Integer) - compound.setInt(tag.getPath(), (int) tag.getValue()); - }); - return this; - } - - @Override - public NBTItem removeTag(String... paths) { - for (String path : paths) - compound.remove(path); - return this; - } - - @Override - public Set getTags() { - return compound.getKeys(); - } - - @Override - public org.bukkit.inventory.ItemStack toItem() { - nms.setTag(compound); - return CraftItemStack.asBukkitCopy(nms); - } - } - - @Override - public boolean isInBoundingBox(Entity entity, Location loc) { - return entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2).contains(loc.toVector()); - } - - @Override - public double distanceSquaredFromBoundingBox(Entity entity, Location loc) { - BoundingBox box = entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2); - - double dx = loc.getX() > box.getMinX() && loc.getX() < box.getMaxX() ? 0 : Math.min(Math.abs(box.getMinX() - loc.getX()), Math.abs(box.getMaxX() - loc.getX())); - double dy = loc.getY() > box.getMinY() && loc.getY() < box.getMaxY() ? 0 : Math.min(Math.abs(box.getMinY() - loc.getY()), Math.abs(box.getMaxY() - loc.getY())); - double dz = loc.getZ() > box.getMinZ() && loc.getZ() < box.getMaxZ() ? 0 : Math.min(Math.abs(box.getMinZ() - loc.getZ()), Math.abs(box.getMaxZ() - loc.getZ())); - - return dx * dx + dx * dy + dz * dz; - } - - @Override - public void playArmAnimation(Player player) { - EntityPlayer p = ((CraftPlayer) player).getHandle(); - PlayerConnection connection = p.playerConnection; - PacketPlayOutAnimation armSwing = new PacketPlayOutAnimation(p, 0); - connection.sendPacket(armSwing); - connection.a(new PacketPlayInArmAnimation(EnumHand.MAIN_HAND)); - } - - @Override - public Sound getBlockPlaceSound(org.bukkit.block.Block block) { - try { - World nmsWorld = ((CraftWorld) block.getWorld()).getHandle(); - - Block nmsBlock = nmsWorld.getType(new BlockPosition(block.getX(), block.getY(), block.getZ())).getBlock(); - SoundEffectType soundEffectType = nmsBlock.getStepSound(); - - Field breakSound = SoundEffectType.class.getDeclaredField("y"); - breakSound.setAccessible(true); - SoundEffect nmsSound = (SoundEffect) breakSound.get(soundEffectType); - - Field keyField = SoundEffect.class.getDeclaredField("a"); - keyField.setAccessible(true); - MinecraftKey nmsString = (MinecraftKey) keyField.get(nmsSound); - - return Sound.valueOf(nmsString.getKey().replace(".", "_").toUpperCase()); - } catch (IllegalAccessException | NoSuchFieldException ex) { - ex.printStackTrace(); - } - return null; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_13_R2.java b/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_13_R2.java deleted file mode 100644 index 2376c963..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_13_R2.java +++ /dev/null @@ -1,242 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory; -import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.util.BoundingBox; - -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.minecraft.server.v1_13_R2.Block; -import net.minecraft.server.v1_13_R2.BlockPosition; -import net.minecraft.server.v1_13_R2.Blocks; -import net.minecraft.server.v1_13_R2.ChatMessage; -import net.minecraft.server.v1_13_R2.ChatMessageType; -import net.minecraft.server.v1_13_R2.Container; -import net.minecraft.server.v1_13_R2.ContainerAnvil; -import net.minecraft.server.v1_13_R2.EntityHuman; -import net.minecraft.server.v1_13_R2.EntityPlayer; -import net.minecraft.server.v1_13_R2.EnumHand; -import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R2.ItemStack; -import net.minecraft.server.v1_13_R2.MinecraftKey; -import net.minecraft.server.v1_13_R2.NBTTagCompound; -import net.minecraft.server.v1_13_R2.PacketPlayInArmAnimation; -import net.minecraft.server.v1_13_R2.PacketPlayOutAnimation; -import net.minecraft.server.v1_13_R2.PacketPlayOutChat; -import net.minecraft.server.v1_13_R2.PacketPlayOutCloseWindow; -import net.minecraft.server.v1_13_R2.PacketPlayOutOpenWindow; -import net.minecraft.server.v1_13_R2.PacketPlayOutTitle; -import net.minecraft.server.v1_13_R2.PacketPlayOutTitle.EnumTitleAction; -import net.minecraft.server.v1_13_R2.PlayerConnection; -import net.minecraft.server.v1_13_R2.SoundEffect; -import net.minecraft.server.v1_13_R2.SoundEffectType; -import net.minecraft.server.v1_13_R2.World; - -public class NMSHandler_1_13_R2 implements NMSHandler { - @Override - public void sendJson(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(message))); - } - - @Override - public void sendTitle(Player player, String msgTitle, String msgSubTitle, int fadeIn, int ticks, int fadeOut) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\": \"" + msgTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\": \"" + msgSubTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TIMES, null, fadeIn, ticks, fadeOut)); - } - - @Override - public void sendActionBar(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a("{\"text\": \"" + message + "\"}"), ChatMessageType.GAME_INFO)); - } - - @Override - public int getNextContainerId(Player player) { - return ((CraftPlayer) player).getHandle().nextContainerCounter(); - } - - @Override - public void handleInventoryCloseEvent(Player player) { - CraftEventFactory.handleInventoryCloseEvent(((CraftPlayer) player).getHandle()); - } - - @Override - public void sendPacketOpenWindow(Player player, int containerId) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutOpenWindow(containerId, "minecraft:anvil", new ChatMessage(Blocks.ANVIL.a() + ".name"))); - } - - @Override - public void sendPacketCloseWindow(Player player, int containerId) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId)); - } - - @Override - public void setActiveContainerDefault(Player player) { - ((CraftPlayer) player).getHandle().activeContainer = ((CraftPlayer) player).getHandle().defaultContainer; - } - - @Override - public void setActiveContainer(Player player, Object container) { - ((CraftPlayer) player).getHandle().activeContainer = (Container) container; - } - - @Override - public void setActiveContainerId(Object container, int containerId) { - ((Container) container).windowId = containerId; - } - - @Override - public void addActiveContainerSlotListener(Object container, Player player) { - ((Container) container).addSlotListener(((CraftPlayer) player).getHandle()); - } - - @Override - public Inventory toBukkitInventory(Object container) { - return ((Container) container).getBukkitView().getTopInventory(); - } - - @Override - public Object newContainerAnvil(Player player) { - return new AnvilContainer(((CraftPlayer) player).getHandle()); - } - - private class AnvilContainer extends ContainerAnvil { - public AnvilContainer(EntityHuman entityhuman) { - super(entityhuman.inventory, entityhuman.world, new BlockPosition(0, 0, 0), entityhuman); - this.checkReachable = false; - } - } - - @Override - public NBTItem getNBTItem(org.bukkit.inventory.ItemStack item) { - return new NBTItem_v1_13_R2(item); - } - - public class NBTItem_v1_13_R2 extends NBTItem { - private final ItemStack nms; - private final NBTTagCompound compound; - - public NBTItem_v1_13_R2(org.bukkit.inventory.ItemStack item) { - super(item); - - nms = CraftItemStack.asNMSCopy(item); - compound = nms.hasTag() ? nms.getTag() : new NBTTagCompound(); - } - - @Override - public String getString(String path) { - return compound.getString(path); - } - - @Override - public boolean hasTag(String path) { - return compound.hasKey(path); - } - - @Override - public boolean getBoolean(String path) { - return compound.getBoolean(path); - } - - @Override - public double getDouble(String path) { - return compound.getDouble(path); - } - - @Override - public int getInteger(String path) { - return compound.getInt(path); - } - - @Override - public NBTItem addTag(List tags) { - tags.forEach(tag -> { - if (tag.getValue() instanceof Boolean) - compound.setBoolean(tag.getPath(), (boolean) tag.getValue()); - else if (tag.getValue() instanceof Double) - compound.setDouble(tag.getPath(), (double) tag.getValue()); - else if (tag.getValue() instanceof String) - compound.setString(tag.getPath(), (String) tag.getValue()); - else if (tag.getValue() instanceof Integer) - compound.setInt(tag.getPath(), (int) tag.getValue()); - }); - return this; - } - - @Override - public NBTItem removeTag(String... paths) { - for (String path : paths) - compound.remove(path); - return this; - } - - @Override - public Set getTags() { - return compound.getKeys(); - } - - @Override - public org.bukkit.inventory.ItemStack toItem() { - nms.setTag(compound); - return CraftItemStack.asBukkitCopy(nms); - } - } - - @Override - public boolean isInBoundingBox(Entity entity, Location loc) { - return entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2).contains(loc.toVector()); - } - - @Override - public double distanceSquaredFromBoundingBox(Entity entity, Location loc) { - BoundingBox box = entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2); - - double dx = loc.getX() > box.getMinX() && loc.getX() < box.getMaxX() ? 0 : Math.min(Math.abs(box.getMinX() - loc.getX()), Math.abs(box.getMaxX() - loc.getX())); - double dy = loc.getY() > box.getMinY() && loc.getY() < box.getMaxY() ? 0 : Math.min(Math.abs(box.getMinY() - loc.getY()), Math.abs(box.getMaxY() - loc.getY())); - double dz = loc.getZ() > box.getMinZ() && loc.getZ() < box.getMaxZ() ? 0 : Math.min(Math.abs(box.getMinZ() - loc.getZ()), Math.abs(box.getMaxZ() - loc.getZ())); - - return dx * dx + dx * dy + dz * dz; - } - - @Override - public void playArmAnimation(Player player) { - EntityPlayer p = ((CraftPlayer) player).getHandle(); - PlayerConnection connection = p.playerConnection; - PacketPlayOutAnimation armSwing = new PacketPlayOutAnimation(p, 0); - connection.sendPacket(armSwing); - connection.a(new PacketPlayInArmAnimation(EnumHand.MAIN_HAND)); - } - - @Override - public Sound getBlockPlaceSound(org.bukkit.block.Block block) { - try { - World nmsWorld = ((CraftWorld) block.getWorld()).getHandle(); - - Block nmsBlock = nmsWorld.getType(new BlockPosition(block.getX(), block.getY(), block.getZ())).getBlock(); - SoundEffectType soundEffectType = nmsBlock.getStepSound(); - - Field breakSound = SoundEffectType.class.getDeclaredField("y"); - breakSound.setAccessible(true); - SoundEffect nmsSound = (SoundEffect) breakSound.get(soundEffectType); - - Field keyField = SoundEffect.class.getDeclaredField("a"); - keyField.setAccessible(true); - MinecraftKey nmsString = (MinecraftKey) keyField.get(nmsSound); - - return Sound.valueOf(nmsString.getKey().replace(".", "_").toUpperCase()); - } catch (IllegalAccessException | NoSuchFieldException ex) { - ex.printStackTrace(); - } - return null; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_14_R1.java b/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_14_R1.java deleted file mode 100644 index 5632c439..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_14_R1.java +++ /dev/null @@ -1,262 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.reflect.FieldUtils; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.util.BoundingBox; - -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.minecraft.server.v1_14_R1.Block; -import net.minecraft.server.v1_14_R1.BlockPosition; -import net.minecraft.server.v1_14_R1.ChatMessage; -import net.minecraft.server.v1_14_R1.ChatMessageType; -import net.minecraft.server.v1_14_R1.Container; -import net.minecraft.server.v1_14_R1.ContainerAccess; -import net.minecraft.server.v1_14_R1.ContainerAnvil; -import net.minecraft.server.v1_14_R1.Containers; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.EnumHand; -import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_14_R1.ItemStack; -import net.minecraft.server.v1_14_R1.MinecraftKey; -import net.minecraft.server.v1_14_R1.NBTTagCompound; -import net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation; -import net.minecraft.server.v1_14_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_14_R1.PacketPlayOutChat; -import net.minecraft.server.v1_14_R1.PacketPlayOutCloseWindow; -import net.minecraft.server.v1_14_R1.PacketPlayOutOpenWindow; -import net.minecraft.server.v1_14_R1.PacketPlayOutTitle; -import net.minecraft.server.v1_14_R1.PacketPlayOutTitle.EnumTitleAction; -import net.minecraft.server.v1_14_R1.PlayerConnection; -import net.minecraft.server.v1_14_R1.SoundEffect; -import net.minecraft.server.v1_14_R1.SoundEffectType; -import net.minecraft.server.v1_14_R1.World; - -public class NMSHandler_1_14_R1 implements NMSHandler { - @Override - public void sendJson(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(message))); - } - - @Override - public void sendTitle(Player player, String msgTitle, String msgSubTitle, int fadeIn, int ticks, int fadeOut) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\": \"" + msgTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\": \"" + msgSubTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TIMES, null, fadeIn, ticks, fadeOut)); - } - - @Override - public void sendActionBar(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a("{\"text\": \"" + message + "\"}"), ChatMessageType.GAME_INFO)); - } - - @Override - public int getNextContainerId(Player player) { - return toNMS(player).nextContainerCounter(); - } - - @Override - public void handleInventoryCloseEvent(Player player) { - CraftEventFactory.handleInventoryCloseEvent(toNMS(player)); - } - - @Override - public void sendPacketOpenWindow(Player player, int containerId) { - toNMS(player).playerConnection.sendPacket(new PacketPlayOutOpenWindow(containerId, Containers.ANVIL, new ChatMessage("Repair & Name"))); - } - - @Override - public void sendPacketCloseWindow(Player player, int containerId) { - toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId)); - } - - @Override - public void setActiveContainerDefault(Player player) { - toNMS(player).activeContainer = toNMS(player).defaultContainer; - } - - @Override - public void setActiveContainer(Player player, Object container) { - toNMS(player).activeContainer = (Container) container; - } - - @Override - public void setActiveContainerId(Object container, int containerId) { - Field field = null; - - try { - field = Container.class.getField("windowId"); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } - - FieldUtils.removeFinalModifier(field); - - try { - FieldUtils.writeField(field, container, containerId); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - @Override - public void addActiveContainerSlotListener(Object container, Player player) { - ((Container) container).addSlotListener(toNMS(player)); - } - - @Override - public Inventory toBukkitInventory(Object container) { - return ((Container) container).getBukkitView().getTopInventory(); - } - - @Override - public Object newContainerAnvil(Player player) { - return new AnvilContainer(player); - } - - private EntityPlayer toNMS(Player player) { - return ((CraftPlayer) player).getHandle(); - } - - private class AnvilContainer extends ContainerAnvil { - public AnvilContainer(Player player) { - super(getNextContainerId(player), ((CraftPlayer) player).getHandle().inventory, ContainerAccess.at(((CraftWorld) player.getWorld()).getHandle(), new BlockPosition(0, 0, 0))); - this.checkReachable = false; - setTitle(new ChatMessage("Repair & Name")); - } - } - - @Override - public NBTItem getNBTItem(org.bukkit.inventory.ItemStack item) { - return new NBTItem_v1_14_R1(item); - } - - public class NBTItem_v1_14_R1 extends NBTItem { - private final ItemStack nms; - private final NBTTagCompound compound; - - public NBTItem_v1_14_R1(org.bukkit.inventory.ItemStack item) { - super(item); - - nms = CraftItemStack.asNMSCopy(item); - compound = nms.hasTag() ? nms.getTag() : new NBTTagCompound(); - } - - @Override - public String getString(String path) { - return compound.getString(path); - } - - @Override - public boolean hasTag(String path) { - return compound.hasKey(path); - } - - @Override - public boolean getBoolean(String path) { - return compound.getBoolean(path); - } - - @Override - public double getDouble(String path) { - return compound.getDouble(path); - } - - @Override - public int getInteger(String path) { - return compound.getInt(path); - } - - @Override - public NBTItem addTag(List tags) { - tags.forEach(tag -> { - if (tag.getValue() instanceof Boolean) - compound.setBoolean(tag.getPath(), (boolean) tag.getValue()); - else if (tag.getValue() instanceof Double) - compound.setDouble(tag.getPath(), (double) tag.getValue()); - else if (tag.getValue() instanceof String) - compound.setString(tag.getPath(), (String) tag.getValue()); - else if (tag.getValue() instanceof Integer) - compound.setInt(tag.getPath(), (int) tag.getValue()); - }); - return this; - } - - @Override - public NBTItem removeTag(String... paths) { - for (String path : paths) - compound.remove(path); - return this; - } - - @Override - public Set getTags() { - return compound.getKeys(); - } - - @Override - public org.bukkit.inventory.ItemStack toItem() { - nms.setTag(compound); - return CraftItemStack.asBukkitCopy(nms); - } - } - - @Override - public boolean isInBoundingBox(Entity entity, Location loc) { - return entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2).contains(loc.toVector()); - } - - @Override - public double distanceSquaredFromBoundingBox(Entity entity, Location loc) { - BoundingBox box = entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2); - - double dx = loc.getX() > box.getMinX() && loc.getX() < box.getMaxX() ? 0 : Math.min(Math.abs(box.getMinX() - loc.getX()), Math.abs(box.getMaxX() - loc.getX())); - double dy = loc.getY() > box.getMinY() && loc.getY() < box.getMaxY() ? 0 : Math.min(Math.abs(box.getMinY() - loc.getY()), Math.abs(box.getMaxY() - loc.getY())); - double dz = loc.getZ() > box.getMinZ() && loc.getZ() < box.getMaxZ() ? 0 : Math.min(Math.abs(box.getMinZ() - loc.getZ()), Math.abs(box.getMaxZ() - loc.getZ())); - - return dx * dx + dx * dy + dz * dz; - } - - @Override - public void playArmAnimation(Player player) { - EntityPlayer p = ((CraftPlayer) player).getHandle(); - PlayerConnection connection = p.playerConnection; - PacketPlayOutAnimation armSwing = new PacketPlayOutAnimation(p, 0); - connection.sendPacket(armSwing); - connection.a(new PacketPlayInArmAnimation(EnumHand.MAIN_HAND)); - } - - @Override - public Sound getBlockPlaceSound(org.bukkit.block.Block block) { - try { - World nmsWorld = ((CraftWorld) block.getWorld()).getHandle(); - - Block nmsBlock = nmsWorld.getType(new BlockPosition(block.getX(), block.getY(), block.getZ())).getBlock(); - SoundEffectType soundEffectType = nmsBlock.getStepSound(nmsBlock.getBlockData()); - - Field breakSound = SoundEffectType.class.getDeclaredField("y"); - breakSound.setAccessible(true); - SoundEffect nmsSound = (SoundEffect) breakSound.get(soundEffectType); - - Field keyField = SoundEffect.class.getDeclaredField("a"); - keyField.setAccessible(true); - MinecraftKey nmsString = (MinecraftKey) keyField.get(nmsSound); - - return Sound.valueOf(nmsString.getKey().replace(".", "_").toUpperCase()); - } catch (IllegalAccessException | NoSuchFieldException ex) { - ex.printStackTrace(); - } - return null; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_15_R1.java b/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_15_R1.java deleted file mode 100644 index b811d723..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/nms/NMSHandler_1_15_R1.java +++ /dev/null @@ -1,262 +0,0 @@ -package net.Indyuce.mmoitems.version.nms; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.reflect.FieldUtils; -import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_15_R1.event.CraftEventFactory; -import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.util.BoundingBox; - -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.minecraft.server.v1_15_R1.Block; -import net.minecraft.server.v1_15_R1.BlockPosition; -import net.minecraft.server.v1_15_R1.ChatMessage; -import net.minecraft.server.v1_15_R1.ChatMessageType; -import net.minecraft.server.v1_15_R1.Container; -import net.minecraft.server.v1_15_R1.ContainerAccess; -import net.minecraft.server.v1_15_R1.ContainerAnvil; -import net.minecraft.server.v1_15_R1.Containers; -import net.minecraft.server.v1_15_R1.EntityPlayer; -import net.minecraft.server.v1_15_R1.EnumHand; -import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_15_R1.ItemStack; -import net.minecraft.server.v1_15_R1.MinecraftKey; -import net.minecraft.server.v1_15_R1.NBTTagCompound; -import net.minecraft.server.v1_15_R1.PacketPlayInArmAnimation; -import net.minecraft.server.v1_15_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_15_R1.PacketPlayOutChat; -import net.minecraft.server.v1_15_R1.PacketPlayOutCloseWindow; -import net.minecraft.server.v1_15_R1.PacketPlayOutOpenWindow; -import net.minecraft.server.v1_15_R1.PacketPlayOutTitle; -import net.minecraft.server.v1_15_R1.PacketPlayOutTitle.EnumTitleAction; -import net.minecraft.server.v1_15_R1.PlayerConnection; -import net.minecraft.server.v1_15_R1.SoundEffect; -import net.minecraft.server.v1_15_R1.SoundEffectType; -import net.minecraft.server.v1_15_R1.World; - -public class NMSHandler_1_15_R1 implements NMSHandler { - @Override - public void sendJson(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(message))); - } - - @Override - public void sendTitle(Player player, String msgTitle, String msgSubTitle, int fadeIn, int ticks, int fadeOut) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\": \"" + msgTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.SUBTITLE, ChatSerializer.a("{\"text\": \"" + msgSubTitle + "\"}"))); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TIMES, null, fadeIn, ticks, fadeOut)); - } - - @Override - public void sendActionBar(Player player, String message) { - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a("{\"text\": \"" + message + "\"}"), ChatMessageType.GAME_INFO)); - } - - @Override - public int getNextContainerId(Player player) { - return toNMS(player).nextContainerCounter(); - } - - @Override - public void handleInventoryCloseEvent(Player player) { - CraftEventFactory.handleInventoryCloseEvent(toNMS(player)); - } - - @Override - public void sendPacketOpenWindow(Player player, int containerId) { - toNMS(player).playerConnection.sendPacket(new PacketPlayOutOpenWindow(containerId, Containers.ANVIL, new ChatMessage("Repair & Name"))); - } - - @Override - public void sendPacketCloseWindow(Player player, int containerId) { - toNMS(player).playerConnection.sendPacket(new PacketPlayOutCloseWindow(containerId)); - } - - @Override - public void setActiveContainerDefault(Player player) { - toNMS(player).activeContainer = toNMS(player).defaultContainer; - } - - @Override - public void setActiveContainer(Player player, Object container) { - toNMS(player).activeContainer = (Container) container; - } - - @Override - public void setActiveContainerId(Object container, int containerId) { - Field field = null; - - try { - field = Container.class.getField("windowId"); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } - - FieldUtils.removeFinalModifier(field); - - try { - FieldUtils.writeField(field, container, containerId); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - @Override - public void addActiveContainerSlotListener(Object container, Player player) { - ((Container) container).addSlotListener(toNMS(player)); - } - - @Override - public Inventory toBukkitInventory(Object container) { - return ((Container) container).getBukkitView().getTopInventory(); - } - - @Override - public Object newContainerAnvil(Player player) { - return new AnvilContainer(player); - } - - private EntityPlayer toNMS(Player player) { - return ((CraftPlayer) player).getHandle(); - } - - private class AnvilContainer extends ContainerAnvil { - public AnvilContainer(Player player) { - super(getNextContainerId(player), ((CraftPlayer) player).getHandle().inventory, ContainerAccess.at(((CraftWorld) player.getWorld()).getHandle(), new BlockPosition(0, 0, 0))); - this.checkReachable = false; - setTitle(new ChatMessage("Repair & Name")); - } - } - - @Override - public NBTItem getNBTItem(org.bukkit.inventory.ItemStack item) { - return new NBTItem_v1_15_R1(item); - } - - public class NBTItem_v1_15_R1 extends NBTItem { - private final ItemStack nms; - private final NBTTagCompound compound; - - public NBTItem_v1_15_R1(org.bukkit.inventory.ItemStack item) { - super(item); - - nms = CraftItemStack.asNMSCopy(item); - compound = nms.hasTag() ? nms.getTag() : new NBTTagCompound(); - } - - @Override - public String getString(String path) { - return compound.getString(path); - } - - @Override - public boolean hasTag(String path) { - return compound.hasKey(path); - } - - @Override - public boolean getBoolean(String path) { - return compound.getBoolean(path); - } - - @Override - public double getDouble(String path) { - return compound.getDouble(path); - } - - @Override - public int getInteger(String path) { - return compound.getInt(path); - } - - @Override - public NBTItem addTag(List tags) { - tags.forEach(tag -> { - if (tag.getValue() instanceof Boolean) - compound.setBoolean(tag.getPath(), (boolean) tag.getValue()); - else if (tag.getValue() instanceof Double) - compound.setDouble(tag.getPath(), (double) tag.getValue()); - else if (tag.getValue() instanceof String) - compound.setString(tag.getPath(), (String) tag.getValue()); - else if (tag.getValue() instanceof Integer) - compound.setInt(tag.getPath(), (int) tag.getValue()); - }); - return this; - } - - @Override - public NBTItem removeTag(String... paths) { - for (String path : paths) - compound.remove(path); - return this; - } - - @Override - public Set getTags() { - return compound.getKeys(); - } - - @Override - public org.bukkit.inventory.ItemStack toItem() { - nms.setTag(compound); - return CraftItemStack.asBukkitCopy(nms); - } - } - - @Override - public boolean isInBoundingBox(Entity entity, Location loc) { - return entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2).contains(loc.toVector()); - } - - @Override - public double distanceSquaredFromBoundingBox(Entity entity, Location loc) { - BoundingBox box = entity.getBoundingBox().expand(.2, .2, .2, .2, .2, .2); - - double dx = loc.getX() > box.getMinX() && loc.getX() < box.getMaxX() ? 0 : Math.min(Math.abs(box.getMinX() - loc.getX()), Math.abs(box.getMaxX() - loc.getX())); - double dy = loc.getY() > box.getMinY() && loc.getY() < box.getMaxY() ? 0 : Math.min(Math.abs(box.getMinY() - loc.getY()), Math.abs(box.getMaxY() - loc.getY())); - double dz = loc.getZ() > box.getMinZ() && loc.getZ() < box.getMaxZ() ? 0 : Math.min(Math.abs(box.getMinZ() - loc.getZ()), Math.abs(box.getMaxZ() - loc.getZ())); - - return dx * dx + dx * dy + dz * dz; - } - - @Override - public void playArmAnimation(Player player) { - EntityPlayer p = ((CraftPlayer) player).getHandle(); - PlayerConnection connection = p.playerConnection; - PacketPlayOutAnimation armSwing = new PacketPlayOutAnimation(p, 0); - connection.sendPacket(armSwing); - connection.a(new PacketPlayInArmAnimation(EnumHand.MAIN_HAND)); - } - - @Override - public Sound getBlockPlaceSound(org.bukkit.block.Block block) { - try { - World nmsWorld = ((CraftWorld) block.getWorld()).getHandle(); - - Block nmsBlock = nmsWorld.getType(new BlockPosition(block.getX(), block.getY(), block.getZ())).getBlock(); - SoundEffectType soundEffectType = nmsBlock.getStepSound(nmsBlock.getBlockData()); - - Field breakSound = SoundEffectType.class.getDeclaredField("y"); - breakSound.setAccessible(true); - SoundEffect nmsSound = (SoundEffect) breakSound.get(soundEffectType); - - Field keyField = SoundEffect.class.getDeclaredField("a"); - keyField.setAccessible(true); - MinecraftKey nmsString = (MinecraftKey) keyField.get(nmsSound); - - return Sound.valueOf(nmsString.getKey().replace(".", "_").toUpperCase()); - } catch (IllegalAccessException | NoSuchFieldException ex) { - ex.printStackTrace(); - } - return null; - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper.java b/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper.java deleted file mode 100644 index 2dcceda2..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.Indyuce.mmoitems.version.wrapper; - -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Particle; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.FurnaceRecipe; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.util.Vector; - -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; - -public interface VersionWrapper { - default void spawnParticle(Particle particle, Location loc, Color color) { - spawnParticle(particle, loc, 1, 0, 0, 0, 0, 1, color); - } - - default void spawnParticle(Particle particle, Location loc, float size, Color color) { - spawnParticle(particle, loc, 1, 0, 0, 0, 0, size, color); - } - - void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, float size, Color color); - - void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, Material material); - - String getName(Enchantment enchant); - - FurnaceRecipe getFurnaceRecipe(String path, ItemStack item, Material material, float exp, int cook); - - default MMORayTraceResult rayTrace(Player player, double range) { - return rayTrace(player, player.getEyeLocation().getDirection(), range); - } - - MMORayTraceResult rayTrace(Player player, Vector direction, double range); - - public void applyDurability(ItemStack item, ItemMeta meta, int damage); - - public int getDurability(ItemStack item, ItemMeta meta); - - public boolean isDamaged(ItemStack item, ItemMeta meta); - - public boolean isDamageable(ItemStack item); - - public void repair(ItemStack item, int amount); - - public ItemStack generate(Material material, int damage); - - public NBTItem copyTexture(NBTItem item); - - public ItemStack textureItem(Material material, int model); -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_1_13.java b/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_1_13.java deleted file mode 100644 index 99de5710..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_1_13.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.Indyuce.mmoitems.version.wrapper; - -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.FurnaceRecipe; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.Damageable; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.util.RayTraceResult; -import org.bukkit.util.Vector; - -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; -import net.Indyuce.mmoitems.version.nms.ItemTag; - -public class VersionWrapper_1_13 implements VersionWrapper { - - @Override - public void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, float size, Color color) { - loc.getWorld().spawnParticle(particle, loc, amount, x, y, z, speed, new Particle.DustOptions(color, size)); - } - - @Override - public void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, Material material) { - loc.getWorld().spawnParticle(particle, loc, amount, x, y, z, 0, material.createBlockData()); - } - - @Override - public String getName(Enchantment enchant) { - return enchant.getKey().getKey(); - } - - @Override - public FurnaceRecipe getFurnaceRecipe(String path, ItemStack item, Material material, float exp, int cook) { - return new FurnaceRecipe(new NamespacedKey(MMOItems.plugin, "mmoitems_furnace_" + path), item, material, exp, cook); - } - - @Override - public MMORayTraceResult rayTrace(Player player, Vector direction, double range) { - RayTraceResult hit = player.getWorld().rayTraceEntities(player.getEyeLocation(), direction, range, (entity) -> MMOUtils.canDamage(player, entity)); - return new MMORayTraceResult(hit != null ? (LivingEntity) hit.getHitEntity() : null, hit != null ? hit.getHitPosition().distance(player.getEyeLocation().toVector()) : range); - } - - @Override - public void applyDurability(ItemStack item, ItemMeta meta, int damage) { - if (meta instanceof Damageable) - ((Damageable) meta).setDamage(damage); - } - - @Override - public int getDurability(ItemStack item, ItemMeta meta) { - return item.getItemMeta() instanceof Damageable ? ((Damageable) item.getItemMeta()).getDamage() : 0; - } - - @Override - public boolean isDamaged(ItemStack item, ItemMeta meta) { - return meta instanceof Damageable && ((Damageable) meta).getDamage() > 0; - } - - @Override - public void repair(ItemStack item, int amount) { - ItemMeta meta = item.getItemMeta(); - ((Damageable) meta).setDamage(Math.max(0, ((Damageable) meta).getDamage() - amount)); - item.setItemMeta(meta); - } - - @Override - public ItemStack generate(Material material, int damage) { - ItemStack item = new ItemStack(material); - ItemMeta meta = item.getItemMeta(); - ((Damageable) meta).setDamage(damage); - item.setItemMeta(meta); - return item; - } - - @Override - public boolean isDamageable(ItemStack item) { - return item.hasItemMeta() && item.getItemMeta() instanceof Damageable; - } - - @Override - public NBTItem copyTexture(NBTItem item) { - return MMOItems.plugin.getNMS().getNBTItem(new ItemStack(item.getItem().getType())).addTag(new ItemTag("Damage", item.getInteger("Damage"))); - } - - @Override - public ItemStack textureItem(Material material, int model) { - return MMOItems.plugin.getNMS().getNBTItem(new ItemStack(material)).addTag(new ItemTag("Damage", model)).toItem(); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_1_14.java b/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_1_14.java deleted file mode 100644 index b2bcc985..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_1_14.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.Indyuce.mmoitems.version.wrapper; - -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.FurnaceRecipe; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.Damageable; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.util.RayTraceResult; -import org.bukkit.util.Vector; - -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; -import net.Indyuce.mmoitems.version.nms.ItemTag; - -public class VersionWrapper_1_14 implements VersionWrapper { - - @Override - public void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, float size, Color color) { - loc.getWorld().spawnParticle(particle, loc, amount, x, y, z, speed, new Particle.DustOptions(color, size)); - } - - @Override - public void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, Material material) { - loc.getWorld().spawnParticle(particle, loc, amount, x, y, z, 0, material.createBlockData()); - } - - @Override - public String getName(Enchantment enchant) { - return enchant.getKey().getKey(); - } - - @Override - public FurnaceRecipe getFurnaceRecipe(String path, ItemStack item, Material material, float exp, int cook) { - return new FurnaceRecipe(new NamespacedKey(MMOItems.plugin, "mmoitems_furnace_" + path), item, material, exp, cook); - } - - @Override - public MMORayTraceResult rayTrace(Player player, Vector direction, double range) { - RayTraceResult hit = player.getWorld().rayTraceEntities(player.getEyeLocation(), direction, range, (entity) -> MMOUtils.canDamage(player, entity)); - return new MMORayTraceResult(hit != null ? (LivingEntity) hit.getHitEntity() : null, hit != null ? hit.getHitPosition().distance(player.getEyeLocation().toVector()) : range); - } - - @Override - public void applyDurability(ItemStack item, ItemMeta meta, int damage) { - if (meta instanceof Damageable) - ((Damageable) meta).setDamage(damage); - } - - @Override - public int getDurability(ItemStack item, ItemMeta meta) { - return item.getItemMeta() instanceof Damageable ? ((Damageable) item.getItemMeta()).getDamage() : 0; - } - - @Override - public boolean isDamaged(ItemStack item, ItemMeta meta) { - return meta instanceof Damageable && ((Damageable) meta).getDamage() > 0; - } - - @Override - public void repair(ItemStack item, int amount) { - ItemMeta meta = item.getItemMeta(); - ((Damageable) meta).setDamage(Math.max(0, ((Damageable) meta).getDamage() - amount)); - item.setItemMeta(meta); - } - - @Override - public ItemStack generate(Material material, int damage) { - ItemStack item = new ItemStack(material); - ItemMeta meta = item.getItemMeta(); - ((Damageable) meta).setDamage(damage); - item.setItemMeta(meta); - return item; - } - - @Override - public boolean isDamageable(ItemStack item) { - return item.hasItemMeta() && item.getItemMeta() instanceof Damageable; - } - - @Override - public NBTItem copyTexture(NBTItem item) { - return MMOItems.plugin.getNMS().getNBTItem(new ItemStack(item.getItem().getType())).addTag(new ItemTag("CustomModelData", item.getInteger("CustomModelData"))); - } - - @Override - public ItemStack textureItem(Material material, int model) { - return MMOItems.plugin.getNMS().getNBTItem(new ItemStack(material)).addTag(new ItemTag("CustomModelData", model)).toItem(); - } -} diff --git a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_Legacy.java b/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_Legacy.java deleted file mode 100644 index d5ed85ed..00000000 --- a/src/main/java/net/Indyuce/mmoitems/version/wrapper/VersionWrapper_Legacy.java +++ /dev/null @@ -1,206 +0,0 @@ -package net.Indyuce.mmoitems.version.wrapper; - -import java.lang.reflect.InvocationTargetException; - -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Particle; -import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.FurnaceRecipe; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.material.MaterialData; -import org.bukkit.util.Vector; - -import net.Indyuce.mmoitems.MMOItems; -import net.Indyuce.mmoitems.MMOUtils; -import net.Indyuce.mmoitems.api.item.NBTItem; -import net.Indyuce.mmoitems.api.util.MMORayTraceResult; -import net.Indyuce.mmoitems.version.nms.ItemTag; -import net.minecraft.server.v1_12_R1.AxisAlignedBB; -import net.minecraft.server.v1_12_R1.MovingObjectPosition; -import net.minecraft.server.v1_12_R1.Vec3D; - -@SuppressWarnings("deprecation") -public class VersionWrapper_Legacy implements VersionWrapper { - - @Override - public void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, float size, Color color) { - loc.getWorld().spawnParticle(particle, loc, 0, (double) color.getRed() / 255, (double) color.getGreen() / 255, (double) color.getBlue() / 255, 0); - } - - @Override - public void spawnParticle(Particle particle, Location loc, int amount, double x, double y, double z, double speed, Material material) { - loc.getWorld().spawnParticle(particle, loc, amount, x, y, z, 0, new MaterialData(material)); - } - - @Override - public String getName(Enchantment enchant) { - return enchant.getName(); - } - - @Override - public FurnaceRecipe getFurnaceRecipe(String path, ItemStack item, Material material, float exp, int cook) { - try { - return (FurnaceRecipe) Class.forName("org.bukkit.inventory.FurnaceRecipe").getConstructor(ItemStack.class, Material.class, Integer.TYPE, Integer.TYPE).newInstance(item, material, 0, (int) exp); - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | ClassNotFoundException exception) { - exception.printStackTrace(); - return null; - } - } - - @Override - public MMORayTraceResult rayTrace(Player player, Vector direction, double range) { - - Location loc = player.getEyeLocation(); - Vec3D vec = new Vec3D(loc.getDirection().getX(), loc.getDirection().getY(), loc.getDirection().getZ()); - MovingObjectPosition block = ((CraftPlayer) player).getHandle().getBoundingBox().b(vec, new Vec3D(vec.x, vec.y, vec.z).add(range * vec.x, range * vec.y, range * vec.z)); - - double d = block == null ? range : Math.sqrt(block.pos.distanceSquared(new Vec3D(loc.getX(), loc.getY(), loc.getZ()))); - Ray3D line = new Ray3D(player.getEyeLocation()); - for (Entity entity : player.getNearbyEntities(d, d, d)) - if (line.intersectsRay(((CraftEntity) entity).getHandle().getBoundingBox()) && MMOUtils.canDamage(player, entity)) - return new MMORayTraceResult((LivingEntity) entity, range); - - return new MMORayTraceResult(null, range); - } - - public class Ray3D extends Vec3D { - public final Vec3D dir; - - /* - * warning, direction is not normalized - */ - public Ray3D(Vec3D origin, Vec3D direction) { - super(origin.x, origin.y, origin.z); - dir = direction; - } - - /** - * Construct a 3D ray from a location. - * - * @param loc - * - the Bukkit location. - */ - public Ray3D(Location loc) { - this(new Vec3D(loc.getX(), loc.getY(), loc.getZ()), new Vec3D(loc.getDirection().getX(), loc.getDirection().getY(), loc.getDirection().getZ())); - } - - public Vec3D getDirection() { - return dir; - } - - public String toString() { - return "origin: " + super.toString() + " dir: " + dir; - } - - /** - * Calculates intersection with the given ray between a certain distance - * interval. - *

- * Ray-box intersection is using IEEE numerical properties to ensure the - * test is both robust and efficient, as described in:
- * Amy Williams, Steve Barrus, R. Keith Morley, and Peter Shirley: "An - * Efficient and Robust Ray-Box Intersection Algorithm" Journal of graphics - * tools, 10(1):49-54, 2005 - * - * @param ray - * incident ray - * @param minDist - * @param maxDist - * @return intersection point on the bounding box (only the first is - * returned) or null if no intersection - */ - public boolean intersectsRay(AxisAlignedBB box) { - Vec3D invDir = new Vec3D(1f / dir.x, 1f / dir.y, 1f / dir.z); - - Vec3D min = new Vec3D(box.a, box.b, box.c); - Vec3D max = new Vec3D(box.d, box.e, box.f); - - boolean signDirX = invDir.x < 0; - boolean signDirY = invDir.y < 0; - boolean signDirZ = invDir.z < 0; - - Vec3D bbox = signDirX ? max : min; - double tmin = (bbox.x - x) * invDir.x; - bbox = signDirX ? min : max; - double tmax = (bbox.x - x) * invDir.x; - bbox = signDirY ? max : min; - double tymin = (bbox.y - y) * invDir.y; - bbox = signDirY ? min : max; - double tymax = (bbox.y - y) * invDir.y; - - if ((tmin > tymax) || (tymin > tmax)) { - return false; - } - if (tymin > tmin) { - tmin = tymin; - } - if (tymax < tmax) { - tmax = tymax; - } - - bbox = signDirZ ? max : min; - double tzmin = (bbox.z - z) * invDir.z; - bbox = signDirZ ? min : max; - double tzmax = (bbox.z - z) * invDir.z; - - if ((tmin > tzmax) || (tzmin > tmax)) { - return false; - } - if (tzmin > tmin) { - tmin = tzmin; - } - if (tzmax < tmax) { - tmax = tzmax; - } - return true; - } - } - - @Override - public void applyDurability(ItemStack item, ItemMeta meta, int damage) { - item.setDurability((short) damage); - } - - @Override - public int getDurability(ItemStack item, ItemMeta meta) { - return item.getDurability(); - } - - @Override - public boolean isDamaged(ItemStack item, ItemMeta meta) { - return item.getDurability() > 0; - } - - @Override - public void repair(ItemStack item, int amount) { - item.setDurability((short) Math.max(0, item.getDurability() - amount)); - } - - @Override - public ItemStack generate(Material material, int damage) { - return new ItemStack(material, 1, (short) damage); - } - - @Override - public boolean isDamageable(ItemStack item) { - return item.getType().getMaxDurability() > 20; - } - - @Override - public NBTItem copyTexture(NBTItem item) { - return MMOItems.plugin.getNMS().getNBTItem(new ItemStack(item.getItem().getType(), 1, item.getItem().getDurability())).addTag(new ItemTag("Unbreakable", true)); - } - - @Override - public ItemStack textureItem(Material material, int model) { - return MMOItems.plugin.getNMS().getNBTItem(new ItemStack(material, 1, (short) model)).addTag(new ItemTag("Unbreakable", true)).toItem(); - } -}