-
Notifications
You must be signed in to change notification settings - Fork 173
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: reward codes this is for giving rewards across characters as the did in live. Tested that the default config works Tested that all claim codes work Tested that saving and loading claim codes work Tested that mail sends correctly * newlines * include array * delete cascade * newline * address feedback
- Loading branch information
1 parent
9c5388c
commit df83f0d
Showing
20 changed files
with
216 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
47 changes: 47 additions & 0 deletions
47
dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
#include "CDRewardCodesTable.h" | ||
|
||
void CDRewardCodesTable::LoadValuesFromDatabase() { | ||
|
||
// First, get the size of the table | ||
unsigned int size = 0; | ||
auto tableSize = CDClientDatabase::ExecuteQuery("SELECT COUNT(*) FROM RewardCodes"); | ||
while (!tableSize.eof()) { | ||
size = tableSize.getIntField(0, 0); | ||
|
||
tableSize.nextRow(); | ||
} | ||
|
||
tableSize.finalize(); | ||
|
||
// Reserve the size | ||
this->entries.reserve(size); | ||
|
||
// Now get the data | ||
auto tableData = CDClientDatabase::ExecuteQuery("SELECT * FROM RewardCodes"); | ||
while (!tableData.eof()) { | ||
CDRewardCode entry; | ||
entry.id = tableData.getIntField("id", -1); | ||
entry.code = tableData.getStringField("code", ""); | ||
entry.attachmentLOT = tableData.getIntField("attachmentLOT", -1); | ||
UNUSED_COLUMN(entry.locStatus = tableData.getIntField("locStatus", -1)); | ||
UNUSED_COLUMN(entry.gate_version = tableData.getStringField("gate_version", "")); | ||
|
||
this->entries.push_back(entry); | ||
tableData.nextRow(); | ||
} | ||
} | ||
|
||
LOT CDRewardCodesTable::GetAttachmentLOT(uint32_t rewardCodeId) const { | ||
for (auto const &entry : this->entries){ | ||
if (rewardCodeId == entry.id) return entry.attachmentLOT; | ||
} | ||
return LOT_NULL; | ||
} | ||
|
||
uint32_t CDRewardCodesTable::GetCodeID(std::string code) const { | ||
for (auto const &entry : this->entries){ | ||
if (code == entry.code) return entry.id; | ||
} | ||
return -1; | ||
} | ||
|
25 changes: 25 additions & 0 deletions
25
dDatabase/CDClientDatabase/CDClientTables/CDRewardCodesTable.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#pragma once | ||
|
||
// Custom Classes | ||
#include "CDTable.h" | ||
|
||
|
||
struct CDRewardCode { | ||
uint32_t id; | ||
std::string code; | ||
LOT attachmentLOT; | ||
UNUSED(uint32_t locStatus); | ||
UNUSED(std::string gate_version); | ||
}; | ||
|
||
|
||
class CDRewardCodesTable : public CDTable<CDRewardCodesTable> { | ||
private: | ||
std::vector<CDRewardCode> entries; | ||
|
||
public: | ||
void LoadValuesFromDatabase(); | ||
const std::vector<CDRewardCode>& GetEntries() const; | ||
LOT GetAttachmentLOT(uint32_t rewardCodeId) const; | ||
uint32_t GetCodeID(std::string code) const; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,7 @@ | |
#include <string> | ||
#include <vector> | ||
#include <map> | ||
#include <cstdint> | ||
|
||
// CPPLinq | ||
#ifdef _WIN32 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#ifndef __IACCOUNTSREWARDCODES__H__ | ||
#define __IACCOUNTSREWARDCODES__H__ | ||
|
||
#include <cstdint> | ||
#include <vector> | ||
|
||
class IAccountsRewardCodes { | ||
public: | ||
virtual void InsertRewardCode(const uint32_t account_id, const uint32_t reward_code) = 0; | ||
virtual std::vector<uint32_t> GetRewardCodesByAccountID(const uint32_t account_id) = 0; | ||
}; | ||
|
||
#endif //!__IACCOUNTSREWARDCODES__H__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
dDatabase/GameDatabase/MySQL/Tables/AccountsRewardCodes.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#include "MySQLDatabase.h" | ||
|
||
void MySQLDatabase::InsertRewardCode(const uint32_t account_id, const uint32_t reward_code) { | ||
ExecuteInsert("INSERT IGNORE INTO accounts_rewardcodes (account_id, rewardcode) VALUES (?, ?);", account_id, reward_code); | ||
} | ||
|
||
std::vector<uint32_t> MySQLDatabase::GetRewardCodesByAccountID(const uint32_t account_id) { | ||
auto result = ExecuteSelect("SELECT rewardcode FROM accounts_rewardcodes WHERE account_id = ?;", account_id); | ||
|
||
std::vector<uint32_t> toReturn; | ||
toReturn.reserve(result->rowsCount()); | ||
while (result->next()) { | ||
toReturn.push_back(result->getUInt("rewardcode")); | ||
} | ||
|
||
return toReturn; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
CREATE TABLE IF NOT EXISTS accounts_rewardcodes ( | ||
account_id INT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE, | ||
rewardcode INT NOT NULL, | ||
PRIMARY KEY (account_id, rewardcode) | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters