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

Помогите Не видит команду

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

Fager

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
Fager
Я делаю простейший код для создания свой команды. Вроде как сделал все правильно а оно все равно не работает, делал уже по разным туториалам. По какой-то причине моя команда не проходит проверку и в итоге возвращает false
Код:
public class FirstPlugin extends JavaPlugin implements Listener
{
    public boolean checkSender(CommandSender sender){
        if (sender instanceof Player) {
            return false;
        }
        return true;
    }

    public boolean onCommand(CommandSender commandSender, Command cmd, String label, String[] args){
        Player p = (Player) commandSender;
        if(getName().equalsIgnoreCase("heal")) {
            if (checkSender(commandSender)) {
                p.setFoodLevel(100);
                return true;
            }
        }
        return false;
    }
    public void onEnable(){
       getLogger().info("Plugin Crasher Enable");
        getServer().getPluginManager().registerEvents(this, this);
    }
    public void onDisable(){
        getLogger().info("Plugin Crasher Enable");
        getServer().getPluginManager().registerEvents(this, this);
    }
    }
Файл plugin.yml
Код:
name: Plugins
main: ru.Fager.FirstPlugin
version: 0.9.9
author: Fager
commands:
heal:
description: Пример команды
permission: <plugin name>
usage: /<command>
 
Я делаю простейший код для создания свой команды. Вроде как сделал все правильно а оно все равно не работает, делал уже по разным туториалам. По какой-то причине моя команда не проходит проверку и в итоге возвращает false
Код:
public class FirstPlugin extends JavaPlugin implements CommandExecutor
{
    public boolean checkSender(CommandSender sender){
        if (sender instanceof Player) {
            return false;
        }
        return true;
    }

    public boolean onCommand(CommandSender commandSender, Command cmd, String label, String[] args){
        Player p = (Player) commandSender;
        if(getName().equalsIgnoreCase("heal")) {
            if (checkSender(commandSender)) {
                p.setFoodLevel(100);
                return true;
            }
        }
        return false;
    }
    public void onEnable(){
       getLogger().info("Plugin Crasher Enable");
        getServer().getPluginManager().registerEvents(this, this);
        FirstPlugin t = new FirstPlugin();
        getCommand("heal").setExecutor(t);
    }
    public void onDisable(){
        getLogger().info("Plugin Crasher Enable");
        getServer().getPluginManager().registerEvents(this, this);
    }
    }
Файл plugin.yml
Код:
name: Plugins
main: ru.Fager.FirstPlugin
version: 0.9.9
author: Fager
commands:
heal:
description: Пример команды
permission: <plugin name>
usage: /<command>
Както так.
 
Main.java

Java:
package asd.asd;

import org.bukkit.plugin.Plugin;
import org.bukkit.event.Listener;

import java.util.logging.Logger;

import org.bukkit.plugin.java.JavaPlugin;

public class AntiFall extends JavaPlugin
{
    Logger logger;
    static AntiFall plugin;
  
    public Main() {
        this.logger = Logger.getLogger("Minecraft");
    }
  
    public void onEnable() {
        this.logger.info("[asdas] Enabled!");

      
        Heal t = new Heal();
        getCommand("heal").setExecutor(t);
    }
  
    public void onDisable() {
        this.logger.info("[asdasd] Disabled!");
        this.saveConfig();
    }
}
Heal.java

JavaScript:
package asd.asd;

import java.util.HashMap;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

public class Heal implements CommandExecutor
{
    Main plugin;
    Logger log;
    int s;
    public Heal() {
        this.s = 15;
        this.plugin = Main.plugin;
        this.log = Bukkit.getLogger();
    }
   
    public boolean onCommand(final CommandSender sender, final Command cmd, final String commandLabel, final String[] args) {
        final Player player = (Player)sender;
     if (cmd.getName().equalsIgnoreCase("heal")) {
                if (args.length == 0) {
                    player.setFoodLevel(20);
                    player.setHealth(20);
        }
  return true;
}
}
}
Ну а попробуй так.
 
Main.java

Java:
package asd.asd;

import org.bukkit.plugin.Plugin;
import org.bukkit.event.Listener;

import java.util.logging.Logger;

import org.bukkit.plugin.java.JavaPlugin;

public class AntiFall extends JavaPlugin
{
    Logger logger;
    static AntiFall plugin;
 
    public Main() {
        this.logger = Logger.getLogger("Minecraft");
    }
 
    public void onEnable() {
        this.logger.info("[asdas] Enabled!");

     
        Heal t = new Heal();
        getCommand("heal").setExecutor(t);
    }
 
    public void onDisable() {
        this.logger.info("[asdasd] Disabled!");
        this.saveConfig();
    }
}
Heal.java

JavaScript:
package asd.asd;

import java.util.HashMap;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

public class Heal implements CommandExecutor
{
    Main plugin;
    Logger log;
    int s;
    public Heal() {
        this.s = 15;
        this.plugin = Main.plugin;
        this.log = Bukkit.getLogger();
    }
  
    public boolean onCommand(final CommandSender sender, final Command cmd, final String commandLabel, final String[] args) {
        final Player player = (Player)sender;
     if (cmd.getName().equalsIgnoreCase("heal")) {
                if (args.length == 0) {
                    player.setFoodLevel(20);
                    player.setHealth(20);
        }
  return true;
}
}
}
Ну а попробуй так.
Чет все равно никак, ты сам то тестировал?
да скинь ты логи уже... , мы тебе экстрасенсы чтоли???
Смысл из логов тебе будет?
 
  1. public boolean checkSender(CommandSender sender){
  2. if (sender instanceof Player) {//Если игрок, то возвращает false
  3. return false;
  4. }
  5. return true;
  6. }

  7. public boolean onCommand(CommandSender commandSender, Command cmd, String label, String[] args){
  8. Player p = (Player) commandSender;//Команда по умолчанию выполняется от имени игрока
  9. if(getName().equalsIgnoreCase("heal")) {//А это что за странная проверка на название плагина, зачем она нужна???
  10. if (checkSender(commandSender)) {//зачем делать проверку, если мы уже присвоили значение игроку, да к тому же если это игрок, то проверка выдаст false
  11. p.setFoodLevel(100);
  12. return true;
  13. }
  14. }
  15. return false;
  16. }

Java:
public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args)
{
    if(!(cs instanceof Player))
        return false;
    ((Player)cs).setFoodLevel(100);
    return true;
}
 
Насколько можно судить из первых постов ТС-а (хотя может быть это из-за неверного использования тегов кода), то у него нет двух-пробельных отступов в plugin.yml.
Сравните:
YAML:
name: Plugins
main: ru.Fager.FirstPlugin
version: 0.9.9
author: Fager
commands:
  heal:
    description: Пример команды
    permission: <plugin name>
    usage: /<command>
 
  • getServer().getPluginManager().registerEvents(this, this);
  • }
Зачем если ты всё равно ивенты не обрабатываешь?
  • public void onDisable(){
  • getLogger().info("Plugin Crasher Enable");
  • getServer().getPluginManager().registerEvents(this, this);
  • }
Без комментариев... Зачем при выключении плагина регистрировать класс, для обработки ивентов? :eek:
 
Зачем если ты всё равно ивенты не обрабатываешь?

Без комментариев... Зачем при выключении плагина регистрировать класс, для обработки ивентов? :eek:
Я еще начинающий в Bukkit поэтому не все знаю
 
Назад
Верх