CraftItemEvent- use event.getUser()?

@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. :wink:

How much time will it take to implement the Inventory API?