Войти или зарегистрироваться

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

  • Автор темы Автор темы Hilgert
  • Дата начала Дата начала

Hilgert

Старожил
Пользователь
Баллы
123
Имя в Minecraft
Hilgert
Здравствуйте, я новичок в созданиях плагинов для bukkit, и в очередной раз, когда я пытался сделать 2-й плагин, у меня появилась такая ошибка:
Код:
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;
}
}

Помогите пожалуйста, очень срочно надо ;(
 
А тебя не смущает, то что в void функции ты возвращаешь true?
 
Мне кажется или ты действительно пытаешься определить функцию onBlockPlace в функции onCommand
 
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
 
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
Может быть вам стоит прекратить делать вложенные друг в друга функции?
 
Последнее редактирование:
Может вы тогда подскажете как реализовать это? :(
Ладно, спасибо вам всё равно, Решил проблему так:
Код:
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("***");
    }
 
Может вы тогда подскажете как реализовать это? :(
Ладно, спасибо вам всё равно, Решил проблему так:
Код:
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("***");
    }
А зачем вы пытались вложить функцию в другую функцию? Она сама по себе не исполнится.
 
ясно, а можете сказать, почему не этот код не работает(ошибок нету)
Код:
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
 
Назад
Верх