Надеюсь, вы, ребята, можете помочь мне исправить это. Я новичок в Java и очень новичок в BukkitAPI. Я лучше всего учусь, просто иду вперед и пытаясь делать проекты, а затем занимаюсь исследованиями, когда не могу понять, что происходит.Использование нескольких классов для команд, команда не работает?
Я посмотрел вокруг, и я не могу понять, почему это не работает. Я пытаюсь сделать плагин и использую несколько классов для организации и чистоты. Я печатаю все, как его следует набирать, и вот здесь this tutorial. Это немного устарело, поэтому некоторые вещи могут измениться. Проблема в том, что когда я запускаю команду, я не получаю никаких ошибок, но ничего не делает. В нем говорится: «Alj23 выдал команду сервера:/hello (которая является моей командой временным, пока я не исправил это) в консоли, но ничего не происходит. В чате нет сообщений, нет ничего. который выдал команду сообщение «Hello there!» (тоже временно для этого сейчас.) Я просто не знаю, почему это работает.
Я все еще учась, поэтому я, скорее всего, делаю что-то вопиющее неправильное . Я также мог бы быть следующие плохие практики или делать ненужные вещи, так что если это так, было бы удивительно, если бы вы могли бы указать их
Мой главный класс:.
package me.Alj23.RPGClasses;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class RPGClassesMain extends JavaPlugin implements Listener
{
public void OnEnable()
{
this.getCommand("hello").setExecutor(new WarriorInfo(this));
}
public void OnDisable()
{
}
Класс, который выполняет код команды:
package me.Alj23.RPGClasses;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class WarriorInfo implements CommandExecutor
{
RPGClassesMain plugin;
public WarriorInfo (RPGClassesMain passedPlugin)
{
this.plugin = passedPlugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,String[] arg3)
{
Player player = (Player) sender;
player.sendMessage("Hello there!");
return false
}
}
Plugin.yml:
name: RPGClasses
version: 1.0
main: me.Alj23.RPGClasses.RPGClassesMain
description: Choose beyond a wide scope of classes!
commands:
hello:
description: placeholder!
Является ли этот файл yaml точно так же, как у вас есть? Проверьте требования к расстоянию/выравниванию. – Celeo
Нет. Мне нужно было сделать четыре пробела, чтобы они читались как код. Я правильно отформатировал его в своем файле plugin.yml, иначе он сказал бы мне, что у меня есть неверный файл plugin.yml, правильно? – austinj1022
Нет, он не зарегистрировал бы никаких команд, то есть «NullPointerException» при доступе к 'Command.setExecutor (CommandExecutor)'. –