void PlayerManagementSessionImplementation::sendBanReason(bool unban) { ManagedReference<CreatureObject*> admin = this->admin.get(); if (admin == NULL || accountBox == NULL) return; Reference<PlayerObject*> ghost = admin->getPlayerObject(); if (ghost == NULL) return; if (!ghost->hasSuiBox(accountBox->getBoxID())) sendAccountInfo(); if (reasonBox == NULL) { reasonBox = new SuiInputBox(admin, SuiWindowType::ADMIN_BAN_REASON); reasonBox->setUsingObject(admin); reasonBox->setCallback(new PlayerManagementSessionSuiCallback(admin->getZoneServer())); } if (unban) { reasonBox->setPromptTitle("ENTER UNBAN REASON"); reasonBox->setPromptText("Enter the reason for unbanning"); } else { reasonBox->setPromptTitle("ENTER BAN REASON"); reasonBox->setPromptText("Enter the reason for the ban"); } ghost->addSuiBox(reasonBox); admin->sendMessage(reasonBox->generateMessage()); }
void PlayerManagementSessionImplementation::sendBanDuration() { ManagedReference<CreatureObject*> admin = this->admin.get(); if (admin == NULL || accountBox == NULL) return; Reference<PlayerObject*> ghost = admin->getPlayerObject(); if (ghost == NULL) return; if (!ghost->hasSuiBox(accountBox->getBoxID())) sendAccountInfo(); if (durationBox == NULL) { durationBox = new SuiInputBox(admin, SuiWindowType::ADMIN_BAN_DURATION); durationBox->setPromptTitle("ENTER BAN DURATION"); durationBox->setPromptText("Enter the duration of ban in years, months, days, hours, minutes\n\nEx: 1y 2m 3d 4h 5M"); durationBox->setUsingObject(admin); durationBox->setCallback(new PlayerManagementSessionSuiCallback(admin->getZoneServer())); } ghost->addSuiBox(durationBox); admin->sendMessage(durationBox->generateMessage()); }
void PlayerManagementSessionImplementation::showUnbanSummary() { ManagedReference<CreatureObject*> admin = this->admin.get(); if (admin == NULL) return; Reference<PlayerObject*> ghost = admin->getPlayerObject(); if (ghost == NULL) return; Locker alocker(targetAccount); if (unbanSummaryBox == NULL) { unbanSummaryBox = new SuiMessageBox(admin, SuiWindowType::ADMIN_UNBAN_SUMMARY); unbanSummaryBox->setOkButton(true, "@ok"); unbanSummaryBox->setCancelButton(true, "@cancel"); unbanSummaryBox->setCallback(new PlayerManagementSessionSuiCallback(admin->getZoneServer())); unbanSummaryBox->setUsingObject(admin); unbanSummaryBox->setPromptTitle("Unban Summary"); } StringBuffer summary; summary << "Unbanning "; if (banMode == ACCOUNT && targetAccount != NULL) { summary << " Account: " << targetAccount->getUsername() << endl; banExpiration = targetAccount->getBanExpires(); } else if (banMode == GALAXY && galaxyID != 0) { GalaxyBanEntry* galaxyBan = targetAccount->getGalaxyBan(galaxyID); if (galaxyBan != NULL) { banExpiration = galaxyBan->getBanExpiration(); } summary << " From " << galaxyName << " Galaxy" << endl; } else if (banMode == CHARACTER && !targetName.isEmpty()) { summary << " Character: " << targetName << endl; CharacterListEntry* entry = targetAccount->getCharacterBan(galaxyID, targetName); if (entry != NULL) { banExpiration = entry->getBanExpiration(); } } summary << getBanDuration(banExpiration) << endl; summary << "Unban Reason: "<< banReason << endl; unbanSummaryBox->setPromptText(summary.toString()); ghost->addSuiBox(unbanSummaryBox); admin->sendMessage(unbanSummaryBox->generateMessage()); }
void PlayerManagementSessionImplementation::sendAccountInfo() { ManagedReference<CreatureObject*> admin = this->admin.get(); if (admin == NULL || accountBox == NULL) return; Reference<PlayerObject*> ghost = admin->getPlayerObject(); if (ghost == NULL) return; admin->sendMessage(accountBox->generateCloseMessage()); ghost->addSuiBox(accountBox); admin->sendMessage(accountBox->generateMessage()); }
void PlayerManagementSessionImplementation::showBanSummary() { ManagedReference<CreatureObject*> admin = this->admin.get(); if (admin == NULL) return; Reference<PlayerObject*> ghost = admin->getPlayerObject(); if (ghost == NULL) return; Locker alocker(targetAccount); if (summaryBox == NULL) { summaryBox = new SuiListBox(admin, SuiWindowType::ADMIN_BAN_SUMMARY); summaryBox->setOkButton(true, "@ok"); summaryBox->setCancelButton(true, "@cancel"); summaryBox->setCallback(new PlayerManagementSessionSuiCallback(admin->getZoneServer())); summaryBox->setUsingObject(admin); summaryBox->setPromptTitle("Ban Summary"); summaryBox->addMenuItem("Change Duration", 0); summaryBox->addMenuItem("Change Reason", 0); summaryBox->addMenuItem("\\#FF0000Complete Ban", 0); } StringBuffer summary; summary << "Banning "; if (banMode == ACCOUNT && targetAccount != NULL) summary << " Account: " << targetAccount->getUsername() << endl; else if (banMode == GALAXY && galaxyID != 0) summary << " From " << galaxyName << " Galaxy" << endl; else if (banMode == CHARACTER && !targetName.isEmpty()) summary << " Character: " << targetName << endl; summary << getBanDuration(banExpiration) << endl; summary << "Ban Reason: "<< banReason << endl; summaryBox->setPromptText(summary.toString()); ghost->addSuiBox(summaryBox); admin->sendMessage(summaryBox->generateMessage()); }
void CampTerminalMenuComponent::showCampStatus(SceneObject* sceneObject, CreatureObject* player) const { Terminal* terminal = cast<Terminal*>(sceneObject); if(terminal == NULL) { error("Terminal is null in CampTerminalMenuComponent::showCampStatus"); return; } if (!player->isInRange(terminal, 16)) { return; } StructureObject* camp = cast<StructureObject*>(terminal->getControlledObject()); if(camp == NULL) { error("Camp is null in CampTerminalMenuComponent::showCampStatus"); return; } // Get Camp Area SortedVector<ManagedReference<ActiveArea* > >* areas = camp->getActiveAreas(); ManagedReference<ActiveArea*> area = NULL; for(int i = 0; i < areas->size(); ++i) { area = areas->get(i); if(area->isCampArea()) { break; } area = NULL; } if(area == NULL) { Reference<StructureManager*> structureManager = StructureManager::instance(); if (structureManager == NULL) { error("Unable to get StructureManager in CampTerminalMenuComponent::showCampStatus"); return; } structureManager->destroyStructure(camp); player->sendSystemMessage("This camp is broken, removing from world. Thanks!"); error("CampSiteActiveArea is null in CampTerminalMenuComponent::showCampStatus"); return; } CampSiteActiveArea* campArea = cast<CampSiteActiveArea*>(area.get()); if(campArea == NULL) { error("How the f**k did this happen"); return; } /// Get Ghost Reference<PlayerObject*> ghost = player->getSlottedObject("ghost").castTo<PlayerObject*>(); if (ghost == NULL) { error("PlayerCreature has no ghost in CampTerminalMenuComponent::showCampStatus: " + String::valueOf(player->getObjectID())); return; } ManagedReference<SuiListBox*> suiBox = new SuiListBox(player, SuiWindowType::CAMP_STATUS); suiBox->setPromptTitle("@camp:mnu_status"); suiBox->setUsingObject(terminal); suiBox->setPromptText(terminal->getDisplayedName()); StringBuffer owner, time, visitors; owner << "Owner: " << campArea->getOwner()->getFirstName() << " " << camp->getOwnerCreatureObject()->getLastName() << endl; suiBox->addMenuItem(owner.toString()); time << "Time: " << (campArea->getUptime() / 60) << " minutes, "<< (campArea->getUptime() % 60) << "seconds"; suiBox->addMenuItem(time.toString()); visitors << "Visitors: " << campArea->getVisitorCount() << endl; suiBox->addMenuItem(visitors.toString()); ghost->addSuiBox(suiBox); player->sendMessage(suiBox->generateMessage()); }