Помогите [РЕШЕНО] PlayerDeathEvent пропадает броня и вещи и при их нажатии

  • Автор темы Автор темы AlbertV
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

AlbertV

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Lingue
Всем привет!
Столкнулся с одной непонятной проблемой. После первой смерти броня и дроп не выдается, но после второй, третей и т.д. выдаются, но при нажатии пропадают.
 
Как бы вроде runTask и runTaskAsynchronously срабатывает через 1 тик ._.
Как бы он в асинхронном потоке работает, а большинство вещей проверяются на Thread.currentThread() == MinecraftServer.getServer().primaryThread
 
Классы хоть кинь (GiveArmor + GiveWeapons), посмотрим на твоё творение

public class GiveArmor {
public static void giveArmor(Player player, String armors) {
Armor armor;
switch(armors) {
case "Default":
armor = Armor.Default;
break;
case "LeatherEnch":
armor = Armor.LeatherEnch;
break;
case "Iron":
armor = Armor.Iron;
break;
case "IronEnch":
armor = Armor.IronEnch;
break;
case "Diamond":
armor = Armor.Diamond;
break;
default:
armor = Armor.Default;
break;
}
switch (armor) {
case Default:
ItemStack lh = new ItemStack(Material.LEATHER_HELMET);
ItemMeta meta = lh.getItemMeta();
meta.spigot().setUnbreakable(true);
lh.setItemMeta(meta);
player.getInventory().setHelmet(lh);
ItemStack lc = new ItemStack(Material.LEATHER_CHESTPLATE);
ItemMeta meta1 = lc.getItemMeta();
meta1.spigot().setUnbreakable(true);
lc.setItemMeta(meta1);
player.getInventory().setChestplate(lc);
ItemStack lg = new ItemStack(Material.LEATHER_LEGGINGS);
ItemMeta meta2 = lg.getItemMeta();
meta2.spigot().setUnbreakable(true);
lg.setItemMeta(meta2);
player.getInventory().setLeggings(lg);
ItemStack lb = new ItemStack(Material.LEATHER_BOOTS);
ItemMeta meta3 = lb.getItemMeta();
meta3.spigot().setUnbreakable(true);
lb.setItemMeta(meta3);
player.getInventory().setBoots(lb);
break;
case LeatherEnch:
ItemStack lnecnh = new ItemStack(Material.LEATHER_HELMET);
ItemMeta meta100500 = lnecnh.getItemMeta();
meta100500.spigot().setUnbreakable(true);
lnecnh.setItemMeta(meta100500);
lnecnh.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setHelmet(lnecnh);
ItemStack lncench = new ItemStack(Material.LEATHER_CHESTPLATE);
ItemMeta meta4 = lncench.getItemMeta();
meta4.spigot().setUnbreakable(true);
lncench.setItemMeta(meta4);
lncench.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setChestplate(lncench);
ItemStack lgcench = new ItemStack(Material.LEATHER_LEGGINGS);
ItemMeta meta5 = lgcench.getItemMeta();
meta5.spigot().setUnbreakable(true);
lgcench.setItemMeta(meta5);
lgcench.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setLeggings(lgcench);
ItemStack lgench = new ItemStack(Material.LEATHER_BOOTS);
ItemMeta meta6 = lgench.getItemMeta();
meta6.spigot().setUnbreakable(true);
lgench.setItemMeta(meta6);
lgench.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setBoots(lgench);
break;
case Iron:
ItemStack lh2 = new ItemStack(Material.IRON_HELMET);
ItemMeta metas2 = lh2.getItemMeta();
metas2.spigot().setUnbreakable(true);
lh2.setItemMeta(metas2);
player.getInventory().setHelmet(lh2);
ItemStack lc2 = new ItemStack(Material.IRON_CHESTPLATE);
ItemMeta metas3 = lc2.getItemMeta();
metas3.spigot().setUnbreakable(true);
lc2.setItemMeta(metas3);
player.getInventory().setChestplate(lc2);
ItemStack lg2 = new ItemStack(Material.IRON_LEGGINGS);
ItemMeta metas5 = lg2.getItemMeta();
metas5.spigot().setUnbreakable(true);
lg2.setItemMeta(metas5);
lg2.getItemMeta().spigot().setUnbreakable(true);
player.getInventory().setLeggings(lg2);
ItemStack lb2 = new ItemStack(Material.IRON_BOOTS);
ItemMeta metas6 = lb2.getItemMeta();
metas6.spigot().setUnbreakable(true);
lb2.setItemMeta(metas6);
player.getInventory().setBoots(lb2);
break;
case IronEnch:
ItemStack ir = new ItemStack(Material.IRON_HELMET);
ItemMeta metair = ir.getItemMeta();
metair.spigot().setUnbreakable(true);
ir.setItemMeta(metair);
ir.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setHelmet(ir);
ItemStack ir1 = new ItemStack(Material.IRON_CHESTPLATE);
ItemMeta meta4ir = ir1.getItemMeta();
meta4ir.spigot().setUnbreakable(true);
ir1.setItemMeta(meta4ir);
ir1.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setChestplate(ir1);
ItemStack ir2 = new ItemStack(Material.IRON_LEGGINGS);
ItemMeta metair2 = ir2.getItemMeta();
metair2.spigot().setUnbreakable(true);
ir2.setItemMeta(metair2);
ir2.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setLeggings(ir2);
ItemStack ir3 = new ItemStack(Material.IRON_BOOTS);
ItemMeta metair3 = ir3.getItemMeta();
metair3.spigot().setUnbreakable(true);
ir3.setItemMeta(metair3);
ir3.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setBoots(ir3);
break;
case Diamond:
ItemStack diamond = new ItemStack(Material.DIAMOND_HELMET);
ItemMeta metaird = diamond.getItemMeta();
metaird.spigot().setUnbreakable(true);
diamond.setItemMeta(metaird);
diamond.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setHelmet(diamond);
ItemStack diamond1 = new ItemStack(Material.DIAMOND_CHESTPLATE);
ItemMeta meta4irs = diamond1.getItemMeta();
meta4irs.spigot().setUnbreakable(true);
diamond1.setItemMeta(meta4irs);
diamond1.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setChestplate(diamond1);
ItemStack diamond2 = new ItemStack(Material.DIAMOND_LEGGINGS);
ItemMeta metair2g = diamond2.getItemMeta();
metair2g.spigot().setUnbreakable(true);
diamond2.setItemMeta(metair2g);
diamond2.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setLeggings(diamond2);
ItemStack diamond3 = new ItemStack(Material.DIAMOND_BOOTS);
ItemMeta metair3e = diamond3.getItemMeta();
metair3e.spigot().setUnbreakable(true);
diamond3.setItemMeta(metair3e);
diamond3.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
player.getInventory().setBoots(diamond3);
break;
default:
ItemStack lh1 = new ItemStack(Material.LEATHER_HELMET);
ItemMeta metas = lh1.getItemMeta();
metas.spigot().setUnbreakable(true);
lh1.setItemMeta(metas);
player.getInventory().setHelmet(lh1);
ItemStack lc1 = new ItemStack(Material.LEATHER_CHESTPLATE);
ItemMeta meta1s = lc1.getItemMeta();
meta1s.spigot().setUnbreakable(true);
lc1.setItemMeta(meta1s);
player.getInventory().setChestplate(lc1);
ItemStack lg1 = new ItemStack(Material.LEATHER_LEGGINGS);
ItemMeta meta2s = lg1.getItemMeta();
meta2s.spigot().setUnbreakable(true);
lg1.setItemMeta(meta2s);
player.getInventory().setLeggings(lg1);
ItemStack lb1 = new ItemStack(Material.LEATHER_BOOTS);
ItemMeta meta3s = lb1.getItemMeta();
meta3s.spigot().setUnbreakable(true);
lb1.setItemMeta(meta3s);
player.getInventory().setBoots(lb1);
break;
}
}
}

