Revert "feat(core): Ensure that all actions are compared to fixed point in time (#1236) (#1458)" (#1471)

This reverts commit 51b8773528.
This commit is contained in:
Nefertumm
2019-02-15 15:14:49 -03:00
committed by GitHub
parent 23e7ae6a2f
commit c15206fc15
108 changed files with 509 additions and 933 deletions

View File

@@ -7,7 +7,6 @@
#include "ChannelMgr.h"
#include "Chat.h"
#include "ObjectMgr.h"
#include "GameTime.h"
#include "SocialMgr.h"
#include "World.h"
#include "DatabaseEnv.h"
@@ -23,7 +22,6 @@ Channel::Channel(std::string const& name, uint32 channelId, uint32 channelDBId,
_channelDBId(channelDBId),
_teamId(teamId),
_ownerGUID(0),
lastSpeakTime(0),
_name(name),
_password("")
{
@@ -85,7 +83,7 @@ Channel::Channel(std::string const& name, uint32 channelId, uint32 channelDBId,
bool Channel::IsBanned(uint64 guid) const
{
BannedContainer::const_iterator itr = bannedStore.find(GUID_LOPART(guid));
return itr != bannedStore.end() && itr->second > GameTime::GetGameTime();
return itr != bannedStore.end() && itr->second > time(NULL);
}
void Channel::UpdateChannelInDB() const
@@ -200,6 +198,7 @@ void Channel::JoinChannel(Player* player, std::string const& pass)
PlayerInfo pinfo;
pinfo.player = guid;
pinfo.flags = MEMBER_FLAG_NONE;
pinfo.lastSpeakTime = 0;
pinfo.plrPtr = player;
playersStore[guid] = pinfo;
@@ -406,8 +405,8 @@ void Channel::KickOrBan(Player const* player, std::string const& badname, bool b
{
if (!IsBanned(victim))
{
bannedStore[GUID_LOPART(victim)] = GameTime::GetGameTime() + CHANNEL_BAN_DURATION;
AddChannelBanToDB(GUID_LOPART(victim), GameTime::GetGameTime() + CHANNEL_BAN_DURATION);
bannedStore[GUID_LOPART(victim)] = time(NULL) + CHANNEL_BAN_DURATION;
AddChannelBanToDB(GUID_LOPART(victim), time(NULL) + CHANNEL_BAN_DURATION);
if (notify)
{
@@ -787,9 +786,9 @@ void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
else if (playersStore.size() >= 10)
speakDelay = 5;
if (IsAllowedToSpeak(speakDelay))
if (!pinfo.IsAllowedToSpeak(speakDelay))
{
std::string timeStr = secsToTimeString(lastSpeakTime + speakDelay - GameTime::GetGameTime());
std::string timeStr = secsToTimeString(pinfo.lastSpeakTime + speakDelay - sWorld->GetGameTime());
if (_channelRights.speakMessage.length() > 0)
player->GetSession()->SendNotification("%s", _channelRights.speakMessage.c_str());
player->GetSession()->SendNotification("You must wait %s before speaking again.", timeStr.c_str());
@@ -1236,14 +1235,3 @@ void Channel::RemoveWatching(Player* p)
if (itr != playersWatchingStore.end())
playersWatchingStore.erase(itr);
}
bool Channel::IsAllowedToSpeak(uint32 speakDelay)
{
if (lastSpeakTime+speakDelay <= GameTime::GetGameTime())
{
lastSpeakTime = GameTime::GetGameTime();
return true;
}
else
return false;
}

View File

@@ -12,7 +12,6 @@
#include <string>
#include "Common.h"
#include "GameTime.h"
#include "Opcodes.h"
#include "WorldPacket.h"
@@ -140,6 +139,7 @@ class Channel
{
uint64 player;
uint8 flags;
uint32 lastSpeakTime; // pussywizard
Player* plrPtr; // pussywizard
bool HasFlag(uint8 flag) const { return flags & flag; }
@@ -162,6 +162,16 @@ class Channel
if (state) flags |= MEMBER_FLAG_MUTED;
else flags &= ~MEMBER_FLAG_MUTED;
}
bool IsAllowedToSpeak(uint32 speakDelay) // pussywizard
{
if (lastSpeakTime+speakDelay <= sWorld->GetGameTime())
{
lastSpeakTime = sWorld->GetGameTime();
return true;
}
else
return false;
}
};
public:
@@ -209,7 +219,6 @@ class Channel
// pussywizard:
void AddWatching(Player* p);
void RemoveWatching(Player* p);
bool IsAllowedToSpeak(uint32 speakDelay); // pussywizard
private:
// initial packet data (notify type and channel name)
@@ -311,7 +320,6 @@ class Channel
uint32 _channelDBId;
TeamId _teamId;
uint64 _ownerGUID;
uint32 lastSpeakTime;
std::string _name;
std::string _password;
ChannelRights _channelRights;