private YAMLNode getSessionConfiguration(String type, String commander, Class<? extends PersistentSession> sessType) { return getSessionConfiguration(type, commander, sessType, true); }
session = getSessionFactory(type).createSession(user); if (session != null) { YAMLNode node = getSessionConfiguration(getType(user.getClass()), UUIDUtil.toUniqueString(user), type, false); if (node != null) { session.load(new YAMLNodeConfigurationNode(node));
@EventHandler(priority = EventPriority.LOWEST) public void onLogin(PlayerLoginEvent event) { Player player = event.getPlayer(); String type = getType(player.getClass()); // Trigger the session for (PersistentSession session : getSessions(player)) { session.load(new YAMLNodeConfigurationNode(getSessionConfiguration(type, UUIDUtil.toUniqueString(player), session.getClass()))); session.handleReconnect(event.getPlayer()); } }
@Override public void disable() { for (Player player : CommandBook.server().getOnlinePlayers()) { String type = getType(player.getClass()); for (PersistentSession session : getSessions(player)) { session.handleDisconnect(); session.save(new YAMLNodeConfigurationNode(getSessionConfiguration(type, UUIDUtil.toUniqueString(player), session.getClass()))); } YAMLProcessor proc = getUserConfiguration(type, UUIDUtil.toUniqueString(player), false); if (proc != null) { proc.save(); } } }
/** * Called on player disconnect. * * @param event Relevant event details */ @EventHandler(priority = EventPriority.MONITOR) public void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); String type = getType(player.getClass()); for (PersistentSession session : getSessions(event.getPlayer())) { session.handleDisconnect(); session.save(new YAMLNodeConfigurationNode(getSessionConfiguration(type, UUIDUtil.toUniqueString(player), session.getClass()))); } YAMLProcessor proc = getUserConfiguration(type, UUIDUtil.toUniqueString(player), false); if (proc != null) { proc.save(); } }