LeviLamina
Loading...
Searching...
No Matches
Util.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/debug/log/LogArea.h"
7#include "mc/deps/core/utility/NumberConversionResult.h"
8#include "mc/util/BidirectionalUnorderedMap.h"
9
10// auto generated forward declare list
11// clang-format off
12class ListTag;
13class SemVersion;
14namespace Json { class Value; }
15// clang-format on
16
17namespace Util {
18// functions
19// NOLINTBEGIN
20MCNAPI void _breakIntoWordsAndFindProfanity(
21 ::std::string& str,
22 ::std::vector<::std::pair<int, int>> const& originalStrIndexes,
23 ::std::unordered_set<char> const& escapeChars,
24 ::std::set<::std::pair<int, int>>& profanityLocations,
25 ::std::unordered_map<::std::string, int> const& exactMap,
26 ::std::unordered_set<::std::string> const& containsSet
27);
28
29MCNAPI void _recordProfanityLocationInWord(
30 ::std::string const& word,
31 ::std::vector<::std::pair<int, int>> const& originalStrIndexes,
32 int start,
33 int end,
34 ::std::set<::std::pair<int, int>>& profanityLocations,
35 ::std::unordered_map<::std::string, int> const& exactMap,
36 ::std::unordered_set<::std::string> const& containsSet
37);
38
39MCNAPI ::std::string base64_decode(::std::string const& encoded_string);
40
41MCNAPI ::std::string base64_encode(uchar const* bytes_to_encode, uint64 in_len, bool pad);
42
43MCNAPI ::std::string base64url_decode(::std::string encoded);
44
45MCNAPI ::std::string base64url_encode(::std::string str);
46
47MCNAPI bool compareNoCase(::std::string_view lhs, ::std::string_view rhs);
48
49MCNAPI ::std::string ensureNamespace(::std::string const& id, ::std::string_view defaultNamespace);
50
51MCNAPI ::std::string filterProfanityFromString(
52 ::std::string const& inputStr,
53 ::std::unordered_map<::std::string, int> const& profanityExactMap,
54 ::std::unordered_set<::std::string> const& profanityContainsSet
55);
56
57MCNAPI ::std::set<::std::pair<int, int>> findProfanityInString(
58 ::std::string const& inputStr,
59 ::std::unordered_map<::std::string, int> const& exactMap,
60 ::std::unordered_set<::std::string> const& containsSet
61);
62
63MCNAPI ::std::string formatTickDuration(int ticks);
64
65MCNAPI ::std::string fromHex(::std::string_view input);
66
67MCNAPI ::BidirectionalUnorderedMap<int, uint64> generateHashMapFromListTag(::ListTag const& enumValues);
68
69MCNAPI ::std::string generateRandomId(int modifier);
70
71MCNAPI bool isValidNamespaceFormat(::std::string_view name);
72
73MCNAPI bool isValidUTF8(::std::string const& content);
74
75MCNAPI bool isVanillaNamespace(::std::string const& identifier);
76
77MCNAPI void loadGameVersion(::SemVersion& version, ::Json::Value const& versionNode);
78
79MCNAPI void normalizeLineEndings(::std::string& str);
80
81MCNAPI ::std::string removeChars(::std::string str, ::std::string const& characters);
82
83MCNAPI ::std::string removeIllegalChars(::std::string str);
84
85MCNAPI ::std::string removeTrailingSpaces(::std::string const& str);
86
87MCNAPI ::std::istream& safeGetline(::std::istream& inputStream, ::std::string& outString);
88
89MCNAPI ::std::vector<::std::string> split(::std::string_view view, char delim);
90
91MCNAPI ::std::vector<::std::string> splitAndDiscardEmpty(::std::string const& str, char delim);
92
93MCNAPI ::std::vector<::std::string> splitLines(
94 ::std::string const& str,
95 ::std::vector<::std::string> const& delims,
96 bool includeDelimCharsInResult,
97 bool includeEmptyLines,
98 ::std::istream& (*fnGetline)(::std::istream&, ::std::string&)
99);
100
101MCNAPI ::std::vector<::std::string>& splitString(::std::string_view s, char delim, ::std::vector<::std::string>& elems);
102
103MCNAPI ::std::vector<::std::string_view>&
104splitStringAsViews(::std::string_view s, char delim, ::std::vector<::std::string_view>& elems);
105
106MCNAPI ::std::vector<::std::string_view> splitToViews(::std::string_view view, char delim);
107
108MCNAPI bool startsWith(::std::string_view s, ::std::string_view start);
109
110MCNAPI ::std::string& stringReplace(::std::string& s, ::std::string const& src, ::std::string const& dst, int maxCount);
111
112MCNAPI ::std::string
113stringReplaceCopy(::std::string const& s, ::std::string const& src, ::std::string const& dst, int maxCount);
114
115MCNAPI ::std::string stringTrim(::std::string const& s);
116
117MCNAPI ::std::string stringTrim(::std::string const& s, ::std::string const& chars);
118
119MCNAPI bool toBool(::std::string const& input, bool& destination);
120
121MCNAPI ::std::string toCamelCase(::std::string const& src, char delimiter);
122
123MCNAPI ::Util::NumberConversionResult toIntWithMinMax(::std::string_view inputStr, int& destination, int min, int max);
124
125MCNAPI ::std::string toLower(char const* inString);
126
127MCNAPI ::std::string toLower(::std::string_view inString);
128
129MCNAPI ::std::string toStringWithPaddedZeroes(uint number, uchar digitCount);
130
131MCNAPI int utf8len(::std::string_view str);
132
133MCNAPI ::std::string utf8substring(::std::string const& str, int startIndex, int endIndex);
134
135MCNAPI bool validateIdentifier(
136 ::std::string const& id,
137 ::LogArea logArea,
138 bool allowMinecraftNamespace,
139 ::std::pair<::std::string, ::std::string>* idNameOut
140);
141
142MCNAPI bool validateIdentifierChunk(::std::string const& chunk, ::LogArea logArea);
143// NOLINTEND
144
145// static variables
146// NOLINTBEGIN
147MCNAPI ::std::string const& EMPTY_GUID();
148
149MCNAPI ::std::string const& EMPTY_STRING();
150
151MCNAPI ::std::string const& HEX_CHARS();
152
153MCNAPI ::std::string const& NEW_LINE();
154// NOLINTEND
155
156} // namespace Util
Definition Value.h:16
Definition ListTag.h:12
Definition SemVersion.h:16