Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Не работающий код...

BoosterYT

Активный участник
Пользователь
Баллы
66
Подскажите почему, при ломании губки пишется только сообщение "Ты восстановил 1 сердце!", а здоровье не восстанавливается?
Код:
package me.booster.FirstPlugin;

import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener
{
    public static final Logger _log = Logger.getLogger("Minercaft");
   
    @Override
    public void onEnable() {
        _log.info("[FirstPlugin] Plugin is Enable");
        Bukkit.getPluginManager().registerEvents(this, this);
    }
   
    @EventHandler
       public void onBlockBreak(BlockBreakEvent event)
      {  
           if(event.getBlock().getType() != Material.SPONGE) return;
          
           event.getPlayer().setHealth(2);
           event.getPlayer().sendMessage(ChatColor.RED + "Ты восстановил 1 сердце!");

       }  
}
 
Подскажите почему, при ломании губки пишется только сообщение "Ты восстановил 1 сердце!", а здоровье не восстанавливается?
Код:
package me.booster.FirstPlugin;

import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener
{
    public static final Logger _log = Logger.getLogger("Minercaft");
  
    @Override
    public void onEnable() {
        _log.info("[FirstPlugin] Plugin is Enable");
        Bukkit.getPluginManager().registerEvents(this, this);
    }
  
    @EventHandler
       public void onBlockBreak(BlockBreakEvent event)
      { 
           if(event.getBlock().getType() != Material.SPONGE) return;
         
           event.getPlayer().setHealth(2);
           event.getPlayer().sendMessage(ChatColor.RED + "Ты восстановил 1 сердце!");

       } 
}
Потому что вы устанавливаете одно сердце, а не добавляете.
 
Подскажите почему, при ломании губки пишется только сообщение "Ты восстановил 1 сердце!", а здоровье не восстанавливается?
Код:
package me.booster.FirstPlugin;

import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener
{
    public static final Logger _log = Logger.getLogger("Minercaft");
  
    @Override
    public void onEnable() {
        _log.info("[FirstPlugin] Plugin is Enable");
        Bukkit.getPluginManager().registerEvents(this, this);
    }
  
    @EventHandler
       public void onBlockBreak(BlockBreakEvent event)
      { 
           if(event.getBlock().getType() != Material.SPONGE) return;
         
           event.getPlayer().setHealth(2);
           event.getPlayer().sendMessage(ChatColor.RED + "Ты восстановил 1 сердце!");

       } 
}
event.getPlayer().setHealth(2);
надо так:
Код:
if(event.getPlayer().getHealth() <= 18)
{
event.getPlayer().setHealth(event.getPlayer().getHealth()+2);
}
 
event.getPlayer().setHealth(2);
надо так:
Код:
if(event.getPlayer().getHealth() <= 18)
{
event.getPlayer().setHealth(event.getPlayer().getHealth()+2);
}
Мне кажется что так будет чуть чуть оптимизирование.
Код:
int hp = event.getPlayer().getHealth();
if(hp <= 18)
{
event.getPlayer().setHealth(hp+2);
}
 

Поделиться этой страницей

Назад
Верх