前提・実現したいこと
JAVAの知識はほぼ皆無の初心者です。(Node-REDを少し使っていた程度)
Spigotのプラグインを作っているのですが、1つのファイルにダラダラ書くのではなく
複数のファイルに分割したいと思い挑戦しているのですが、全くやり方がわかりません。(特に戻り値周り)
RangeMining.java(今まで作成していたメインのファイル)
public final class RangeMining extends JavaPlugin implements Listener { mining_range = 0; @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ // test コマンドの処理 if(cmd.getName().equalsIgnoreCase("rm")){ if(args[0].equalsIgnoreCase("normal")) { mining_range = 0; sender.sendMessage(ChatColor.GREEN + "通常の採掘範囲です"); getLogger().info("normal"); return true; } if(args[0].equalsIgnoreCase("small")) { mining_range = 1; sender.sendMessage(ChatColor.GREEN + "3*3範囲を採掘します"); getLogger().info("small"); return true; } if(args[0].equalsIgnoreCase("medium")) { mining_range = 2; sender.sendMessage(ChatColor.GREEN + "5*5範囲を採掘します"); getLogger().info("medium"); return true; } if(args[0].equalsIgnoreCase("large")) { mining_range = 9; sender.sendMessage(ChatColor.GREEN + "10*10範囲を採掘します"); getLogger().info("large"); return true; } } return false; } }
試したこと、cmmand.java(分割先ファイル)
とりあえず新しいjavaファイルを作成してメインからコピペ、「public boolean」→「public int」に変更
適当な場所で「int mining_range = 0;」を宣言してIF文の最後を「return mining_range;」に変更してみました。
この場合 戻り値としては「int型のmining_range」であっていますか?
package epi.rangemining; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; public class cmmand { public static int cmmand_check() { int mining_range = new onCommand(); } public int onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ // test コマンドの処理 int mining_range = 0; if(cmd.getName().equalsIgnoreCase("rm")){ if(args[0].equalsIgnoreCase("normal")) { mining_range = 0; sender.sendMessage(ChatColor.GREEN + "通常の採掘範囲です"); return mining_range; } if(args[0].equalsIgnoreCase("small")) { mining_range = 1; sender.sendMessage(ChatColor.GREEN + "3*3範囲を採掘します"); return mining_range; } if(args[0].equalsIgnoreCase("medium")) { mining_range = 2; sender.sendMessage(ChatColor.GREEN + "5*5範囲を採掘します"); return mining_range; } if(args[0].equalsIgnoreCase("large")) { mining_range = 9; sender.sendMessage(ChatColor.GREEN + "10*10範囲を採掘します"); return mining_range; } } return mining_range; } }
####一番困っている事
上のコードがあっているとして、「return mining_range」の値をメインの「RangeMining.java」で受け取る方法。
手探りで作ってみたコード
mining_range = 0; @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ // test コマンドの処理 mining_range = cmmand.cmmand_check(); return false; }
IDEで「'cmmand' のメソッド 'cmmand_check' を解決できません」
「'cmmand' のメソッド 'cmmand_check'を作成」となり
これをクリックするとcmmand.javaに新たに
public static int cmmand_check() { }
が作成されてしまいます。
補足情報(FW/ツールのバージョンなど)
ツール:IntelliJ IDEA Community Edition 2021.1.2
JAVA16(?)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/16 20:07