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

OnEnable Решено!

Статус
Закрыто для дальнейших ответов.

Boris3000

Новичок
Баллы
6
Имя в Minecraft
_Borsi2000_
я совсем недавно начал работать с плагинами поэтому не знаю как и что делается, до этого только в unity работал в среде jawa
так вот вопрос делаю по урокам плагин (2й) и там надо создать команды вот мой код
package ru.slywnow.bukkit.test;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public class command extends JavaPlugin implements CommandExecutor {
@Override
public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) {
}
public void onEnable() {
& getCommand("cmdplugin").setExecutor(new CmdPlgCommand());
& getCommand("helpme").setExecutor(new HelpmeCommand());
& getCommand("dmitriymx").setExecutor(new CopyrightAuthor());
& }
return true;
}
}
&-пишет что отшибка
помогите решить
 
Эммм, а зачем тут &? Это даже не оператор И.
 
я совсем недавно начал работать с плагинами поэтому не знаю как и что делается, до этого только в unity работал в среде jawa
так вот вопрос делаю по урокам плагин (2й) и там надо создать команды вот мой код
package ru.slywnow.bukkit.test;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public class command extends JavaPlugin implements CommandExecutor {
@Override
public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) {
}
public void onEnable() {
& getCommand("cmdplugin").setExecutor(new CmdPlgCommand());
& getCommand("helpme").setExecutor(new HelpmeCommand());
& getCommand("dmitriymx").setExecutor(new CopyrightAuthor());
& }
return true;
}
}
&-пишет что отшибка
помогите решить
Боже, что за говно у тебя там? Зачем один метод пихать в другой? onEnable() должен быть как отдельный. И да, что за '&'?
 
Боже, что за говно у тебя там? Зачем один метод пихать в другой? onEnable() должен быть как отдельный. И да, что за '&'?
Он не пихает, он просто не может в разметку кода. onCommand заканчивается сразу после начала.
 
Я же написал что &- это там где ошибку пишет!(в коле соотвецтвено этого нету)
спасибо просто я привык не void а function писать вот и не заметил такой ерунды=)
если не сложно помогите и с этим
package ru.slywnow.bukkit.test;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

import ru.tehkode.permissions.bukkit.PermissionsEx;

public class command extends JavaPlugin implements Listener {

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(PermissionsEx.getUser(event.getPlayer()).has("slywnow.info")){
if(command.getName().equalsIgnoreCase("cmdplugin")){
sender.sendMessage("this is \"cmdplugin\" command");
return true;
}else if(command.getName().equalsIgnoreCase("slywnow")){
File helpText = new File(getDataFolder(), "slywnow.txt");
StringBuilder fullText = new StringBuilder();
try {
BufferedReader buffer = new BufferedReader(new FileReader(helpText));
String line;
while((line = buffer.readLine()) != null){
fullText.append(line).append("\n");
}
buffer.close();
} catch (Exception e) {
e.printStackTrace();
}
sender.sendMessage(fullText.toString());
return true;
}
return false;
}
}
}
ошибка там где event
P.s пытался задать премишин для pex (плагин мастерю для сервера, поэтому pb не интересует.
 
Ошибка NullPointerException? если да, в plugin.yml команды вписаны?
 
Как я понял, у него ошибка синтаксическая. Чтобы написать оператор "и" нужно писать "&&"
 
Ты скинь хотя бы какую ошибку кидает
 
Блин, используйте уже тег [ code = Java ] ... [ /code ]
 
Java:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(PermissionsEx.getUser(event.getPlayer()).has("slywnow.info")){

....
ошибка там где event
P.s пытался задать премишин для pex (плагин мастерю для сервера, поэтому pb не интересует.

Это очень хорошо, что Вы научились копировать из разных мест. Только при этом нужно понимать, что именно Вы копируете.

event.getPlayer()... Вы скопировали из какого-то обработчика событий. Там объект event был определен. Т.е. там было что-то вроде этого:
Java:
  @EventHandler
  public void onPlayerNeedToLearnJava (PlayerMoveEvent event);
        if(PermissionsEx.getUser(event.getPlayer()).has("slywnow.info")){
...

Видите в чем разница? Во втором варианте, объект event является параметром для вызываемой функции, а в функции onCommand параметры только такие: CommandSender sender, Command command, String label, String[] args
Там нет event. Соответственно обращаться к этому объекту... ну ни как нельзя. Нет его. Не существует.

А поскольку Вам нужно здесь не событие, а игрок который выполнил команду, то для этого нужно работать с объектом sender:
Java:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        Player player = null; // Создаем объект player - игрок
        if (sender insanceof Player) player = (Player) sender; // Если sender - это игрок - то "получаем" его.
        else return false; // Или если команду писали в консоли - уходим
        if(player.hasPermission("slywnow.info")){
//... дальше делайте что Вы хотите.

Вообще Ваши ошибки понятны на этапе набора кода. Т.е. Вы ещё не пытаетесь компилировать, а вам IDE уже подсказывает, что у Вас ошибка. Если прочитать текст ошибки и попытаться его понять - то даже если сразу не будет понятно, как исправлять, то по крайней мере вопросы будет задавать проще.
 
Спасибо всем, за время не работы rubukkit'a уже решил не только эту но и проблему с player , и научился задавать переменые, а то пытался через var или public делать=)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх