private YAMLProcessor getUserConfiguration(String type, String commander, boolean create) { Map<String, YAMLProcessor> typeMap = getDataStore(type); YAMLProcessor processor = typeMap.get(commander); if (processor == null) { if (!migrate(commander, userFile)) { if (!create) { return null;
/** * Get a session. * * @param user The user to get a session for * @return The user's session * @deprecated see {@link #getSession(Class, org.bukkit.command.CommandSender)} with args (UserSession.class, user) */ @Deprecated public UserSession getSession(CommandSender user) { return getSession(UserSession.class, user); }
@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(); } } }
@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()); } }
public void run() { synchronized (sessions) { for (Map.Entry<Class<? extends CommandSender>, Map<String, Map<Class<? extends PersistentSession>, PersistentSession>>> parent : sessions.entrySet()) { outer: for (Iterator<Map.Entry<String, Map<Class<? extends PersistentSession>, PersistentSession>>> i = parent.getValue().entrySet().iterator(); i.hasNext(); ) { Map.Entry<String, Map<Class<? extends PersistentSession>, PersistentSession>> entry = i.next(); for (Iterator<PersistentSession> i2 = entry.getValue().values().iterator(); i2.hasNext(); ) { PersistentSession sess = i2.next(); if (sess.getOwner() != null) { continue outer; } if (!sess.isRecent()) { i2.remove(); String sender = sess.getUniqueName(); if (sender != null) { YAMLProcessor processor = getUserConfiguration(getType(parent.getKey()), sender, false); if (processor != null) { processor.removeProperty(sess.getClass().getCanonicalName().replaceAll("\\.", "/")); } } } } if (entry.getValue().size() == 0) { i.remove(); } } } } }
Map<String, Map<Class<? extends PersistentSession>, PersistentSession>> typeMap = getSessionM(user.getClass()); Map<Class<? extends PersistentSession>, PersistentSession> userSessions = typeMap.get(UUIDUtil.toUniqueString(user)); if (userSessions == null) { 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));
/** * Get sessions. * * @return Administrative sessions which currently exist * @deprecated use {@link #getSessions(Class)} with UserSession.class */ @Deprecated public Map<String, AdministrativeSession> getAdminSessions() { return getSessions(AdministrativeSession.class); }
/** * Return the sessions which currently exist for the specified user * @param user The user to get a session for * @return The sessions which currently exist for this user */ public Collection<PersistentSession> getSessions(CommandSender user) { Map<Class<? extends PersistentSession>, PersistentSession> ret = getSessionM(user.getClass()).get(UUIDUtil.toUniqueString(user)); if (ret == null) { ret = Collections.emptyMap(); } return Collections.unmodifiableCollection(ret.values()); }
private YAMLNode getSessionConfiguration(String type, String commander, Class<? extends PersistentSession> sessType) { return getSessionConfiguration(type, commander, sessType, true); }
private YAMLNode getSessionConfiguration(String type, String commander, Class<? extends PersistentSession> sessType, boolean create) { YAMLProcessor proc = getUserConfiguration(type, commander, create); if (proc == null) { return null; } String className = sessType.getCanonicalName().replaceAll("\\.", "/"); YAMLNode sessionNode = proc.getNode(className); if (sessionNode == null && create) { sessionNode = proc.addNode(className); } return sessionNode; }
public void registerComponentLoaders() { componentManager.addComponentLoader(new StaticComponentLoader(getLogger(), configDir, new SessionComponent()) { @Override public ConfigurationFile createConfigurationNode(File file) {
/** * Get sessions. * * @return UserSessions * @deprecated use {@link #getSessions(Class)} with UserSession.class */ @Deprecated public Map<String, UserSession> getSessions() { return getSessions(UserSession.class); }
/** * Add {@code session} to the sessions list for {@code user}, overwriting any sessions with the same class. * @param session The session to add * @param user The user to add the session to */ public void addSession(PersistentSession session, CommandSender user) { Map<String, Map<Class<? extends PersistentSession>, PersistentSession>> typeMap = getSessionM(user.getClass()); Map<Class<? extends PersistentSession>, PersistentSession> userSessions = typeMap.get(UUIDUtil.toUniqueString(user)); if (userSessions == null) { userSessions = new HashMap<Class<? extends PersistentSession>, PersistentSession>(); typeMap.put(UUIDUtil.toUniqueString(user), userSessions); } userSessions.put(session.getClass(), session); }
/** * Get a session. * * @param user The player to get this session for * @return The user's session * @deprecated see {@link #getSession(Class, org.bukkit.command.CommandSender)} with args (AdministrativeSession.class, user) */ @Deprecated public AdministrativeSession getAdminSession(Player user) { return getSession(AdministrativeSession.class, user); }
/** * 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(); } }
public void run() { for (final CooldownState state : sessions.getSessions(CooldownState.class).values()) { final HashSet<String> visitedCooldowns = new HashSet<String>(); for (Iterator<Map.Entry<String, Integer>> i = state.cooldownCommands.entrySet().iterator(); i.hasNext();) {
@Override public Collection<Map.Entry<String, Integer>> getActive(CommandSender sender) { return sessions.getSession(CooldownState.class, sender).cooldownCommands.entrySet(); }
@Override public void run() { for (FreezeState frozenState : sessions.getSessions(FreezeState.class).values()) { if (!frozenState.isFrozen()) { continue; } Player player = frozenState.getOwner(); if (player == null || !player.isOnline()) { continue; } Location loc = player.getLocation(); if (loc.distanceSquared(frozenState.getFreezeLocation()) >= MOVE_THRESHOLD_SQ) { loc.setX(frozenState.getFreezeLocation().getX()); loc.setY(frozenState.getFreezeLocation().getY()); loc.setZ(frozenState.getFreezeLocation().getZ()); player.sendMessage(ChatColor.RED + "You are frozen."); player.teleport(loc); } } }
@Override public Collection<WarmupInfo> getActive(CommandSender sender) { return sessions.getSession(CooldownState.class, sender).warmupCommands.values(); }
for (final AFKSession session : sessions.getSessions(AFKSession.class).values()) {