49 std::span<ChatCommandBuilder const>
GetCommands()
const override
62 {
"instance", instanceCommandTable },
78 MapDb2Entries entries{ instanceLock->GetMapId(), instanceLock->GetDifficultyId() };
79 std::string timeleft = !instanceLock->IsExpired() ?
secsToTimeString(std::chrono::duration_cast<Seconds>(instanceLock->GetEffectiveExpiryTime() - now).count()) :
"-";
81 entries.Map->ID, entries.Map->MapName[
sWorld->GetDefaultDbcLocale()],
83 instanceLock->GetInstanceId(),
102 if (mapArg.holds_alternative<
uint32>())
103 mapId = mapArg.get<
uint32>();
108 std::vector<InstanceLock const*> locksReset;
109 std::vector<InstanceLock const*> locksNotReset;
111 sInstanceLockMgr.ResetInstanceLocksForPlayer(player->
GetGUID(), mapId, difficulty, &locksReset, &locksNotReset);
116 MapDb2Entries entries{ instanceLock->GetMapId(), instanceLock->GetDifficultyId() };
117 std::string timeleft = !instanceLock->IsExpired() ?
secsToTimeString(std::chrono::duration_cast<Seconds>(instanceLock->GetEffectiveExpiryTime() - now).count()) :
"-";
119 entries.Map->ID, entries.Map->MapName[
sWorld->GetDefaultDbcLocale()],
121 instanceLock->GetInstanceId(),
131 MapDb2Entries entries{ instanceLock->GetMapId(), instanceLock->GetDifficultyId() };
132 std::string timeleft = !instanceLock->IsExpired() ?
secsToTimeString(std::chrono::duration_cast<Seconds>(instanceLock->GetEffectiveExpiryTime() - now).count()) :
"-";
134 entries.Map->ID, entries.Map->MapName[
sWorld->GetDefaultDbcLocale()],
136 instanceLock->GetInstanceId(),
173 if (!player->IsConnected())
221 if (!player->IsConnected())
DB2Storage< DifficultyEntry > sDifficultyStore("Difficulty.db2", &DifficultyLoadInfo::Instance)
std::chrono::system_clock::time_point InstanceResetTimePoint
@ LANG_COMMAND_INST_SET_BOSS_STATE
@ LANG_COMMAND_INST_GET_BOSS_STATE
@ LANG_COMMAND_LIST_BIND_PLAYER_BINDS
@ LANG_COMMAND_INST_STAT_SAVES
@ LANG_COMMAND_LIST_BIND_INFO
@ LANG_COMMAND_INST_STAT_PLAYERSBOUND
@ LANG_COMMAND_INST_UNBIND_UNBOUND
@ LANG_COMMAND_INST_STAT_PLAYERS_IN
@ LANG_COMMAND_INST_UNBIND_FAILED
@ LANG_COMMAND_INST_UNBIND_UNBINDING
@ LANG_COMMAND_INST_STAT_LOADED_INST
std::optional< T > Optional
Optional helper class to wrap optional values within.
Role Based Access Control related classes definition.
std::string secsToTimeString(uint64 timeInSecs, TimeFormat timeFormat, bool hoursOnly)
ObjectGuid const & GetGUID() const
Player * getSelectedPlayer()
WorldSession * GetSession()
void SetSentErrorMessage(bool val)
void PSendSysMessage(char const *fmt, Args &&... args)
virtual char const * GetTrinityString(uint32 entry) const
static std::string_view GetDifficultyName(Difficulty difficulty)
static char const * ToConstant(Enum value)
InstanceScript * GetInstanceScript()
virtual bool SetBossState(uint32 id, EncounterState state)
EncounterState GetBossState(uint32 id) const
uint32 GetEncounterCount() const
InstanceMap * ToInstanceMap()
Player * GetPlayer() const
static bool HandleInstanceUnbindCommand(ChatHandler *handler, Variant< uint32, EXACT_SEQUENCE("all")> mapArg, Optional< uint32 > difficultyArg)
static bool HandleInstanceGetBossStateCommand(ChatHandler *handler, uint32 encounterId, Optional< PlayerIdentifier > player)
static bool HandleInstanceSetBossStateCommand(ChatHandler *handler, uint32 encounterId, EncounterState state, Optional< PlayerIdentifier > player)
static bool HandleInstanceStatsCommand(ChatHandler *handler)
static bool HandleInstanceListBindsCommand(ChatHandler *handler)
std::span< ChatCommandBuilder const > GetCommands() const override
void AddSC_instance_commandscript()
ChatCommandBuilder const [] ChatCommandTable
@ RBAC_PERM_COMMAND_INSTANCE_LISTBINDS
@ RBAC_PERM_COMMAND_INSTANCE_SET_BOSS_STATE
@ RBAC_PERM_COMMAND_INSTANCE_GET_BOSS_STATE
@ RBAC_PERM_COMMAND_INSTANCE_STATS
@ RBAC_PERM_COMMAND_INSTANCE_UNBIND
static Optional< PlayerIdentifier > FromSelf(ChatHandler *handler)