This commit is contained in:
Aria 2019-09-27 19:17:42 +02:00
commit 57a684f931
14 changed files with 44 additions and 20 deletions

View File

@ -37,7 +37,7 @@ public class Arcane_Hail extends Ability {
} }
double damage = data.getModifier("damage"); double damage = data.getModifier("damage");
double duration = data.getModifier("duration"); double duration = data.getModifier("duration") * 10;
double radius = data.getModifier("radius"); double radius = data.getModifier("radius");
new BukkitRunnable() { new BukkitRunnable() {
@ -45,7 +45,7 @@ public class Arcane_Hail extends Ability {
public void run() { public void run() {
j++; j++;
if (j > 10 * duration) { if (j > duration) {
cancel(); cancel();
return; return;
} }
@ -54,7 +54,7 @@ public class Arcane_Hail extends Ability {
loc1.getWorld().playSound(loc1, VersionSound.ENTITY_ENDERMAN_HURT.toSound(), 1, 0); loc1.getWorld().playSound(loc1, VersionSound.ENTITY_ENDERMAN_HURT.toSound(), 1, 0);
for (Entity entity : MMOUtils.getNearbyChunkEntities(loc1)) for (Entity entity : MMOUtils.getNearbyChunkEntities(loc1))
if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc1) <= 4) if (MMOUtils.canDamage(stats.getPlayer(), entity) && entity.getLocation().distanceSquared(loc1) <= 4)
new AttackResult(damage, DamageType.SKILL, DamageType.MAGICAL).applyEffectsAndDamage(stats, null, target); new AttackResult(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.SPELL_WITCH, loc1, 12, 0, 0, 0, .1);
loc1.getWorld().spawnParticle(Particle.SMOKE_NORMAL, loc1, 6, 0, 0, 0, .1); loc1.getWorld().spawnParticle(Particle.SMOKE_NORMAL, loc1, 6, 0, 0, 0, .1);
@ -70,3 +70,4 @@ public class Arcane_Hail extends Ability {
return (random.nextDouble() - .5) * 2; return (random.nextDouble() - .5) * 2;
} }
} }

View File

@ -54,7 +54,7 @@ public class ItemSet {
if (key.startsWith("potion-")) { if (key.startsWith("potion-")) {
PotionEffectType potionEffectType = PotionEffectType.getByName(format.substring("potion-".length())); PotionEffectType potionEffectType = PotionEffectType.getByName(format.substring("potion-".length()));
if (potionEffectType != null) { if (potionEffectType != null) {
bonuses.addPotionEffect(new PotionEffect(potionEffectType, MMOUtils.getEffectDuration(potionEffectType), section.getInt("bonuses." + j + "." + key) - 1)); bonuses.addPotionEffect(new PotionEffect(potionEffectType, MMOUtils.getEffectDuration(potionEffectType), section.getInt("bonuses." + j + "." + key) - 1, true, false));
continue; continue;
} }
continue; continue;
@ -162,3 +162,4 @@ public class ItemSet {
} }
} }
} }

View File

@ -39,6 +39,7 @@ public class BruteLuteAttack implements LuteAttackHandler {
} }
loc.getWorld().spawnParticle(Particle.NOTE, loc, 2, .1, .1, .1, 0); loc.getWorld().spawnParticle(Particle.NOTE, loc, 2, .1, .1, .1, 0);
if (j == 0)
loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range)); loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range));
for (Entity target : entities) for (Entity target : entities)
@ -52,3 +53,4 @@ public class BruteLuteAttack implements LuteAttackHandler {
}.runTaskTimer(MMOItems.plugin, 0, 1); }.runTaskTimer(MMOItems.plugin, 0, 1);
} }
} }

View File

@ -42,6 +42,7 @@ public class CircularLuteAttack implements LuteAttackHandler {
Vector vec = MMOUtils.rotateFunc(new Vector(Math.cos(a), Math.sin(a), 0).multiply(.3), loc); Vector vec = MMOUtils.rotateFunc(new Vector(Math.cos(a), Math.sin(a), 0).multiply(.3), loc);
loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec), 0); loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec), 0);
loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec.multiply(-1)), 0); loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec.multiply(-1)), 0);
if (j == 0)
loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range)); loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range));
for (Entity target : entities) for (Entity target : entities)
@ -55,3 +56,4 @@ public class CircularLuteAttack implements LuteAttackHandler {
}.runTaskTimer(MMOItems.plugin, 0, 1); }.runTaskTimer(MMOItems.plugin, 0, 1);
} }
} }

View File

