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 _logIfValidLogArea(::LogArea logArea, ::std::string const& msg);
30
31MCNAPI void _recordProfanityLocationInWord(
32 ::std::string const& word,
33 ::std::vector<::std::pair<int, int>> const& originalStrIndexes,
34 int start,
35 int end,
36 ::std::set<::std::pair<int, int>>& profanityLocations,
37 ::std::unordered_map<::std::string, int> const& exactMap,
38 ::std::unordered_set<::std::string> const& containsSet
39);
40
41MCNAPI ::std::string base64_decode(::std::string const& encoded_string);
42
43MCNAPI ::std::string base64_encode(uchar const* bytes_to_encode, uint64 in_len, bool pad);
44
45MCNAPI ::std::string base64url_decode(::std::string encoded);
46
47MCNAPI ::std::string base64url_encode(::std::string str);
48
49MCNAPI bool compareNoCase(::std::string_view lhs, ::std::string_view rhs);
50
51MCNAPI ::std::string ensureNamespace(::std::string const& id, ::std::string_view defaultNamespace);
52
53MCNAPI ::std::string filterProfanityFromString(
54 ::std::string const& inputStr,
55 ::std::unordered_map<::std::string, int> const& profanityExactMap,
56 ::std::unordered_set<::std::string> const& profanityContainsSet
57);
58
59MCNAPI ::std::set<::std::pair<int, int>> findProfanityInString(
60 ::std::string const& inputStr,
61 ::std::unordered_map<::std::string, int> const& exactMap,
62 ::std::unordered_set<::std::string> const& containsSet
63);
64
65MCNAPI ::std::string formatTickDuration(int ticks);
66
67MCNAPI ::std::string fromHex(::std::string_view input);
68
69MCNAPI ::BidirectionalUnorderedMap<int, uint64> generateHashMapFromListTag(::ListTag const& enumValues);
70
71MCNAPI ::std::string generateRandomId(int modifier);
72
73MCNAPI ::std::string getNameWithoutNamespace(::std::string const& name);
74
75MCNAPI ::std::string getNamespace(::std::string const& name);
76
77MCNAPI bool isValidNamespaceFormat(::std::string const& name);
78
79MCNAPI bool isValidUTF8(::std::string const& content);
80
81MCNAPI bool isVanillaNamespace(::std::string const& identifier);
82
83MCNAPI void loadGameVersion(::SemVersion& version, ::Json::Value const& versionNode);
84
85MCNAPI void normalizeLineEndings(::std::string& str);
86
87MCNAPI ::std::string removeChars(::std::string str, ::std::string const& characters);
88
89MCNAPI ::std::string removeIllegalChars(::std::string str);
90
91MCNAPI ::std::string removeTrailingSpaces(::std::string const& str);
92
93MCNAPI ::std::istream& safeGetline(::std::istream& inputStream, ::std::string& outString);
94
95MCNAPI ::std::vector<::std::string> split(::std::string_view view, char delim);
96
97MCNAPI ::std::vector<::std::string> splitAndDiscardEmpty(::std::string const& str, char delim);
98
99MCNAPI ::std::vector<::std::string> splitLines(
100 ::std::string const& str,
101 ::std::vector<::std::string> const& delims,
102 bool includeDelimCharsInResult,
103 bool includeEmptyLines,
104 ::std::istream& (*fnGetline)(::std::istream&, ::std::string&)
105);
106
107MCNAPI ::std::vector<::std::string>& splitString(::std::string_view s, char delim, ::std::vector<::std::string>& elems);
108
109MCNAPI ::std::vector<::std::string_view>&
110splitStringAsViews(::std::string_view s, char delim, ::std::vector<::std::string_view>& elems);
111
112MCNAPI ::std::vector<::std::string_view> splitToViews(::std::string_view view, char delim);
113
114MCNAPI bool startsWith(::std::string_view s, ::std::string_view start);
115
116MCNAPI ::std::string& stringReplace(::std::string& s, ::std::string const& src, ::std::string const& dst, int maxCount);
117
118MCNAPI ::std::string
119stringReplaceCopy(::std::string const& s, ::std::string const& src, ::std::string const& dst, int maxCount);
120
121MCNAPI ::std::string stringTrim(::std::string const& s);
122
123MCNAPI ::std::string stringTrim(::std::string const& s, ::std::string const& chars);
124
125MCNAPI bool toBool(::std::string const& input, bool& destination);
126
127MCNAPI ::std::string toCamelCase(::std::string const& src, char delimiter);
128
129MCNAPI ::Util::NumberConversionResult toIntWithMinMax(::std::string_view inputStr, int& destination, int min, int max);
130
131MCNAPI ::std::string toLower(char const* inString);
132
133MCNAPI ::std::string toLower(::std::string_view inString);
134
135MCNAPI ::std::string toStringWithPaddedZeroes(uint number, uchar digitCount);
136
137MCNAPI int utf8len(::std::string_view str);
138
139MCNAPI ::std::string utf8substring(::std::string const& str, int startIndex, int endIndex);
140
141MCNAPI bool validateIdentifier(
142 ::std::string const& id,
143 ::LogArea logArea,
144 bool allowMinecraftNamespace,
145 ::std::pair<::std::string, ::std::string>* idNameOut
146);
147
148MCNAPI bool validateIdentifierChunk(::std::string const& chunk, ::LogArea logArea);
149// NOLINTEND
150
151// static variables
152// NOLINTBEGIN
153MCNAPI ::std::string const& EMPTY_GUID();
154
155MCNAPI ::std::string const& EMPTY_STRING();
156
157MCNAPI ::std::string const& HEX_CHARS();
158
159MCNAPI ::std::string const& NEW_LINE();
160// NOLINTEND
161
162} // namespace Util
Definition Value.h:16
Definition ListTag.h:12
Definition SemVersion.h:15