다른 질문이 있지만이 경우에 도움이되는 것은 없습니다.생성자 Commands()가 정의되지 않았습니다. Java/SpigotMC
The constructor Commands() is undefined
어떤 도움 :
그래서 기본적으로
getCommand("minealchemy").setExecutor(new Commands());
를 말한다 라인에 나는이 오류가?
메인 클래스 : 내가 명령에 대한() ... 명령 (널)의 "널 (null)"를 넣을 때 ... 그때는 NullPointerException 오류가 ...
여기에 내 모든 클래스는
package me.zachbears27;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import me.zachbears27.utils.Commands;
public class Main extends JavaPlugin implements Listener {
@Override
public void onDisable() {
}
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
registerConfig();
getCommand("minealchemy").setExecutor(new Commands());
}
public void registerConfig() {
saveDefaultConfig();
}
}
명령 클래스 :
package me.zachbears27.utils;
import java.io.File;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import me.zachbears27.utils.Methods;
import net.md_5.bungee.api.ChatColor;
public class Commands implements CommandExecutor {
private final Methods methods;
public Commands(Methods methods) {
this.methods = methods;
}
public boolean onCommand(CommandSender sender, Command label, String cmd, String[] args) {
Player p = (Player) sender;
if (cmd.equalsIgnoreCase("minealchemy")) {
if(args.length > 0) {
//Get File
File file = methods.getPlayerFile(p.getUniqueId());
FileConfiguration fileSettings = YamlConfiguration.loadConfiguration(file);
//Make Sure It's False
fileSettings.set("Enabled", false);
//Save Inventory
methods.savePlayerInv(p.getUniqueId(), p.getInventory().getContents());
//Clear It
p.getInventory().clear();
//Put In God Mode
p.setInvulnerable(true);
//Open Inventory
p.openWorkbench(p.getLocation(), true);
} else {
p.sendMessage(ChatColor.RED + "Incorrect Arguments... Please use \"start\" or \"list\".");
}
}
return true;
}
}
방법 클래스 :
package me.zachbears27.utils;
import java.io.File;
import java.util.ArrayList;
import java.util.UUID;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.inventory.ItemStack;
import me.zachbears27.Main;
import net.md_5.bungee.api.ChatColor;
public class Methods {
private final Main plugin;
public Methods(Main plugin) {
this.plugin = plugin;
}
public ArrayList<String> getAllItems() {
ArrayList<String> allItems = new ArrayList<String>();
//Basics
String Air = ChatColor.GREEN + "Air" + ChatColor.RESET;
String Earth = ChatColor.GREEN + "Earth" + ChatColor.RESET;
String Fire = ChatColor.GREEN + "Fire" + ChatColor.RESET;
String Metal = ChatColor.GREEN + "Metal" + ChatColor.RESET;
String Water = ChatColor.GREEN + "Water" + ChatColor.RESET;
String Motion = ChatColor.GREEN + "Motion" + ChatColor.RESET;
String Big = ChatColor.GREEN + "Big" + ChatColor.RESET;
String Time = ChatColor.GREEN + "Time" + ChatColor.RESET;
String Small = ChatColor.GREEN + "Small" + ChatColor.RESET;
allItems.add(Air);
allItems.add(Earth);
allItems.add(Fire);
allItems.add(Metal);
allItems.add(Water);
allItems.add(Motion);
allItems.add(Big);
allItems.add(Time);
allItems.add(Small);
//Animals
String Cat = ChatColor.GOLD + "Cat" + ChatColor.RESET;
allItems.add(Cat);
return allItems;
}
public String addItems(String item1, String item2) {
String returnStatement = ChatColor.RED + "X";
if(item1.equals("Air") && item2.equals("Fire")) {
returnStatement = "Mist";
}
return returnStatement;
}
public File getPlayerFile(UUID playerUUID) {
//Creates The Player File
File playerFile = new File (plugin.getDataFolder() + File.separator + "Player Data", playerUUID + ".yml");
return playerFile;
}
public void savePlayerInv(UUID playerUUID, ItemStack[] inv) {
File playerFile = getPlayerFile(playerUUID);
FileConfiguration playerData = YamlConfiguration.loadConfiguration(playerFile);
playerData.set("SavedInventory", inv);
}
}
를 사용하여 새로운'새 명령 (새로운 방법 (이))'대신에 onEnable() 함수에서
.setExecutor(new Commands())
에게. 여기서'this'는'Main extends JavaPlugin'입니다. – i0xHeX아 ... 굉장해! 작동하는 것 같습니다! 감사합니다 –