@Subscribe
public void onCraftItem(CraftItemEvent event) {
System.out.println("Print something");
}
If the event is registered, it should print something in your console.
@Subscribe
public void onCraftItem(CraftItemEvent event) {
System.out.println("Print something");
}
If the event is registered, it should print something in your console.
Is there another way to check, if the event is registered?
I’m pretty sure, it is, because I did it exact like I did it with my other events…
Show me your main class.
package me.Hitzk0pf.CaveAccounts;
import java.io.File;
import java.io.IOException;
import me.Hitzk0pf.CaveAccounts.commands.AccountCommand;
import me.Hitzk0pf.CaveAccounts.commands.HomeCommand;
import me.Hitzk0pf.CaveAccounts.commands.KontoCommand;
import me.Hitzk0pf.CaveAccounts.listeners.BlockBreak;
import me.Hitzk0pf.CaveAccounts.listeners.BlockPlace;
import me.Hitzk0pf.CaveAccounts.listeners.CraftItem;
import me.Hitzk0pf.CaveAccounts.listeners.PlayerJoin;
import me.Hitzk0pf.CaveAccounts.obj.tools.ConfigurationManager;
import me.Hitzk0pf.CaveAccounts.obj.tools.HomeManager;
import me.Hitzk0pf.CaveAccounts.obj.tools.JobManager;
import me.Hitzk0pf.CaveAccounts.obj.tools.UserManager;
import ninja.leaping.configurate.ConfigurationNode;
import org.slf4j.Logger;
import org.spongepowered.api.Game;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.event.Subscribe;
import org.spongepowered.api.event.inventory.CraftItemEvent;
import org.spongepowered.api.event.state.InitializationEvent;
import org.spongepowered.api.plugin.Plugin;
import org.spongepowered.api.service.sql.SqlService;
import com.google.common.base.Optional;
import com.google.inject.Inject;
import org.spongepowered.api.text.Texts;
import org.spongepowered.api.text.format.TextColors;
import org.spongepowered.api.text.format.TextStyles;
@Plugin(id = "CaveAccounts", name = "CaveAccounts", version = "0.0.1")
public class Main {
@Inject
private Logger logger;
@Inject
private Game game;
private AccountCommand AccountCommand;
private HomeCommand HomeCommand;
private KontoCommand KontoCommand;
private static String group = "";
private static String hostname = "";
private static String port = "";
private static String database = "";
private static String username = "";
private static String password = "";
private static String moneyName = "";
private static int privateHomeTeleportCost;
private static int publicHomeTeleportCost;
private static int HomeSetCost;
private static int JobCacheMoney;
private static int JobCashCount;
private static UserManager userManager;
private static HomeManager homeManager;
private static JobManager jobManager;
public Game getGame(InitializationEvent event) {
return event.getGame();
}
@Subscribe
public void onInit(InitializationEvent event) {
this.AccountCommand = new AccountCommand(logger, this.game);
this.HomeCommand = new HomeCommand(logger, this.game);
this.KontoCommand = new KontoCommand(logger, this.game);
}
public Game getGame() {
return this.game;
}
@Subscribe
public void onServerInitialize(InitializationEvent event) {
//create config
createFiles();
configurationDefaults();
loadOptions();
//call managers
Optional<SqlService> sqlServiceOptional = event.getGame().getServiceManager().provide(SqlService.class);
userManager = new UserManager(hostname, port, database, username, password, logger, sqlServiceOptional.get());
homeManager = new HomeManager(hostname, port, database, username, password, logger, sqlServiceOptional.get());
jobManager = new JobManager(hostname, port, database, username, password, logger, sqlServiceOptional.get());
logger.info("CaveAccounts by Hitzk0pf initializing!");
//listeners
event.getGame().getEventManager().register(this, new PlayerJoin(logger));
event.getGame().getEventManager().register(this, new BlockBreak(logger, userManager, jobManager));
event.getGame().getEventManager().register(this, new BlockPlace(logger, userManager, jobManager));
event.getGame().getEventManager().register(this, new CraftItem(logger, userManager, jobManager));
event.getGame().getCommandDispatcher().register(this, new AccountCommand(logger, getGame()), "account");
event.getGame().getCommandDispatcher().register(this, new HomeCommand(logger, getGame()), "home");
event.getGame().getCommandDispatcher().register(this, new KontoCommand(logger, getGame()), "konto");
//logger.info("MySQL Storage Enabled...");
}
/*
@Subscribe
public void onServerStart(ServerStartedEvent event) {
//logger.info("CaveAccounts by Hitzk0pf enabled: ");
}
*/
private void createFiles() {
//Create EconomyLite folder if doesn't exist
File folder = new File("config/CaveAccounts");
try {
if (!folder.exists()) {
logger.info("Erstelle Ordner");
if (folder.mkdir()) {
logger.info("Ordner wurde erstellt");
} else {
logger.warn("Ordner konnte nicht erstellt werden");
}
}
} catch (Exception e) {
logger.warn("Ordner konnte nicht erstellt werden:");
logger.warn(e.getMessage());
logger.warn("ENDE DES ERRORS");
}
//Configuration file
File conf = new File("config/CaveAccounts/config.conf");
if (!conf.exists()) {
logger.info("Config-Datei nicht gefunden...");
try {
conf.createNewFile();
logger.info("Config-Datei wurde erstellt!");
} catch (IOException e) {
logger.error("Config-Datei konnte nicht erstellt werden.");
e.printStackTrace();
}
}
}
private void configurationDefaults() {
//Check if file contains configuration options
ConfigurationManager manager = new ConfigurationManager(logger);
ConfigurationNode root = manager.getFile();
if (root != null) {
//Check all MySQL child nodes
if (!root.getNode("MySQL").getChildrenMap().containsKey("hostname")) {
root.getNode("MySQL").getNode("hostname").setValue("localhost");
}
if (!root.getNode("MySQL").getChildrenMap().containsKey("port")) {
root.getNode("MySQL").getNode("port").setValue("3306");
}
if (!root.getNode("MySQL").getChildrenMap().containsKey("database")) {
root.getNode("MySQL").getNode("database").setValue("thecave");
}
if (!root.getNode("MySQL").getChildrenMap().containsKey("username")) {
root.getNode("MySQL").getNode("username").setValue("root");
}
if (!root.getNode("MySQL").getChildrenMap().containsKey("password")) {
root.getNode("MySQL").getNode("password").setValue("");
}
if (!root.getChildrenMap().containsKey("Promote-Group")) {
root.getNode("Promote-Group").setValue("Spieler");
}
if (!root.getChildrenMap().containsKey("Currency-Name")) {
root.getNode("Currency-Name").setValue("Pfund");
}
//home costs
if (!root.getChildrenMap().containsKey("Home-Add-Cost")) {
root.getNode("Home-Add-Cost").setValue("0");
}
if (!root.getChildrenMap().containsKey("Home-Teleport-Private-Cost")) {
root.getNode("Home-Teleport-Private-Cost").setValue("1");
}
if (!root.getChildrenMap().containsKey("Home-Teleport-Public-Cost")) {
root.getNode("Home-Teleport-Public-Cost").setValue("1");
}
//jobs
if (!root.getChildrenMap().containsKey("Block-Count-Money")) {
root.getNode("Block-Count-Money").setValue("32");
}
if (!root.getChildrenMap().containsKey("Cache-Money")) {
root.getNode("Cache-Money").setValue("5");
}
manager.saveFile(root);
}
}
private void loadOptions() {
logger.info("Loading configuration options into memory...");
ConfigurationManager manager = new ConfigurationManager(logger);
ConfigurationNode root = manager.getFile();
if (root != null) {
if (root.getChildrenMap().containsKey("MySQL")) {
if (root.getNode("MySQL").getChildrenMap().containsKey("hostname")) {
hostname = root.getNode("MySQL").getNode("hostname").getString();
}
if (root.getNode("MySQL").getChildrenMap().containsKey("port")) {
port = root.getNode("MySQL").getNode("port").getString();
}
if (root.getNode("MySQL").getChildrenMap().containsKey("database")) {
database = root.getNode("MySQL").getNode("database").getString();
}
if (root.getNode("MySQL").getChildrenMap().containsKey("username")) {
username = root.getNode("MySQL").getNode("username").getString();
}
if (root.getNode("MySQL").getChildrenMap().containsKey("password")) {
password = root.getNode("MySQL").getNode("password").getString();
}
}
if (root.getChildrenMap().containsKey("Promote-Group")) {
group = root.getNode("Promote-Group").getString();
}
if (root.getChildrenMap().containsKey("Currency-Name")) {
moneyName = root.getNode("Currency-Name").getString();
}
//home
if (root.getChildrenMap().containsKey("Home-Add-Cost")) {
HomeSetCost = root.getNode("Home-Add-Cost").getInt();
}
if (root.getChildrenMap().containsKey("Home-Teleport-Private-Cost")) {
privateHomeTeleportCost = root.getNode("Home-Teleport-Private-Cost").getInt();
}
if (root.getChildrenMap().containsKey("Home-Teleport-Public-Cost")) {
publicHomeTeleportCost = root.getNode("Home-Teleport-Public-Cost").getInt();
}
//jobs
if (root.getChildrenMap().containsKey("Block-Count-Money")) {
JobCashCount = root.getNode("Block-Count-Money").getInt();
}
if (root.getChildrenMap().containsKey("Cache-Money")) {
JobCacheMoney = root.getNode("Cache-Money").getInt();
}
}
}
public static UserManager getUserManager() {
return userManager;
}
public static HomeManager getHomeManager() {
return homeManager;
}
public static JobManager getjobManager() {
return jobManager;
}
public static String getGroup() {
return group;
}
public static String getMoneyName() {
return moneyName;
}
//home
public static int getHomeSetCost() {
return HomeSetCost;
}
public static int getPrivateHomeTeleportCost() {
return privateHomeTeleportCost;
}
public static int getPublicHomeTeleportCost() {
return publicHomeTeleportCost;
}
//jobs
public static int getJobCashCount() {
return JobCashCount;
}
public static int getJobCacheMoney() {
return JobCacheMoney;
}
}
May be the event is not supported. I don’t know.
Here is a list of all implemented events: https://github.com/SpongePowered/SpongeCommon/issues/41
I don’t know if the list is up to date, but It seems like none of the inventory events are currently fired.
That might be due to the missing inventory api. Afaik the API itself is done, but implementation is still missing.
EDIT: However i’m not 100% sure.
How much time will it take to implement the Inventory API?