Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите с созданием плагина(ошибка) ;(

Discussion in '[Архив] Помощь' started by Hilgert, Oct 21, 2013.

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

    Hilgert Старожил Пользователь

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Здравствуйте, я новичок в созданиях плагинов для bukkit, и в очередной раз, когда я пытался сделать 2-й плагин, у меня появилась такая ошибка:
    Code:
    void is an invalid type for the variable onBlockPlace
    Код плагина:
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.plugin.java.JavaPlugin;

    public class randtp extends JavaPlugin implements Listener{
    public void onEnable(){
    Bukkit.getPluginManager().registerEvents(this, this);
    }
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    @EventHandler
    public void onBlockPlace(BlockPlaceEvent e){
    if(e.getBlock().getType() == Material.ENDER_STONE){
    Bukkit.getPlayer(sender.getName()).performCommand("***");
    }
    }
    return true;
    }
    }

    Помогите пожалуйста, очень срочно надо ;(
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    Hilgert

    Hilgert Старожил Пользователь

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
  4. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    А тебя не смущает, то что в void функции ты возвращаешь true?
     
    Hilgert likes this.
  5. dark32

    dark32 А где твой ТЗ? Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    dark32
    Мне кажется или ты действительно пытаешься определить функцию onBlockPlace в функции onCommand
     
    Hilgert likes this.
  6. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    Не заметил сразу
     
    HoShiMin and Hilgert like this.
  7. Автор темы
    Hilgert

    Hilgert Старожил Пользователь

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.plugin.java.JavaPlugin;

    public class randtp extends JavaPlugin implements Listener{
    public void onEnable(){
    Bukkit.getPluginManager().registerEvents(this, this);
    }
    @EventHandler
    public void onBlockPlace(BlockPlaceEvent e){
    if(e.getBlock().getType() == Material.ENDER_STONE){
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    Bukkit.getPlayer(sender.getName()).performCommand("***");
    }

    }
    }
    }
    теперь ошибка в onCommand :eek:
    Illegal modifier for parameter onCommand; only final is permitted
     
  8. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    Может быть вам стоит прекратить делать вложенные друг в друга функции?
     
    Last edited: Oct 21, 2013
  9. Автор темы
    Hilgert

    Hilgert Старожил Пользователь

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Может вы тогда подскажете как реализовать это? :([DOUBLEPOST=1382388228,1382384256][/DOUBLEPOST]Ладно, спасибо вам всё равно, Решил проблему так:
    Code:
    public class randtp extends JavaPlugin implements Listener{
        public void onEnable(){
            Bukkit.getPluginManager().registerEvents(this, this);
        }
        @EventHandler
    public void onBlockPsslace(BlockPlaceEvent e){
        if(e.getBlock().getType() == Material.ENDER_STONE){
            e.setCancelled(true);
            e.getPlayer().performCommand("***");
        }
     
  10. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    А зачем вы пытались вложить функцию в другую функцию? Она сама по себе не исполнится.
     
    Hilgert likes this.
  11. Автор темы
    Hilgert

    Hilgert Старожил Пользователь

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    я же вчера начал делать плагины, откуда я буду знать что в джаве так нельзя?)
     
  12. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    Посмотрите уроки по написанию плагинов
     
  13. Автор темы
    Hilgert

    Hilgert Старожил Пользователь

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    ясно, а можете сказать, почему не этот код не работает(ошибок нету)
    Code:
    public class main extends JavaPlugin implements Listener{
        public void onEnable(){
            Bukkit.getPluginManager().registerEvents(this, this);
        }
        @EventHandler
        public void onPlayerMove(PlayerMoveEvent e){
                if(e.getPlayer().getLocation().getX() == -430){
                        if(e.getPlayer().getLocation().getZ() == 546){
                            e.getPlayer().performCommand("***");
                            e.getPlayer().sendMessage("123");
                }
            }
        }
    }
    
    с меня лойс :3
     

Share This Page