DarkflameServer/dChatFilter/dChatFilter.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

38 lines
1.0 KiB
C
Raw Permalink Normal View History

#pragma once
#include <vector>
#include <string>
#include "dCommonVars.h"
enum class eGameMasterLevel : uint8_t;
namespace dChatFilterDCF {
static const uint32_t header = ('D' + ('C' << 8) + ('F' << 16) + ('B' << 24));
2021-12-07 20:03:55 +00:00
static const uint32_t formatVersion = 2;
struct fileHeader {
uint32_t header;
uint32_t formatVersion;
};
};
class dChatFilter
{
public:
dChatFilter(const std::string& filepath, bool dontGenerateDCF);
~dChatFilter();
2024-04-05 05:51:40 +00:00
void ReadWordlistPlaintext(const std::string& filepath, bool allowList);
bool ReadWordlistDCF(const std::string& filepath, bool allowList);
void ExportWordlistToDCF(const std::string& filepath, bool allowList);
std::vector<std::pair<uint8_t, uint8_t>> IsSentenceOkay(const std::string& message, eGameMasterLevel gmLevel, bool allowList = true);
private:
bool m_DontGenerateDCF;
2022-07-18 09:01:43 +00:00
std::vector<size_t> m_DeniedWords;
std::vector<size_t> m_ApprovedWords;
std::vector<size_t> m_UserUnapprovedWordCache;
//Private functions:
size_t CalculateHash(const std::string& word);
2022-07-18 09:01:43 +00:00
};