2015-07-29 4 views
-1

Так что я недавно попытался сделать плагин bukkit для minecraft. Идея в том, что это будет просто пробный плагин, чтобы посмотреть, смогу ли я это сделать, и, по-видимому, я не могу. Это код, который я придумалПлагин Bukkit не работает?

package me.glowhoo.BlockChanger; import org.bukkit.Bukkit; 
import org.bukkit.ChatColor; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandSender; 
import org.bukkit.entity.Player; 
import org.bukkit.plugin.java.JavaPlugin; 
public class BlockChanger extends JavaPlugin 
{ 
@Override public void onEnable() { 
    Bukkit.getLogger().info(this.getDescription().getName() + 
      " has been enabled"); 
    } 
@Override public void onDisable() { 
    Bukkit.getLogger().info(this.getDescription().getName() + " has been disabled"); 
    } 
@Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 
    /*command: /tpa Glowhoo 
    * args.length = 1 
    * args[0] = Glowhoo 
    * command.getName() = tpa 
    */ 
    if (cmd.getName().equalsIgnoreCase("message")){ 
     if(sender instanceof Player) 
     { 
      /*ComandSender sender-who sent the command 
      * Command cmd- the command that was executed 
      * String commandLabel-the command alias that was used 
      * String[] args-array of additional arguments 
      */ 
      sender.sendMessage(ChatColor.RED +"Hello player!"); 
     }else 
     { 
      sender.sendMessage(ChatColor.AQUA +"Hello console!");    
     } 
    } 
    return false; 
    } 
} 

Так что проблема с этим, является то, что всякий раз, когда я загрузить на сервер, он говорит, что «BlockChanger было включено», но потом, когда я пытаюсь ввести только команду он имеет (сообщение) или/сообщение, ничего не происходит, и он говорит, что это непризнанная команда и введите/help для информации. Проблема не заканчивается, хотя, когда я на самом деле пытаюсь получить плагин, 90% случаев у меня есть ошибка plugin.yml, которую я не совсем понимаю, но если кто-то из вас знает что-нибудь об этой проблеме , пожалуйста, ответьте

Мой plugin.yml файл находится здесь (Примечание: это plugin.yml копия на самом деле работает, но команда itsself не делает.):

name: BlockChanger 
version: 1.0 
main: me.glowhoo.BlockChanger.BlockChanger 
description: 
commands: 
message: 
description: -no desc- 
usage: /message 

ответ

0

Ваш plugin.yml неверен. Для определения узла необходимо указать отступ message под номером commands. В настоящее время commands - ключевое значение для ничего. Измените соответствующую часть этого:

commands: 
    message: 
    usage: /message 
+0

Редактировать: Хотя это действительно работает, всякий раз, когда я набираю команду/сообщение, она говорит «Привет, плеер!». то он также говорит, что использование определено n plugin.yml. любой совет? –

+0

@Peter_Browning: возвращает true вместо false. – Unihedron

0

Это какое-то время в будущем сейчас, но в случае, если вы используете этот раз, когда у вас есть команда, вам нужно вернуться так, иначе он будет сказать вам, что это некорректная команда, даже если ваш .yml/.yaml-файл настроен правильно. Итак, вот что вам нужно сделать, чтобы зарегистрировать свою команду при вызове:

package me.glowhoo.BlockChanger; import org.bukkit.Bukkit; 
import org.bukkit.ChatColor; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandSender; 
import org.bukkit.entity.Player; 
import org.bukkit.plugin.java.JavaPlugin; 
public class BlockChanger extends JavaPlugin 
{ 
@Override public void onEnable() { 
    Bukkit.getLogger().info(this.getDescription().getName() + 
      " has been enabled"); 
    } 
@Override public void onDisable() { 
    Bukkit.getLogger().info(this.getDescription().getName() + " has been disabled"); 
    } 
@Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 
    /*command: /tpa Glowhoo 
    * args.length = 1 
    * args[0] = Glowhoo 
    * command.getName() = tpa 
    */ 
    if (cmd.getName().equalsIgnoreCase("message")){ 
     if(sender instanceof Player) 
     { 
      /*ComandSender sender-who sent the command 
      * Command cmd- the command that was executed 
      * String commandLabel-the command alias that was used 
      * String[] args-array of additional arguments 
      */ 
      sender.sendMessage(ChatColor.RED +"Hello player!"); 
     }else 
     { 
      sender.sendMessage(ChatColor.AQUA +"Hello console!");    
     } 
     return true; 
    } 
    return false; 
    } 
} 
Смежные вопросы