@ -39,6 +39,7 @@ public class SimpleLuteAttack implements LuteAttackHandler {
} }
loc.getWorld().spawnParticle(Particle.NOTE, loc, 0); loc.getWorld().spawnParticle(Particle.NOTE, loc, 0);
if (j == 0)
loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range)); loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range));
for (Entity target : entities) for (Entity target : entities)
@ -52,3 +53,4 @@ public class SimpleLuteAttack implements LuteAttackHandler {
}.runTaskTimer(MMOItems.plugin, 0, 1); }.runTaskTimer(MMOItems.plugin, 0, 1);
} }
} }

View File

@ -41,6 +41,7 @@ public class WaveLuteAttack implements LuteAttackHandler {
Vector vec = MMOUtils.rotateFunc(new Vector(.5, 0, 0), loc); Vector vec = MMOUtils.rotateFunc(new Vector(.5, 0, 0), loc);
loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec.multiply(Math.sin((double) ti / 2))), 0); loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec.multiply(Math.sin((double) ti / 2))), 0);
loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec.multiply(-1)), 0); loc.getWorld().spawnParticle(Particle.NOTE, loc.clone().add(vec.multiply(-1)), 0);
if (j == 0)
loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range)); loc.getWorld().playSound(loc, sound, 2, (float) (.5 + (double) ti / range));
for (Entity target : entities) for (Entity target : entities)
@ -54,3 +55,4 @@ public class WaveLuteAttack implements LuteAttackHandler {
}.runTaskTimer(MMOItems.plugin, 0, 1); }.runTaskTimer(MMOItems.plugin, 0, 1);
} }
} }

View File

@ -42,6 +42,7 @@ import net.Indyuce.mmoitems.gui.CraftingStationView;
import net.Indyuce.mmoitems.gui.ItemBrowser; import net.Indyuce.mmoitems.gui.ItemBrowser;
import net.Indyuce.mmoitems.gui.edition.ItemEdition; import net.Indyuce.mmoitems.gui.edition.ItemEdition;
import net.Indyuce.mmoitems.manager.UpdaterManager.UpdaterData; import net.Indyuce.mmoitems.manager.UpdaterManager.UpdaterData;
import net.Indyuce.mmoitems.stat.Lute_Attack_Effect.LuteAttackEffect;
import net.Indyuce.mmoitems.stat.Staff_Spirit.StaffSpirit; import net.Indyuce.mmoitems.stat.Staff_Spirit.StaffSpirit;
import net.Indyuce.mmoitems.stat.data.AbilityData; import net.Indyuce.mmoitems.stat.data.AbilityData;
import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.ItemStat;
@ -518,6 +519,7 @@ public class MMOItemsCommand implements CommandExecutor {
sender.sendMessage(ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "-----------------[" + ChatColor.LIGHT_PURPLE + " MMOItems: lists " + ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "]-----------------"); sender.sendMessage(ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "-----------------[" + ChatColor.LIGHT_PURPLE + " MMOItems: lists " + ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "]-----------------");
sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list type " + ChatColor.WHITE + "shows all item types (sword, axe...)"); sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list type " + ChatColor.WHITE + "shows all item types (sword, axe...)");
sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list spirit " + ChatColor.WHITE + "shows all available staff spirits"); sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list spirit " + ChatColor.WHITE + "shows all available staff spirits");
sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list lute " + ChatColor.WHITE + "shows all available lute attack effects");
sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list ability " + ChatColor.WHITE + "shows all available abilities"); sender.sendMessage(ChatColor.LIGHT_PURPLE + "/mi list ability " + ChatColor.WHITE + "shows all available abilities");
if(sender instanceof Player) { if(sender instanceof Player) {
sender.sendMessage(""); sender.sendMessage("");
@ -556,6 +558,13 @@ public class MMOItemsCommand implements CommandExecutor {
sender.sendMessage("* " + ChatColor.LIGHT_PURPLE + ss.getName() + lore); sender.sendMessage("* " + ChatColor.LIGHT_PURPLE + ss.getName() + lore);
} }
} }
// lute attack effect list
if (args[1].equalsIgnoreCase("lute")) {
sender.sendMessage(ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "-----------------[" + ChatColor.LIGHT_PURPLE + " Lute Attack Effects " + ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH + "]-----------------");
for (LuteAttackEffect lae : LuteAttackEffect.values())
sender.sendMessage("* " + ChatColor.LIGHT_PURPLE + lae.getName());
}
} }
// ================================================================================================================================== // ==================================================================================================================================
else if (args[0].equalsIgnoreCase("create") || args[0].equalsIgnoreCase("load")) { else if (args[0].equalsIgnoreCase("create") || args[0].equalsIgnoreCase("load")) {
@ -989,3 +998,4 @@ public class MMOItemsCommand implements CommandExecutor {
return false; return false;
} }
} }

View File

@ -68,9 +68,10 @@ public class MMOItemsCompletion implements TabCompleter {
list.add("stations"); list.add("stations");
} else if (args[0].equalsIgnoreCase("list")) { } else if (args[0].equalsIgnoreCase("list")) {
list.add("ability");
list.add("type"); list.add("type");
list.add("spirit"); list.add("spirit");
list.add("lute");
list.add("ability");
} }
else if (args[0].equalsIgnoreCase("browse") || args[0].equalsIgnoreCase("itemlist") || args[0].equalsIgnoreCase("drop") || args[0].equalsIgnoreCase("create") || args[0].equalsIgnoreCase("delete") || args[0].equalsIgnoreCase("remove") || args[0].equalsIgnoreCase("edit") || args[0].equalsIgnoreCase("copy") || args[0].equalsIgnoreCase("load") || args[0].equalsIgnoreCase("giveall")) else if (args[0].equalsIgnoreCase("browse") || args[0].equalsIgnoreCase("itemlist") || args[0].equalsIgnoreCase("drop") || args[0].equalsIgnoreCase("create") || args[0].equalsIgnoreCase("delete") || args[0].equalsIgnoreCase("remove") || args[0].equalsIgnoreCase("edit") || args[0].equalsIgnoreCase("copy") || args[0].equalsIgnoreCase("load") || args[0].equalsIgnoreCase("giveall"))
@ -150,3 +151,4 @@ public class MMOItemsCompletion implements TabCompleter {
return args[args.length - 1].isEmpty() ? list : list.stream().filter(string -> string.toLowerCase().startsWith(args[args.length - 1].toLowerCase())).collect(Collectors.toList()); return args[args.length - 1].isEmpty() ? list : list.stream().filter(string -> string.toLowerCase().startsWith(args[args.length - 1].toLowerCase())).collect(Collectors.toList());
} }
} }

View File

@ -13,7 +13,7 @@ import net.Indyuce.mmoitems.version.nms.ItemTag;
public class Custom_Model_Data extends DoubleStat { public class Custom_Model_Data extends DoubleStat {
public Custom_Model_Data() { public Custom_Model_Data() {
super(new ItemStack(Material.PAINTING), "Custom Model Data", new String[] { "Your 1.14 model data." }, "custom-model-data", new String[] { "all" }); super(new ItemStack(Material.PAINTING), "Custom Model Data", new String[] { "Your 1.14+ model data." }, "custom-model-data", new String[] { "all" });
if (MMOItems.plugin.getVersion().isBelowOrEqual(1, 13)) if (MMOItems.plugin.getVersion().isBelowOrEqual(1, 13))
disable(); disable();
@ -31,3 +31,4 @@ public class Custom_Model_Data extends DoubleStat {
mmoitem.setData(this, new DoubleData(item.getDouble("CustomModelData"))); mmoitem.setData(this, new DoubleData(item.getDouble("CustomModelData")));
} }
} }

View File

@ -26,7 +26,7 @@ import net.Indyuce.mmoitems.version.nms.ItemTag;
public class Lute_Attack_Effect extends StringStat { public class Lute_Attack_Effect extends StringStat {
public Lute_Attack_Effect() { public Lute_Attack_Effect() {
super(new ItemStack(VersionMaterial.GOLDEN_HORSE_ARMOR.toMaterial()), "Lute Attack Effect", new String[] { "Changes how your lute behaves", "when right clicked." }, "lute-attack-effect", new String[] { "lute" }); super(new ItemStack(VersionMaterial.DIAMOND_HORSE_ARMOR.toMaterial()), "Lute Attack Effect", new String[] { "Changes how your lute behaves", "when right clicked.", "&9Tip: /mi list lute" }, "lute-attack-effect", new String[] { "lute" });
} }
@Override @Override
@ -36,15 +36,11 @@ public class Lute_Attack_Effect extends StringStat {
config.getConfig().set(inv.getItemId() + ".lute-attack-effect", null); config.getConfig().set(inv.getItemId() + ".lute-attack-effect", null);
inv.registerItemEdition(config); inv.registerItemEdition(config);
inv.open(); inv.open();
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Successfully removed Lute Attack Effect."); inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Successfully removed the lute attack effect.");
return true; return true;
} }
new StatEdition(inv, this).enable("Write in the chat the text you want."); new StatEdition(inv, this).enable("Write in the chat the text you want.");
inv.getPlayer().sendMessage("");
inv.getPlayer().sendMessage(ChatColor.GREEN + "" + ChatColor.BOLD + "Available Lute Attacks");
for (LuteAttackEffect effect : LuteAttackEffect.values())
inv.getPlayer().sendMessage("* " + ChatColor.GREEN + effect.name());
return true; return true;
} }
@ -56,13 +52,14 @@ public class Lute_Attack_Effect extends StringStat {
effect = LuteAttackEffect.valueOf(format); effect = LuteAttackEffect.valueOf(format);
} catch (Exception e1) { } catch (Exception e1) {
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + format + " is not a valid lute attack effect."); inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + format + " is not a valid lute attack effect.");
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + "See all lute attack effects here: /mi list lute.");
return false; return false;
} }
config.getConfig().set(inv.getItemId() + ".lute-attack-effect", effect.name()); config.getConfig().set(inv.getItemId() + ".lute-attack-effect", effect.name());
inv.registerItemEdition(config); inv.registerItemEdition(config);
inv.open(); inv.open();
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Staff Spirit successfully changed to " + effect.getDefaultName() + "."); inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Lute attack effect successfully changed to " + effect.getDefaultName() + ".");
return true; return true;
} }
@ -73,7 +70,7 @@ public class Lute_Attack_Effect extends StringStat {
item.addItemTag(new ItemTag("MMOITEMS_LUTE_ATTACK_EFFECT", effect.name())); item.addItemTag(new ItemTag("MMOITEMS_LUTE_ATTACK_EFFECT", effect.name()));
item.getLore().insert("lute-attack-effect", effect.getName()); item.getLore().insert("lute-attack-effect", effect.getName());
} catch (Exception e) { } catch (Exception e) {
item.getMMOItem().log(Level.WARNING, "Coudln't read lute attack effect from " + ((StringData) data).toString()); item.getMMOItem().log(Level.WARNING, "Couldn't read lute attack effect from " + ((StringData) data).toString());
} }
return true; return true;
} }
@ -112,3 +109,4 @@ public class Lute_Attack_Effect extends StringStat {
} }
} }
} }

