public static void prepare() { // If there's no user to worry about, we're done now. String userName = KoLCharacter.getUserName(); if (userName == null || userName.equals("")) { return; } // If you need to allow for another login, create a login frame // to ensure that there is an active frame to display messages. if (StaticEntity.getClient() instanceof KoLmafiaGUI) { KoLmafiaGUI.constructFrame(LoginFrame.class); } // Shut down main frame if (KoLDesktop.instanceExists()) { KoLDesktop.getInstance().dispose(); } // Close down any other active frames. Since // there is at least one active, logout will // not be called again. Frame[] frames = Frame.getFrames(); for (int i = 0; i < frames.length; ++i) { if (frames[i].getClass() != LoginFrame.class) { frames[i].dispose(); } } }
public static void logout() { if (LogoutManager.isRunning) { return; } LogoutManager.isRunning = true; // If there's no user to worry about, we're done now. String userName = KoLCharacter.getUserName(); if (userName == null || userName.equals("")) { return; } if (!KoLmafia.isSessionEnding()) { LogoutManager.prepare(); } KoLmafia.updateDisplay("Preparing for logout..."); // Shut down chat-related activity BuffBotHome.setBuffBotActive(false); ChatManager.dispose(); // Run on-logout scripts String scriptSetting = Preferences.getString("logoutScript"); if (!scriptSetting.equals("")) { KoLmafia.updateDisplay("Executing logout script..."); KoLmafiaCLI.DEFAULT_SHELL.executeLine(scriptSetting); } if (Preferences.getBoolean("sharePriceData")) { KoLmafia.updateDisplay("Sharing mall price data with other users..."); KoLmafiaCLI.DEFAULT_SHELL.executeLine( "spade prices http://kolmafia.us/scripts/updateprices.php"); } // Clear out user data RequestLogger.closeSessionLog(); RequestLogger.closeMirror(); GenericRequest.reset(); KoLCharacter.reset(""); // Execute the logout request RequestThread.postRequest(new LogoutRequest()); KoLmafia.updateDisplay("Logout completed."); RequestLogger.closeDebugLog(); LogoutManager.isRunning = false; }
private void buff(boolean maxBuff) { UseSkillRequest request = (UseSkillRequest) SkillBuffFrame.this.skillSelect.getSelectedItem(); if (request == null) { return; } String buffName = request.getSkillName(); if (buffName == null) { return; } String[] targets = StaticEntity.getClient() .extractTargets((String) SkillBuffFrame.this.targetSelect.getSelectedItem()); int buffCount = !maxBuff ? InputFieldUtilities.getValue(SkillBuffFrame.this.amountField, 1) : Integer.MAX_VALUE; if (buffCount == 0) { return; } SpecialOutfit.createImplicitCheckpoint(); if (targets.length == 0) { RequestThread.postRequest( UseSkillRequest.getInstance(buffName, KoLCharacter.getUserName(), buffCount)); } else { for (int i = 0; i < targets.length && KoLmafia.permitsContinue(); ++i) { if (targets[i] != null) { RequestThread.postRequest(UseSkillRequest.getInstance(buffName, targets[i], buffCount)); } } } SpecialOutfit.restoreImplicitCheckpoint(); }