2017-09-09 9 views
0

私はICommandを実装し、ServerStartingイベントに登録したクラスを作成しました。私がMinecraftでコマンドを実行しようとすると、私は許可エラーを受け取りません。Forge 1.12.1の私のカスタムコマンドが動作しません

List aliases; 

public CMinecraftStoryMod() { 
    aliases = new ArrayList(); 
    aliases.add("msm"); 
} 

@Override 
public String getName() { 
    return "minecraftstorymod"; 
} 

@Override 
public String getUsage(ICommandSender sender) { 
    if (sender.getEntityWorld().isRemote) { 
     return "/minecraftstorymod"; 
    } else { 
     return "/minecraftstorymod"; 
    } 
} 

@Override 
public List<String> getAliases() { 
    return aliases; 
} 

@Override 
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { 
    if (!MinecraftStoryMod.gameInProgress) { 
     MinecraftStoryMod.gameInProgress = true; 

     if (sender.getEntityWorld().isRemote) { 
      sender.sendMessage(new TextComponentString("[CMinecraftStoryMod] Attempting to start game in a multiplayer world...")); 
      sender.sendMessage(new TextComponentString("[CMinecraftStoryMod] Checking out the number of players in this world...")); 
      if (server.getPlayerList().getCurrentPlayerCount() > 0) { 
       sender.sendMessage(new TextComponentString("[CMinecraftStoryMod] There are " + server.getPlayerList().getCurrentPlayerCount() + " players in the server! Generating fun...")); 
       MinecraftStoryMod.gameHandler.startGame(server.getPlayerList()); 
      } else { 
       sender.sendMessage(new TextComponentString("[CMinecraftStoryMod] The server has 0 players!")); 
       MinecraftStoryMod.gameInProgress = false; 
       return; 
      } 
     } else { 
      sender.sendMessage(new TextComponentString("[CMinecraftStoryMod] Singleplayer mode for this mod is still under construction. We're sowwy :)")); 
      return; 
     } 
    } else { 
     sender.sendMessage(new TextComponentString("[CMinecraftStoryMod] Another game is in progress! Wait for it ._.")); 
    } 
} 

@Override 
public boolean checkPermission(MinecraftServer server, ICommandSender sender) { 
    return false; 
} 

@Override 
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos) { 
    return null; 
} 

@Override 
public boolean isUsernameIndex(String[] args, int index) { 
    return false; 
} 

@Override 
public int compareTo(ICommand o) { 
    return 0; 
} 

私はゲーム内で/ minecraftstorymodを入力することができますので、私はきちんと私のコマンドを登録して知っている:ここに私のICommandの実装クラスです。私はForgeを使用しています。1.12.1 14.22.0.2469

答えて

1

checkPermissionメソッドからは常にfalseが返されます。つまり、誰もコマンドを実行する権限がありません。送信者に応じて誰かがコマンドを実行したり、別の値を返すことができるようにしたい場合は、常にtrueを返すことができます。

+0

プレイヤーがOpであるか、許可ノードを持っているかを確認する方法はありますか? –

+0

ICommandSender.canUseCommandは、Opsの権限レベル4とコマンド名で使用します。どのような許可システムについて話していますか? MinecraftとForgeのどちらも内蔵していません。 – Shadowfacts

関連する問題