1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не работают ивенты

Тема в разделе "Разработка плагинов для новичков", создана пользователем Walker666_, 4 авг 2018.

  1. Автор темы
    Walker666_

    Walker666_ Активный участник

    Баллы:
    61
    Имя в Minecraft:
    _The_Walker_
    Пишу плагин по гайду, и когда очередь доходит ивентов, написал тестовый ивент компилирую плагин,
    и вижу что при ломании блока ничего не пишет и не выдает опыт, вот код:
    Код:
    Код:
    package ru.dev0.walkercore;
    
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    
    import net.md_5.bungee.api.ChatColor;
    
    public class Handler implements Listener  {
    
       @EventHandler
       public void onPlayerJoin(BlockBreakEvent e) {
           Player p = e.getPlayer();
           if(e.getBlock().getType() == Material.ENDER_STONE) {
           p.sendMessage(ChatColor.RED + "Вы сломали нексус!");
           p.giveExp(100);   
           }
       }
    }
    Если вам нужен код Main класса отправлю.
     
  2. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Давай Main
     
  3. Автор темы
    Walker666_

    Walker666_ Активный участник

    Баллы:
    61
    Имя в Minecraft:
    _The_Walker_
    Держи:
    Код:
    package ru.dev0.walkercore;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    import net.md_5.bungee.api.ChatColor;
    
    public class MainClass extends JavaPlugin {
    
        FileConfiguration config = getConfig();
        
        public void OnEnable() {
            Bukkit.getPluginManager().registerEvents(new Handler(), this);
        }
        
        public void OnDisable() {
            
        }
        
        public boolean checkSender(CommandSender sender) {
            if(sender instanceof Player) {
                return false;
            }
            return true;
        }
        
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(cmd.getName().equalsIgnoreCase("sethome")) {
                if(checkSender(sender)) {
                    sender.sendMessage(ChatColor.RED + "Only players can use this command");
                    return true;
                }
                Player p = (Player) sender;
                LocToConfig(p.getName(), p.getLocation());
                p.sendMessage(ChatColor.GOLD + "Core " + ChatColor.GRAY + ">> " + ChatColor.WHITE + "Дом успешно установлен");
                return true;
            }
            if(cmd.getName().equalsIgnoreCase("home")) {
                if(checkSender(sender)) {
                    sender.sendMessage(ChatColor.RED + "Only players can use this command");
                    return true;
                }
                Player p = (Player) sender;
                Location home = ConfigToLoc(p.getName());
                p.teleport(home);
                p.sendMessage(ChatColor.GOLD + "Core " + ChatColor.GRAY + ">> " + ChatColor.WHITE + "Вы успешно телепортировались домой");
                return true;
            }
            return false;
        }
        
        public void LocToConfig(String name, Location loc) {
            config.set("locations." + name + ".world", loc.getWorld().getName());
            config.set("locations." + name + ".x", loc.getX());
            config.set("locations." + name + ".y", loc.getY());
            config.set("locations." + name + ".z", loc.getZ());
            saveConfig();
        }
        
        public Location ConfigToLoc(String name) {
            Location loc = new Location(Bukkit.getWorld(config.getString("locations." + name + ".world")),
                    config.getDouble("locations." + name + ".x"),
                    config.getDouble("locations." + name + ".y"),
                    config.getDouble("locations." + name + ".z"));
            return loc;
        }
    }
    
     
  4. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    У тебя не правильно названы методы, которые должны вызываться при включении и выключении плагина.

    Правильный вариант:
    PHP:
    @Override
    public void onEnable() {
        
    //todo
    }

    @
    Override
    public void onDisable() {
       
    //todo
    }
    Во избежание подобных ситуаций - всегда помечай переопределяемые методы @Override, а лучше включи "ошибку", если какой-то метод не помечен, чтобы не было подобных проблем в будущем.
     
  5. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    И да, замени это:
    PHP:
    import net.md_5.bungee.api.ChatColor;
    на это:
    PHP:
    import org.bukkit.ChatColor;
     
  6. Автор темы
    Walker666_

    Walker666_ Активный участник

    Баллы:
    61
    Имя в Minecraft:
    _The_Walker_
    А как включить эту ошибку?
     
  7. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    Всё зависит от среды разработки. Везде по разному.
     

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