public class GiveWeapons {
public static void giveWeapons(Player player, String weapon) {
Weapons weapons;
switch (weapon) {
case "Default":
weapons = Weapons.Default;
break;
case "WoodSh":
weapons = Weapons.WoodSh;
break;
case "Iron":
weapons = Weapons.Iron;
break;
case "IronSh":
weapons = Weapons.IronSh;
break;
case "IronShKn":
weapons = Weapons.IronShKn;
break;
case "IronShKnF":
weapons = Weapons.IronShKnF;
break;
case "Diamond":
weapons = Weapons.Diamond;
break;
default:
weapons = Weapons.Default;
break;
}
switch (weapons) {
case Default:
ItemStack df = new ItemStack(Material.WOOD_SWORD);
ItemMeta meta = df.getItemMeta();
meta.spigot().setUnbreakable(true);
df.setItemMeta(meta);
player.getInventory().setItem(0, df);
break;
case WoodSh:
ItemStack wds = new ItemStack(Material.WOOD_SWORD);
ItemMeta meta1 = wds.getItemMeta();
meta1.spigot().setUnbreakable(true);
wds.setItemMeta(meta1);
wds.addEnchantment(Enchantment.DAMAGE_ALL, 1);
player.getInventory().setItem(0, wds);
break;
case Iron:
ItemStack irs = new ItemStack(Material.IRON_SWORD);
ItemMeta meta2 = irs.getItemMeta();
meta2.spigot().setUnbreakable(true);
irs.setItemMeta(meta2);
player.getInventory().setItem(0, irs);
break;
case IronSh:
ItemStack irsh = new ItemStack(Material.IRON_SWORD);
ItemMeta meta3 = irsh.getItemMeta();
meta3.spigot().setUnbreakable(true);
irsh.setItemMeta(meta3);
irsh.addEnchantment(Enchantment.DAMAGE_ALL, 1);
player.getInventory().setItem(0, irsh);
break;
case IronShKn:
ItemStack irshkn = new ItemStack(Material.IRON_SWORD);
ItemMeta meta4 = irshkn.getItemMeta();
meta4.spigot().setUnbreakable(true);
irshkn.setItemMeta(meta4);
Map<Enchantment, Integer> enchs = new HashMap<Enchantment, Integer>();
enchs.put(Enchantment.DAMAGE_ALL, 2);
enchs.put(Enchantment.KNOCKBACK, 1);
irshkn.addEnchantments(enchs);
player.getInventory().setItem(0, irshkn);
break;
case IronShKnF:
ItemStack irshknf = new ItemStack(Material.IRON_SWORD);
ItemMeta meta5 = irshknf.getItemMeta();
meta5.spigot().setUnbreakable(true);
irshknf.setItemMeta(meta5);
Map<Enchantment, Integer> enchs1 = new HashMap<Enchantment, Integer>();
enchs1.put(Enchantment.DAMAGE_ALL, 3);
enchs1.put(Enchantment.KNOCKBACK, 2);
enchs1.put(Enchantment.FIRE_ASPECT, 1);
irshknf.addEnchantments(enchs1);
player.getInventory().setItem(0, irshknf);
break;
case Diamond:
ItemStack diamond = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta meta6 = diamond.getItemMeta();
meta6.spigot().setUnbreakable(true);
diamond.setItemMeta(meta6);
Map<Enchantment, Integer> enchs2 = new HashMap<Enchantment, Integer>();
enchs2.put(Enchantment.DAMAGE_ALL, 3);
enchs2.put(Enchantment.KNOCKBACK, 2);
enchs2.put(Enchantment.FIRE_ASPECT, 1);
diamond.addEnchantments(enchs2);
player.getInventory().setItem(0, diamond);
break;
default:
ItemStack df1 = new ItemStack(Material.WOOD_SWORD);
ItemMeta meta7 = df1.getItemMeta();
meta7.spigot().setUnbreakable(true);
df1.setItemMeta(meta7);
player.getInventory().setItem(0, df1);
break;
}
}
}
 
Решил проблему таким способом:

new BukkitRunnable() {
@Override
public void run() {
GiveItems.giveItems(player);
}
}.runTask(Main.plugin);

Всем спасибо за помощь!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх