diff options
Diffstat (limited to 'src/Channel.cpp')
-rw-r--r-- | src/Channel.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/Channel.cpp b/src/Channel.cpp index 4fa99a0..748be49 100644 --- a/src/Channel.cpp +++ b/src/Channel.cpp @@ -95,22 +95,24 @@ namespace dchat return nullptr; } - void Channel::addLocalMessage(const std::string &msg, User *owner) + void Channel::addLocalMessage(const std::string &msg, User *owner, u64 timestampSeconds) { assert(owner); - messageBoard.addMessage(new Message(owner, msg)); + messageBoard.addMessage(new Message(owner, msg, timestampSeconds)); } void Channel::addMessage(const std::string &msg) { - messageBoard.addMessage(new Message(localUser, msg)); if(database && localUser->type == User::Type::ONLINE) { + addLocalMessage(msg, localUser, database->getSyncedTimestampUtc().seconds); auto onlineUser = static_cast<OnlineUser*>(localUser); assert(onlineUser->databaseUser->getType() == odhtdb::User::Type::LOCAL); database->addData(databaseNodeInfo, static_cast<const odhtdb::LocalUser*>(onlineUser->databaseUser), odhtdb::DataView((void*)msg.data(), msg.size())); database->commit(); } + else + addLocalMessage(msg, localUser, 0); } void Channel::addUser(User *user) |