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

Помогите Опять прошу...

ShaGTF

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
CoolShaGGy
Привет! Не буду тянуть, вообщем вот код:
Код:
package TheWar;

import org.bukkit.entity.Fireball;
import org.bukkit.event.EventHandler;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;


public class mainClass extends JavaPlugin implements Listener {
       

    public void onEnable(){
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("TheWar plugin enabling");
    }
    public void onDisable(){
        getLogger().info("TheWar plugin disabling");
    }

    @EventHandler
    public void getAction(PlayerInteractEvent e) {
        if(e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
            if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD)); {
                e.getPlayer().launchProjectile(Fireball.class);
                   
                }
            }

                   
                }
               
       
            }
Вопрос: Если я нажимаю ПКМ с ЛЮБЫМ блоком, выстреливается FireBall. А мне нужно с палочкой блейза... Помогите, пожалуйста. Я надоел, знаю.
 
Привет! Не буду тянуть, вообщем вот код:
Код:
package TheWar;

import org.bukkit.entity.Fireball;
import org.bukkit.event.EventHandler;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;


public class mainClass extends JavaPlugin implements Listener {
     

    public void onEnable(){
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("TheWar plugin enabling");
    }
    public void onDisable(){
        getLogger().info("TheWar plugin disabling");
    }

    @EventHandler
    public void getAction(PlayerInteractEvent e) {
        if(e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
            if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD)); {
                e.getPlayer().launchProjectile(Fireball.class);
                 
                }
            }

                 
                }
             
     
            }
Вопрос: Если я нажимаю ПКМ с ЛЮБЫМ блоком, выстреливается FireBall. А мне нужно с палочкой блейза... Помогите, пожалуйста. Я надоел, знаю.
ПОТОМУ ЧТО НАДО ПОБОЛЬШЕ ЧИТАТЬ ДОКУМЕНТАЦИИ. И нахера тут equals? Используй его если тебе надо например уже сделать проверку на имя предмета. Просто: уриури.getType() == Material.BLAZE_ROD
 
ПОТОМУ ЧТО НАДО ПОБОЛЬШЕ ЧИТАТЬ ДОКУМЕНТАЦИИ. И нахера тут equals? Используй его если тебе надо например уже сделать проверку на имя предмета. Просто: уриури.getType() == Material.BLAZE_ROD
Спасибо :D Буду читать документацию (*゚▽゚)ノ
 
Спасибо :D Буду читать документацию (*゚▽゚)ノ
Еще есть вопросы? А то делать нечего :)
Спасибо :D Буду читать документацию (*゚▽゚)ノ
И еще, рекомендую все таки использовать "пакет" вот так: не просто TheWar, а например, ru.shagtf.thewar. Незнаю, но мне это больше нравится :D
 
Еще есть вопросы? А то делать нечего :)

И еще, рекомендую все таки использовать "пакет" вот так: не просто TheWar, а например, ru.shagtf.thewar. Незнаю, но мне это больше нравится :D
Угу, спасибо за совет. Как же ты мне помогаешь :3
 
Вот на всякий случай.

Вопрос

Что такое метод equals() ?
Чем он отличается от операции == ?

Ответ

Метод equals() обозначает отношение эквивалентности объектов. Эквивалентным называется отношение, которое является симметричным, транзитивным и рефлексивным. Рефлексивность: для любого ненулевого x, x.equals(x) вернет true;
Транзитивность: для любого ненулевого x, y и z, если x.equals(y) и y.equals(z) вернет true, тогда и x.equals(z) вернет true;
Симметричность: для любого ненулевого x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) вернет true.
Также для любого ненулевого x, x.equals(null) должно вернуть false.
Отличия equals() от операции == в классе Object нет. Это видно, если взглянуть исходный код метода equals класса Object:
 
Вот весь плагин за тебя ЖДУ ЛАЙКА.)))

Код:
package TheWar;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class mainClass extends JavaPlugin implements Listener
{

    public void onEnable()
    {
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("TheWar plugin enabling");
    }

    @EventHandler
    public void onClick(PlayerInteractEvent e)
    {
        Player player = e.getPlayer();
        if(e.getAction() == Action.RIGHT_CLICK_AIR)
        {
            if(player.getItemInHand().getType() == Material.BLAZE_ROD)
            {
                  e.getPlayer().launchProjectile(Fireball.class);
            }
        }
    }

    public void onDisable()
    {
        getLogger().info("TheWar plugin disabling");
    }

  //The War Plugin Bukkit

}
 
Последнее редактирование:
Вот весь плагин за тебя ЖДУ ЛАЙКА.)))

Код:
package TheWar;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class mainClass extends JavaPlugin implements Listener
{

    public void onEnable()
    {
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("TheWar plugin enabling");
    }

    @EventHandler
    public void onClick(PlayerInteractEvent e)
    {
        Player player = e.getPlayer();
        if(e.getAction() == Action.RIGHT_CLICK_AIR)
        {
            if(player.getItemInHand().getType() == Material.BLAZE_ROD)
            {

                if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD));
                {
                  e.getPlayer().launchProjectile(Fireball.class);
                }
            }
        }
    }

    public void onDisable()
    {
        getLogger().info("TheWar plugin disabling");
    }

  //The War Plugin Bukkit

}
Не жди. Что тут такого нового? И еще херею от такого:
Код:
            if(player.getItemInHand().getType() == Material.BLAZE_ROD)
            {

                if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD));
                {
Зачем писать equals? x2. Если проверку на айтем уже сделали?
ЦИТАТА
Метод equals() обозначает отношение эквивалентности объектов. Эквивалентным называется отношение, которое является симметричным, транзитивным и рефлексивным. Рефлексивность: для любого ненулевого x, x.equals(x) вернет true;
 
Автору на заметку. В коде используется проверка предмета через материал, так же возможны варианты сравнения самого предмета(в бакките есть класс Item в котором ванильные предметы, так же есть класс Block) и еще можно брать от предмета getTypeId() и сравнивать по ID предмета, последний вариант удобен при работе с модами.
 
Не жди. Что тут такого нового? И еще херею от такого:
Код:
            if(player.getItemInHand().getType() == Material.BLAZE_ROD)
            {

                if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD));
                {
Зачем писать equals? x2. Если проверку на айтем уже сделали?
ахахахха я прсото спешил и забыл удалить когда вставлял !
 

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

Назад
Верх