View File

@ -227,7 +227,7 @@ public class Shield_Pattern extends StringStat {
@EventHandler @EventHandler
public void whenLoaded(MMOItem mmoitem, NBTItem item) { public void whenLoaded(MMOItem mmoitem, NBTItem item) {
if (item.getItem().getItemMeta() instanceof BlockStateMeta) { if (item.getItem().getItemMeta() instanceof BlockStateMeta && ((BlockStateMeta) item.getItem().getItemMeta()).getBlockState() instanceof Banner) {
ShieldPatternData shieldPattern = new ShieldPatternData(); ShieldPatternData shieldPattern = new ShieldPatternData();
Banner banner = (Banner) ((BlockStateMeta) item.getItem().getItemMeta()).getBlockState(); Banner banner = (Banner) ((BlockStateMeta) item.getItem().getItemMeta()).getBlockState();
shieldPattern.setBaseColor(banner.getBaseColor()); shieldPattern.setBaseColor(banner.getBaseColor());

View File

@ -53,7 +53,7 @@ public class Staff_Spirit extends StringStat {
item.addItemTag(new ItemTag("MMOITEMS_STAFF_SPIRIT", staffSpirit.name())); item.addItemTag(new ItemTag("MMOITEMS_STAFF_SPIRIT", staffSpirit.name()));
item.getLore().insert("staff-spirit", staffSpirit.getPrefix() + staffSpirit.getName()); item.getLore().insert("staff-spirit", staffSpirit.getPrefix() + staffSpirit.getName());
} catch (Exception e) { } catch (Exception e) {
item.getMMOItem().log(Level.WARNING, "Coudln't read staff spirit from " + ((StringData) data).toString()); item.getMMOItem().log(Level.WARNING, "Couldn't read staff spirit from " + ((StringData) data).toString());
} }
return true; return true;
} }
@ -118,3 +118,4 @@ public class Staff_Spirit extends StringStat {
} }
} }
} }

View File

@ -49,6 +49,7 @@ public enum VersionMaterial {
COMMAND_BLOCK_MINECART("COMMAND_BLOCK_MINECART", "COMMAND_MINECART"), COMMAND_BLOCK_MINECART("COMMAND_BLOCK_MINECART", "COMMAND_MINECART"),
OAK_PLANKS("OAK_PLANKS", "WOOD"), OAK_PLANKS("OAK_PLANKS", "WOOD"),
CAULDRON("CAULDRON", "CAULDRON_ITEM"), CAULDRON("CAULDRON", "CAULDRON_ITEM"),
DIAMOND_HORSE_ARMOR("DIAMOND_HORSE_ARMOR", "DIAMOND_BARDING"),
; ;
@ -79,3 +80,4 @@ public enum VersionMaterial {
return hasItem() ? item.clone() : new ItemStack(material); return hasItem() ? item.clone() : new ItemStack(material);
} }
} }