java - Minecraft 1.8.9 中的 Modded 命令在多人游戏服务器中不存在

标签 java minecraft minecraft-forge

我正在为 1.8.9 开发一些我的世界模组。 我试图创建的是简单地向发件人发送消息的命令。

这是命令类和主类的代码

命令类:

package happyandjust.happymod.commands;

import java.util.HashMap;
import java.util.List;

import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;

public class Command extends CommandBase {

    private HashMap<String, String> collection = new HashMap<String, String>();

    @Override
    public String getCommandName() {
        return "collection";
    }

    @Override
    public String getCommandUsage(ICommandSender sender) {
        return "collection <enchant name>";
    }

    @Override
    public void processCommand(ICommandSender sender, String[] args) throws CommandException {

        collection.put("harvesting", "Wheat Collection Level 2");
        collection.put("cubism", "Pumpkin Collection Level 5");

        if (args.length < 1) {
            sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /collection [Enchant Name]"));
            return;
        }

        if (args.length == 1) {
            String enchant_name = args[0].toLowerCase();
            String collec = collection.get(enchant_name);
            if (collec == null) {
                sender.addChatMessage(new ChatComponentText(
                        EnumChatFormatting.RED + enchant_name.toUpperCase() + " is not valid Enchant Name"));
                return;
            }
            sender.addChatMessage(new ChatComponentText(
                    EnumChatFormatting.GREEN + enchant_name.toUpperCase() + " is at " + collection.get(enchant_name)));
        }

    }

    @Override
    public boolean canCommandSenderUseCommand(ICommandSender sender) {
        return true;

    }

}

主类:

package happyandjust.happymod.main;

import happyandjust.happymod.commands.Command;
import happyandjust.happymod.proxy.CommonProxy;
import happyandjust.happymod.util.Reference;
import net.minecraftforge.client.ClientCommandHandler;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.ModContainer;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;

@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION)

public class HappyMod {

    @Instance
    public static HappyMod instance;

    @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS)
    public static CommonProxy proxy;

    @EventHandler
    public static void preInit(FMLPostInitializationEvent e) {
    }

    @EventHandler
    public static void init(FMLInitializationEvent e) {
        ClientCommandHandler.instance.registerCommand(new Command());
    }

    @EventHandler
    public static void postInit(FMLPostInitializationEvent e) {

    }

}

它在单人游戏中运行良好,但如果我像 hypixel 这样的多人游戏服务器。 它说“未知命令”

我不知道该怎么做

有人可以帮我在多人服务器中使用这个命令吗?

最佳答案

您需要覆盖 getRequiredPermissionLevel()方法来自CommandBase让它在多人游戏中运行。

@Override
public int getRequiredPermissionLevel() {
    return 0;
}

关于java - Minecraft 1.8.9 中的 Modded 命令在多人游戏服务器中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62243223/

相关文章:

java - 复杂的重构

lua - 我如何才能获取目标协程中的协程名称?

java - blockstate [state] 的 varian [block] 的异常加载模型 MissingVariantException

java - 尝试检测玩家在我的 Minecraft mod 的库存中是否有特定元素

java - 使用 JNA native 等待调用检测线程中断 (Windows)

java - 如何在 Spring 4 上参数化数据源属性?

java - 无法在 Java MIDI 程序中更改乐器,InvalidMidiDataException :channel out of range

java - 在需要构造函数参数的类中使用方法(Bukkit 插件)

java - Minecraft 客户端无法从 Eclipse 运行

Python urllib2 登录 minecraft.net