Выдает ошибку из-за созданной комманды

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

KoT_B_MaMe

Участник
Пользователь
Баллы
31
Имя в Minecraft
KoT_B_MaMKe
Всем привет, мне выдает ошибку в консоли "
[22:26:08 ERROR]: Error occurred while enabling SpamShit v1.0-SNAPSHOT (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "org.bukkit.command.PluginCommand.setExecutor(org.bukkit.command.CommandExecutor)" because the return value of "spamshit.spamshit.SpamShit.getCommand(String)" is null
at spamshit.spamshit.SpamShit.onEnable(SpamShit.java:23) ~[SpamDima.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:541) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.enablePlugin(CraftServer.java:560) ~[purpur-1.18.2.jar:git-Purpur-1628]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.enablePlugins(CraftServer.java:474) ~[purpur-1.18.2.jar:git-Purpur-1628]
at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:669) ~[purpur-1.18.2.jar:git-Purpur-1628]
at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:436) ~[purpur-1.18.2.jar:git-Purpur-1628]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:352) ~[purpur-1.18.2.jar:git-Purpur-1628]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1179) ~[purpur-1.18.2.jar:git-Purpur-1628]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:320) ~[purpur-1.18.2.jar:git-Purpur-1628]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
"
Код:
Мэйн -
Код:
package spamshit.spamshit;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerBedEnterEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.Nullable;

import java.util.Objects;

public final class SpamShit extends JavaPlugin implements Listener{

    @Override
    public void onEnable(){
        getLogger().info(ChatColor.GREEN + "Плагин успешно запущен");
        getServer().getPluginManager().registerEvents(new EventListener(), this);
        getCommand("greet").setExecutor(new GreetCommand(this));

    }
    @Override
    public void onDisable() {
        getLogger().info(ChatColor.DARK_RED + "Плагин выключен");
    }
}


GreetCommand -
Код:
package spamshit.spamshit;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

public class GreetCommand implements CommandExecutor {
    public GreetCommand(SpamShit spamShit) {

    }

    @Override
    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            if (args.length == 0) {
                player.sendRawMessage("§7Приветствую §c" + player.getDisplayName());
            }
            else {
                player.sendRawMessage("§7Приветствую §c" + args[0].replace("[", "").replace("]", ""));
            }
        }
        return true;
    }
}
Что делать?
И да, в plugin.yml я вписал комманду
Код:
name: SpamShit
version: '1.0-SNAPSHOT'
main: spamshit.spamshit.SpamShit
api-version: 1.18
commands:
  GreetCommand:
    description: Greet Command
    usage: /greet
    permission: spamshit.greet
 
Код:
    @Override
    public void onEnable(){
        getLogger().info(ChatColor.GREEN + "Плагин успешно запущен");
        getServer().getPluginManager().registerEvents(new EventListener(), this);
        getCommand("greet").setExecutor(new GreetCommand(this));

    }
Код:
name: SpamShit
version: '1.0-SNAPSHOT'
main: spamshit.spamshit.SpamShit
api-version: 1.18
commands:
  GreetCommand:
    description: Greet Command
    usage: /greet
    permission: spamshit.greet
В getCommand нужно указывать то, что пишешь в commands в plugin.yml. В твоем случае это GreetCommand. Поменяй на greet в plugin.yml, либо на GreetCommand в коде.
 
getCommand(команда)
А так же укажи её в plugin.yml

В твоём случае:

Код:
commands:
  greet:
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх