Bukkit создает 2 экземпляра одного и того же предмета.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Bukkit создает 2 экземпляра одного и того же предмета.

Сообщение Гость »


Когда я впервые использую свой предмет (пусковую установку пламени), он работает отлично. Но если я даю себе еще один огнемет, создается впечатление, что он перенимает свойства другого. Как я могу создать 2 отдельных экземпляра в этом контексте?

пакет fr.laponie.ShooterPlugin; импортировать java.util.Arrays; импортировать java.util.List; импортировать org.bukkit.Bukkit; импортировать org.bukkit.ChatColor; импортировать org.bukkit.Location; импортировать org.bukkit.Material; импортировать org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; импортировать org.bukkit.entity.Player; импортировать org.bukkit.event.EventHandler; импортировать org.bukkit.event.Listener; импортировать org.bukkit.event.block.Action; импортировать org.bukkit.event.player.PlayerInteractEvent; импортировать org.bukkit.inventory.ItemStack; импортировать org.bukkit.inventory.meta.ItemMeta; импортировать org.bukkit.scheduler.BukkitRunnable; импортировать org.bukkit.util.Vector; импортировать net.minecraft.server.v1_8_R3.EnumParticle; импортировать net.minecraft.server.v1_8_R3.PacketPlayOutWorldParticles; публичный класс FlameLauncher реализует Weapon, Listener { общественный FlameLauncher() { ItemStack = новый ItemStack(Material.GOLD_BARDING); ItemMeta im = is.getItemMeta(); im.setDisplayName("FLAME LAUNCHER [" + ChatColor.GREEN + "▪ ▪ ▪ ▪ ▪" + ChatColor.WHITE + "]"); List lore = Arrays.asList("Это оружие","производит пламя, воспламеняется","цель"); im.setLore(знания); is.setItemMeta(im); этот.уровень = 1; this.mat = есть; это.топливо = 10,0; } @Обработчик события public void onRightClickWeapon (PlayerInteractEvent e) { Игрок p = e.getPlayer(); Действие действие = e.getAction(); Поле ItemStack = this.mat; ItemStack Hand = p.getItemInHand(); Местоположение playerEyeLoc = p.getEyeLocation(); Директор вектора = p.getEyeLocation().getDirection(); if (действие == Action.RIGHT_CLICK_AIR || действие == Action.RIGHT_CLICK_BLOCK) { if (hand.getType() == field.getType() &&hand.getItemMeta().getLore().equals(field.getItemMeta().getLore())) { если (this.getFuel() > 0) { это.топливо -= 1; this.setFuel(топливо); this.updateColorAccordingToFuel(this.fuel); hand.setItemMeta(this.mat.getItemMeta()); Частица EnumParticle = EnumParticle.FLAME; Местоположение ploc = playerEyeLoc.add(директор); Пакет PacketPlayOutWorldParticles = новый PacketPlayOutWorldParticles(particle, false, (float) ploc.getX(), (с плавающей запятой) ploc.getY(), (с плавающей запятой) ploc.getZ(),0,0,0,0,5, ноль); CraftPlayer cp = (CraftPlayer) р; cp.getHandle().playerConnection.sendPacket(пакет); } } } } общественный двойной getFuel() { вернуть это.топливо; } public void setFuel(double newFuel) { this.fuel = новое топливо; } @Override общественный двойной getDamage() { // TODO Автоматически сгенерированная заглушка метода вернуть 0; } @Override public void setDamage(double dp) { // TODO Автоматически сгенерированная заглушка метода } @Override публичный материал getMCMaterial() { // TODO Автоматически сгенерированная заглушка метода вернуть ноль; } @Override public void setMCMaterial (Материал м) { // TODO Автоматически сгенерированная заглушка метода } @Override общественный двойной getReloadTime() { // TODO Автоматически сгенерированная заглушка метода вернуть 0; } @Override public void setReloadTime(double reloadTime) { // TODO Автоматически сгенерированная заглушка метода } @Override общественный ИНТ getAmmoNb () { // TODO Автоматически сгенерированная заглушка метода вернуть 0; } @Override public void setAmmoNb (int ammo) { // TODO Автоматически сгенерированная заглушка метода } @Override public void onAmmoHitEntity (событие AmmoHitPlayerEvent) { // TODO Автоматически сгенерированная заглушка метода } void updateColorAccordingToFuel (двойное топливо) { ItemStack clone = this.mat.clone(); ItemMeta cloneM = clone.getItemMeta(); если (топливо >= 8,0) { cloneM.setDisplayName("FLAME LAUNCHER [" + ChatColor.GREEN + "▪ ▪ ▪ ▪" + ChatColor.WHITE +"]"); this.mat.setItemMeta(cloneM); } else if (топливо >= 6,0) { cloneM.setDisplayName("FLAME LAUNCHER [" + ChatColor.GREEN + "▪ ▪ ▪ ▪" + ChatColor.WHITE + " ▪]"); this.mat.setItemMeta(cloneM); } else if (топливо >= 4,0) { cloneM.setDisplayName("FLAME LAUNCHER [" + ChatColor.GREEN + "▪ ▪ ▪" + ChatColor.WHITE + " ▪ ▪]"); this.mat.setItemMeta(cloneM); } else if (топливо >= 2,0) { cloneM.setDisplayName("FLAME LAUNCHER [" + ChatColor.GREEN + "▪ ▪" + ChatColor.WHITE +" ▪ ▪ ▪]"); this.mat.setItemMeta(cloneM); } else if (топливо > 0) { cloneM.setDisplayName("FLAME LAUNCHER [" + ChatColor.GREEN + "▪" + ChatColor.WHITE +" ▪ ▪ ▪ ▪]"); this.mat.setItemMeta(cloneM); } еще { cloneM.setDisplayName("ПЛАМЕТНАЯ ПУСКОВАЯ [▪ ▪ ▪ ▪ ▪]"); this.mat.setItemMeta(cloneM); } } внутренний уровень; Коврик для стопки предметов; двойной урон, топливо; } Как видите, когда игрок щелкает правой кнопкой мыши, он расходует «топливо». При отладке я понял, что когда я использую вторую пусковую установку пламени, топливо установлено на 0,0, поэтому я понимаю, что проблема в строке «if (this.getFuel > 0)», но я действительно не знаю, как чтобы правильно решить ее.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Максимизация уже запущенного экземпляра приложения одного экземпляра в QT
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Bukkit – невозможно использовать внешний JAR в плагинах
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Java (Spigot/Bukkit) несколько классов
    Гость » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Гость
  • Невозможно импортировать библиотеки org.bukkit.
    Anonymous » » в форуме JAVA
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Скрыть объект для некоторых игроков – Spigot/Bukkit – Java
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»