mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
[Commands] Cleanup #time and #timezone Command. (#2147)
* [Commands] Cleanup #time and #timezone Command. - Cleanup messages and logic. * Cleanup.
This commit is contained in:
parent
ccb316b11b
commit
dca34cc2ff
@ -357,9 +357,9 @@ int command_init(void)
|
||||
command_add("tempname", "[newname] - Temporarily renames your target. Leave name blank to restore the original name.", AccountStatus::GMAdmin, command_tempname) ||
|
||||
command_add("petname", "[newname] - Temporarily renames your pet. Leave name blank to restore the original name.", AccountStatus::GMAdmin, command_petname) ||
|
||||
command_add("texture", "[Texture] [Helmet Texture] - Change your or your target's texture (Helmet Texture defaults to 0 if not used)", AccountStatus::Steward, command_texture) ||
|
||||
command_add("time", "[HH] [MM] - Set EQ time", AccountStatus::EQSupport, command_time) ||
|
||||
command_add("time", "[Hour] [Minute] - Set world time to specified time", AccountStatus::EQSupport, command_time) ||
|
||||
command_add("timers", "- Display persistent timers for target", AccountStatus::GMMgmt, command_timers) ||
|
||||
command_add("timezone", "[HH] [MM] - Set timezone. Minutes are optional", AccountStatus::EQSupport, command_timezone) ||
|
||||
command_add("timezone", "[Hour] [Minutes] - Set timezone (Minutes are optional)", AccountStatus::EQSupport, command_timezone) ||
|
||||
command_add("title", "[Remove|Title] [Save (0 = False, 1 = True)] - Set your or your player target's title (use remove to remove title, Save defaults to false if not used)", AccountStatus::Guide, command_title) ||
|
||||
command_add("titlesuffix", "[Remove|Title Suffix] [Save (0 = False, 1 = True)] - Set your or your player target's title suffix (use remove to remove title suffix, Save defaults to false if not used)", AccountStatus::Guide, command_titlesuffix) ||
|
||||
command_add("traindisc", "[level] - Trains all the disciplines usable by the target, up to level specified. (may freeze client for a few seconds)", AccountStatus::GMLeadAdmin, command_traindisc) ||
|
||||
|
||||
@ -2,31 +2,127 @@
|
||||
|
||||
void command_time(Client *c, const Seperator *sep)
|
||||
{
|
||||
char timeMessage[255];
|
||||
int minutes = 0;
|
||||
if (sep->IsNumber(1)) {
|
||||
if (sep->IsNumber(2)) {
|
||||
minutes = atoi(sep->arg[2]);
|
||||
}
|
||||
c->Message(Chat::Red, "Setting world time to %s:%i (Timezone: 0)...", sep->arg[1], minutes);
|
||||
zone->SetTime(atoi(sep->arg[1]) + 1, minutes);
|
||||
LogInfo("{} :: Setting world time to {}:{} (Timezone: 0)...", c->GetCleanName(), sep->arg[1], minutes);
|
||||
}
|
||||
else {
|
||||
c->Message(Chat::Red, "To set the Time: #time HH [MM]");
|
||||
TimeOfDay_Struct eqTime;
|
||||
zone->zone_time.GetCurrentEQTimeOfDay(time(0), &eqTime);
|
||||
sprintf(
|
||||
timeMessage, "%02d:%s%d %s (Timezone: %ih %im)",
|
||||
((eqTime.hour - 1) % 12) == 0 ? 12 : ((eqTime.hour - 1) % 12),
|
||||
(eqTime.minute < 10) ? "0" : "",
|
||||
eqTime.minute,
|
||||
(eqTime.hour >= 13) ? "pm" : "am",
|
||||
zone->zone_time.getEQTimeZoneHr(),
|
||||
zone->zone_time.getEQTimeZoneMin()
|
||||
int arguments = sep->argnum;
|
||||
if (!arguments || !sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #time [Hour] [Minute]");
|
||||
|
||||
TimeOfDay_Struct world_time;
|
||||
zone->zone_time.GetCurrentEQTimeOfDay(time(0), &world_time);
|
||||
|
||||
auto time_string = fmt::format(
|
||||
"{:02}:{:02} {} (Timezone: {:02}:{:02} {})",
|
||||
(
|
||||
((world_time.hour - 1) % 12) == 0 ?
|
||||
12 :
|
||||
((world_time.hour - 1) % 12)
|
||||
),
|
||||
world_time.minute,
|
||||
(
|
||||
world_time.hour >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
),
|
||||
(
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12) == 0 ?
|
||||
12 :
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12)
|
||||
),
|
||||
zone->zone_time.getEQTimeZoneMin(),
|
||||
(
|
||||
zone->zone_time.getEQTimeZoneHr() >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
)
|
||||
);
|
||||
c->Message(Chat::Red, "It is now %s.", timeMessage);
|
||||
LogInfo("Current Time is: {}", timeMessage);
|
||||
|
||||
c->Message(
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"It is currently {}.",
|
||||
time_string
|
||||
).c_str()
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 minutes = 0;
|
||||
auto hours = static_cast<uint8>(std::stoul(sep->arg[1]) + 1);
|
||||
|
||||
if (hours > 24) {
|
||||
hours = 24;
|
||||
}
|
||||
|
||||
uint8 real_hours = (
|
||||
(hours - 1) > 0 ?
|
||||
(hours - 1) :
|
||||
0
|
||||
);
|
||||
|
||||
if (sep->IsNumber(2)) {
|
||||
minutes = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
|
||||
if (minutes > 59) {
|
||||
minutes = 59;
|
||||
}
|
||||
}
|
||||
|
||||
c->Message(
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Setting world time to {:02}:{:02} {} (Timezone: {:02}:{:02} {}).",
|
||||
(
|
||||
(hours % 12) == 0 ?
|
||||
12 :
|
||||
(hours % 12)
|
||||
),
|
||||
minutes,
|
||||
(
|
||||
hours >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
),
|
||||
(
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12) == 0 ?
|
||||
12 :
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12)
|
||||
),
|
||||
zone->zone_time.getEQTimeZoneMin(),
|
||||
(
|
||||
zone->zone_time.getEQTimeZoneHr() >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
)
|
||||
).c_str()
|
||||
);
|
||||
|
||||
zone->SetTime(real_hours, minutes);
|
||||
|
||||
LogInfo(
|
||||
"{} :: Setting world time to {:02}:{:02} {} (Timezone: {:02}:{:02} {})",
|
||||
c->GetCleanName(),
|
||||
(
|
||||
(hours % 12) == 0 ?
|
||||
12 :
|
||||
(hours % 12)
|
||||
),
|
||||
minutes,
|
||||
(
|
||||
hours >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
),
|
||||
(
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12) == 0 ?
|
||||
12 :
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12)
|
||||
),
|
||||
zone->zone_time.getEQTimeZoneMin(),
|
||||
(
|
||||
zone->zone_time.getEQTimeZoneHr() >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -2,31 +2,76 @@
|
||||
|
||||
void command_timezone(Client *c, const Seperator *sep)
|
||||
{
|
||||
if (sep->arg[1][0] == 0 && !sep->IsNumber(1)) {
|
||||
c->Message(Chat::Red, "Usage: #timezone HH [MM]");
|
||||
int arguments = sep->argnum;
|
||||
if (!arguments || !sep->IsNumber(1)) {
|
||||
c->Message(Chat::White, "Usage: #timezone [Hour] [Minute]");
|
||||
c->Message(
|
||||
Chat::Red,
|
||||
"Current timezone is: %ih %im",
|
||||
zone->zone_time.getEQTimeZoneHr(),
|
||||
zone->zone_time.getEQTimeZoneMin());
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Current timezone is {:02}:{:02} {}.",
|
||||
(
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12) == 0 ?
|
||||
12 :
|
||||
((zone->zone_time.getEQTimeZoneHr() - 1) % 12)
|
||||
),
|
||||
zone->zone_time.getEQTimeZoneMin(),
|
||||
(
|
||||
zone->zone_time.getEQTimeZoneHr() >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
)
|
||||
).c_str()
|
||||
);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
uint8 hours = atoi(sep->arg[1]);
|
||||
uint8 minutes = atoi(sep->arg[2]);
|
||||
if (!sep->IsNumber(2)) {
|
||||
minutes = 0;
|
||||
}
|
||||
c->Message(Chat::Red, "Setting timezone to %i h %i m", hours, minutes);
|
||||
uint32 ntz = (hours * 60) + minutes;
|
||||
zone->zone_time.setEQTimeZone(ntz);
|
||||
content_db.SetZoneTZ(zone->GetZoneID(), zone->GetInstanceVersion(), ntz);
|
||||
|
||||
// Update all clients with new TZ.
|
||||
auto outapp = new EQApplicationPacket(OP_TimeOfDay, sizeof(TimeOfDay_Struct));
|
||||
TimeOfDay_Struct *tod = (TimeOfDay_Struct *) outapp->pBuffer;
|
||||
zone->zone_time.GetCurrentEQTimeOfDay(time(0), tod);
|
||||
entity_list.QueueClients(c, outapp);
|
||||
safe_delete(outapp);
|
||||
uint8 minutes = 0;
|
||||
auto hours = static_cast<uint8>(std::stoul(sep->arg[1]));
|
||||
|
||||
if (hours > 24) {
|
||||
hours = 24;
|
||||
}
|
||||
|
||||
uint8 real_hours = (
|
||||
(hours - 1) > 0 ?
|
||||
(hours - 1) :
|
||||
0
|
||||
);
|
||||
|
||||
if (sep->IsNumber(2)) {
|
||||
minutes = static_cast<uint8>(std::stoul(sep->arg[2]));
|
||||
|
||||
if (minutes > 59) {
|
||||
minutes = 59;
|
||||
}
|
||||
}
|
||||
|
||||
c->Message(
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Setting timezone to {:02}:{:02} {}.",
|
||||
(
|
||||
(real_hours % 12) == 0 ?
|
||||
12 :
|
||||
(real_hours % 12)
|
||||
),
|
||||
minutes,
|
||||
(
|
||||
hours >= 13 ?
|
||||
"PM" :
|
||||
"AM"
|
||||
)
|
||||
).c_str()
|
||||
);
|
||||
|
||||
uint32 new_timezone = ((hours * 60) + minutes);
|
||||
zone->zone_time.setEQTimeZone(new_timezone);
|
||||
content_db.SetZoneTZ(zone->GetZoneID(), zone->GetInstanceVersion(), new_timezone);
|
||||
|
||||
auto outapp = new EQApplicationPacket(OP_TimeOfDay, sizeof(TimeOfDay_Struct));
|
||||
TimeOfDay_Struct *tod = (TimeOfDay_Struct *) outapp->pBuffer;
|
||||
zone->zone_time.GetCurrentEQTimeOfDay(time(0), tod);
|
||||
entity_list.QueueClients(c, outapp);
|
||||
safe_delete(outapp);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user