java - 尝试在我的服务器上运行脚本时发生错误

标签 java plugins server minecraft

我正在尝试开发一个派系插件,它为每个运行的命令运行一个脚本。因此,我有一个 CommandListner 脚本,该脚本由 Main.java 在 onEnable 中激活,并且监听器使用参数来确定运行哪个命令并运行执行该命令的脚本。

我使用的API可以在这里找到:https://www.spigotmc.org/wiki/buildtools/ (这是1.8版本)

我已经尝试了很多方法来解决这个问题,我记得错误更严重/更大,但我已经解决了其中的一部分。但我似乎无法找到解决方案。

package net.evolvedmc.evolvedfactions.commands;

import java.awt.Color;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import net.evolvedmc.evolvedfactions.Main;

public class CommandListner implements CommandExecutor {
    
    private Main plugin;
    
    public CommandListner(Main plugin) {
        
        //Listens for the /f command
        this.plugin = plugin;
        String STRBaseCMD = "f";
        System.out.println("[EvolvedFactions] Listning for command '" + STRBaseCMD + "' with executor " + this);
        plugin.getCommand(STRBaseCMD).setExecutor(this);
        
    }
    
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        
        //Defines our player
        Player player = (Player) sender;
        
        //checks if the player has given enough arguments
        if(args.length == 0) {
            player.sendMessage(Color.RED + "Correct usage: /f <arg>");
            return false;
        }
        
        //checks if our argument is help
        if(args[0].equalsIgnoreCase("help")) {
            
            //checks if the player has the permission to execute this command
            if(player.hasPermission("evolvedfactions.default.help")) {
                
                //loads the script which executes the command
                player.sendMessage("BomPom");
                new HelpCommand(this, player);
                return true;
                
            } else {
                player.sendMessage("You do not have permission to execute this command.");
            }
            
            
        }
        
        return false;
    }

}
[23:59:56 INFO]: [EvolvedFactions] Enabling EvolvedFactions v0.1
[23:59:56 INFO]: [EvolvedFactions] Activating CommandListner script
[23:59:56 INFO]: [EvolvedFactions] Listning for command 'f' with executor net.evolvedmc.evolvedfactions.commands.CommandListner@6a47bd0b
[23:59:56 ERROR]: Error occurred while enabling EvolvedFactions v0.1 (Is it up to date?)
java.lang.NullPointerException
        at net.evolvedmc.evolvedfactions.commands.CommandListner.<init>(CommandListner.java:22) ~[?:?]
        at net.evolvedmc.evolvedfactions.Main.onEnable(Main.java:14) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[server.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [server.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [server.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356) [server.jar:git-Spigot-c3c767f-33d5de3]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316) [server.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:402) [server.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:370) [server.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:325) [server.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:211) [server.jar:git-Spigot-c3c767f-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:505) [server.jar:git-Spigot-c3c767f-33d5de3]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]

最佳答案

您忘记将命令添加到 plugin.yml 中(这会导致 getCommand("f") 返回 null):

main: ...
version: ...
name: ...

commands:
  f:

请阅读the documentation .

关于java - 尝试在我的服务器上运行脚本时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57982613/

相关文章:

java - MessageDrivenBean 两次使用 JMS 消息

ios - 如何将本地框架添加到 iOS 的 Flutter 插件中

Java Minecraft 服务器无法在 Linux 虚拟服务器机器上运行/监听 IPv4

c# - WebDavSharp 服务器。如何使用 Word 选项共享链接

使用带有数据的 Runtime.getRuntime.exec 错误的 kotlin 中的 CURL POST 请求

ssh - 通过ssh隧道连接远程IPython笔记本服务器时出错

java - JTable 单元格中的图像显示

java - java中一种产品的库存只减少?

java - 为什么在 Set/List/Map 中包装元素的方法在名称中包含 'singleton'?(java.util.Collections)

delphi - Delphi 6 中的代码语法突出显示(突出显示语法和 ifdef block )