Skip to content

Commit ee84cdb

Browse files
committed
DiscordCoreAPI Release v2.0
-Removed DetectArchitecture.cmake to allow for Jsonifier's version to run. -Modified the UnorderedSet and UnorderedMap classes to improve performance and stability.
1 parent 1df4353 commit ee84cdb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1064
-1109
lines changed
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build-and-Test-GCC-Ubuntu
1+
name: Build-and-Test-CLANG-Ubuntu
22

33
on:
44
push:
@@ -13,15 +13,19 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
gcc: [12]
16+
clang: [18]
1717
build_type: [Debug, Release]
1818
std: [20]
19-
env:
20-
CC: gcc-${{matrix.gcc}}
21-
CXX: g++-${{matrix.gcc}}
2219

2320
steps:
2421
- uses: actions/checkout@v3
22+
23+
- name: Install the latest Clang compiler.
24+
working-directory: Tests
25+
run: |
26+
wget https://apt.llvm.org/llvm.sh
27+
chmod +x llvm.sh
28+
sudo ./llvm.sh 18
2529
2630
- name: Update Vcpkg and install other dependencies.
2731
run: |
@@ -49,7 +53,7 @@ jobs:
4953
- name: Configure CMake
5054
working-directory: Tests
5155
run: |
52-
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DGITHUB_BRANCH_TYPE=${{github.ref}}
56+
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/usr/bin/clang++-18 -DGITHUB_BRANCH_TYPE=${{github.ref}}
5357
5458
- name: Build the Test
5559
working-directory: Tests/Build
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,28 @@
1-
2-
name: Build-and-Test-CLANG-MacOS
1+
name: Build-and-Test-GCC-MacOS
32

43
on:
54
push:
65
branches:
76
- main
87
- dev
98

10-
119
jobs:
1210
Build:
1311
runs-on: macos-latest
1412

1513
strategy:
1614
fail-fast: false
1715
matrix:
18-
clang: [16]
16+
gcc: [13]
1917
build_type: [Debug, Release]
2018
std: [20]
2119

2220
steps:
2321
- uses: actions/checkout@v3
2422

25-
- name: Update Vcpkg and install other dependencies.
26-
run: |
27-
cd /usr/local/share/vcpkg
28-
./bootstrap-vcpkg.sh
29-
git stash
30-
git pull
31-
vcpkg update
32-
33-
- name: Install Clang16
23+
- name: Install the latest g++ compiler.
3424
run: |
35-
brew install llvm
36-
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.bash_profile
37-
export LDFLAGS="-L/usr/local/opt/llvm/lib"
38-
export CPPFLAGS="-I/usr/local/opt/llvm/include"
25+
brew install gcc
3926
4027
- name: Copy the Jsonifier repo over.
4128
run: |
@@ -52,7 +39,7 @@ jobs:
5239
- name: Configure CMake
5340
working-directory: Tests
5441
run: |
55-
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang-16 -DGITHUB_BRANCH_TYPE=${{github.ref}}
42+
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/usr/local/opt/gcc@13/bin/g++-13 -DGITHUB_BRANCH_TYPE=${{github.ref}}
5643
5744
- name: Build the Test
5845
working-directory: Tests/Build
@@ -69,5 +56,4 @@ jobs:
6956
run: |
7057
chmod u+x ./DiscordCoreAPITest
7158
./DiscordCoreAPITest
72-
continue-on-error: true
73-
59+
continue-on-error: true

.github/workflows/MSVC_2022-Windows.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16+
msvc: [2022]
1617
build_type: [Debug, Release]
1718
std: [20]
1819

BuildTools/Classes/Packager/Vcpkg.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private function sudo(string $command): void
8989

9090
/**
9191
* Check out a repository by tag or branch name to ~/discordcoreapi,
92-
* using the personal access token and userName passed in as command line parameters.
92+
* using the personal access token and username passed in as command line parameters.
9393
*
9494
* @param string $tag Tag to clone
9595
* @return bool false if the repository could not be cloned
@@ -102,7 +102,7 @@ function checkoutRepository(string $tag = ""): bool
102102
/* Empty tag means use the main branch */
103103
$tag = `{$this->git} config --get init.defaultBranch || echo main`;
104104
}
105-
$repositoryUrl = 'https://' . urlencode($argv[1]) . ':' . urlencode($argv[2]) . '@github.com/realtimechris/DiscordCoreAPI';
105+
$repositoryUrl = 'https://' . urlencode($argv[1]) . ':' . urlencode($argv[2]) . '@github.com/RealTimeChris/DiscordCoreAPI';
106106

107107
echo GREEN . "Check out repository: $tag (user: ". $argv[1] . " branch: " . $tag . ")\n" . WHITE;
108108

@@ -160,9 +160,8 @@ function constructPortAndVersionFile(string $sha512 = "0"): string
160160
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
161161
endif()
162162
163-
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.md")
164-
';
165-
// ./Vcpkg/ports/discordcoreapi/vcpkg.json
163+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.md")';
164+
166165
$versionFileContent = '{
167166
"name": "discordcoreapi",
168167
"version": ' . json_encode($this->getVersion()) . ',
@@ -248,20 +247,21 @@ function secondBuild(string $portFileContent): bool
248247

249248
echo GREEN . "vcpkg x-add-version...\n" . WHITE;
250249
chdir('/usr/local/share/vcpkg');
251-
$this->sudo('./vcpkg format-manifest ./ports/discordcoreapi/vcpkg.json');
250+
$this->sudo('./Vcpkg format-manifest ./ports/discordcoreapi/vcpkg.json');
252251
/* Note: We commit this in /usr/local, but we never push it (we can't) */
253252
$this->git('add .', true);
254-
$this->git('commit -m "VCPKG info update"', true);
253+
$this->git('commit -m "[bot] VCPKG info update"', true);
255254
$this->sudo('/usr/local/share/vcpkg/vcpkg x-add-version discordcoreapi');
256255

257256
echo GREEN . "Copy back port files from /usr/local/share...\n" . WHITE;
258257
chdir(getenv('HOME') . '/discordcoreapi');
259258
system('cp -v -R /usr/local/share/vcpkg/ports/discordcoreapi/vcpkg.json ./Vcpkg/ports/discordcoreapi/vcpkg.json');
259+
system('cp -v -R /usr/local/share/vcpkg/versions/baseline.json ./Vcpkg/versions/baseline.json');
260260
system('cp -v -R /usr/local/share/vcpkg/versions/d-/discordcoreapi.json ./Vcpkg/versions/d-/discordcoreapi.json');
261261

262262
echo GREEN . "Commit and push changes to main branch\n" . WHITE;
263263
$this->git('add .');
264-
$this->git('commit -m "VCPKG info update [skip ci]"');
264+
$this->git('commit -m "[bot] VCPKG info update [skip ci]"');
265265
$this->git('config pull.rebase false');
266266
$this->git('pull');
267267
$this->git('push origin main');
@@ -278,4 +278,4 @@ function secondBuild(string $portFileContent): bool
278278

279279
return $resultCode == 0;
280280
}
281-
};
281+
};

CMake/DetectArchitecture.cmake

Lines changed: 33 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,3 @@
1-
# MIT License
2-
#
3-
# Copyright (c) 2023 RealTimeChris
4-
#
5-
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
6-
# software and associated documentation files (the "Software"), to deal in the Software
7-
# without restriction, including without limitation the rights to use, copy, modify, merge,
8-
# publish, distribute, sublicense, and/or sell copies of the Software, and to permit
9-
# persons to whom the Software is furnished to do so, subject to the following conditions:
10-
#
11-
# The above copyright notice and this permission notice shall be included in all copies or
12-
# substantial portions of the Software.
13-
#
14-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
15-
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
16-
# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
17-
# FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
18-
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
19-
# DEALINGS IN THE SOFTWARE.
20-
#
21-
# CMakeLists.txt - The CMake script for building this library.
22-
# Dec 17, 2022
23-
# https://github.com/RealTimeChris/Jsonifier
241
include(CheckCXXSourceRuns)
252

263
function(check_instruction_set INSTRUCTION_SET_NAME INSTRUCTION_SET_FLAG INSTRUCTION_SET_INTRINSIC)
@@ -39,7 +16,7 @@ function(check_instruction_set INSTRUCTION_SET_NAME INSTRUCTION_SET_FLAG INSTRUC
3916
CHECK_CXX_SOURCE_RUNS("${INSTRUCTION_SET_CODE}" "${INSTRUCTION_SET_NAME}")
4017
if(${INSTRUCTION_SET_NAME})
4118
set(AVX_FLAG "${INSTRUCTION_SET_FLAG}" PARENT_SCOPE)
42-
set(AVX_NAME "${INSTRUCTION_SET_NAME}" PARENT_SCOPE)
19+
set(AVX_TYPE "${INSTRUCTION_SET_NAME}" PARENT_SCOPE)
4320
else()
4421
message(STATUS "Instruction set ${INSTRUCTION_SET_NAME} not supported. Falling back to the previous instruction set.")
4522
return()
@@ -48,31 +25,45 @@ endfunction()
4825

4926
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
5027
set(INSTRUCTION_SETS
51-
"T_AVX?/arch:AVX?__m128i value{}#auto result = _mm_extract_epi32(value, 0)"
52-
"T_AVX2?/arch:AVX2?__m256i value{}#auto result = _mm256_extract_epi32(value, 0)"
53-
"T_AVX512?/arch:AVX512?int32_t result[16]#const _mm512i& value{}#_mm512_store_si512(result, value)"
28+
"T_AVX?/arch:AVX?auto result = _mm_testz_ps(__m128{}, __m128{})"
29+
"T_AVX2?/arch:AVX2?auto result = _mm256_add_epi32(__m256i{}, __m256i{})"
30+
"T_AVX512?/arch:AVX512?auto result = _mm512_add_ps(__m512i{}, __m512i{}).auto result2 = _mm512_cmplt_epu8_mask(__m512i{}, __m512i{})"
31+
)
32+
elseif(APPLE)
33+
set(INSTRUCTION_SETS
34+
"T_AVX?-mavx.-mpclmul.-mbmi.-mlzcnt?auto result = _mm_testz_ps(__m128{}, __m128{}).auto result2 = _blsr_u64(std::uint64_t{})"
35+
"T_AVX2?-mavx2.-mavx.-mpclmul.-mbmi.-mlzcnt?auto result = _mm256_add_epi32(__m256i{}, __m256i{})"
36+
"T_AVX512?-mavx512bw.-mavx512f.-mavx2.-mavx.-mpclmul.-mbmi.-mlzcnt?auto result = _mm512_add_ps(__m512i{}, __m512i{}).auto result2 = _mm512_cmplt_epu8_mask(__m512i{}, __m512i{})"
5437
)
5538
else()
5639
set(INSTRUCTION_SETS
57-
"T_AVX?-mavx?__m128i value{}#auto result = _mm_extract_epi32(value, 0)"
58-
"T_AVX2?-mavx2?__m256i value{}#auto result = _mm256_extract_epi32(value, 0)"
59-
"T_AVX512?-mavx512f?int32_t result[16]#const _mm512i& value{}#_mm512_store_si512(result, value)"
60-
)
40+
"T_AVX?-mavx.-mpclmul.-mbmi.-mlzcnt?auto result = _mm_testz_ps(__m128{}, __m128{})"
41+
"T_AVX2?-mavx2.-mavx.-mpclmul.-mbmi.-mlzcnt?auto result = _mm256_add_epi32(__m256i{}, __m256i{})"
42+
"T_AVX512?-mavx512bw.-mavx512f.-mavx2.-mavx.-mpclmul.-mbmi.-mlzcnt?auto result = _mm512_add_ps(__m512i{}, __m512i{}).auto result2 = _mm512_cmplt_epu8_mask(__m512i{}, __m512i{})"
43+
)
6144
endif()
6245

6346
set(CMAKE_REQUIRED_FLAGS_SAVE "${CMAKE_REQUIRED_FLAGS}")
6447

65-
set(AVX_NAME "T_Fallback")
48+
set(AVX_FLAG "-march=native")
49+
set(AVX_TYPE "T_Fallback")
50+
51+
if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64"))
6652

67-
foreach(INSTRUCTION_SET IN LISTS INSTRUCTION_SETS)
68-
string(REPLACE "?" ";" CURRENT_LIST "${INSTRUCTION_SET}")
69-
list(GET CURRENT_LIST 0 INSTRUCTION_SET_NAME)
70-
list(GET CURRENT_LIST 1 INSTRUCTION_SET_FLAG)
71-
string(REPLACE "." ";" INSTRUCTION_SET_FLAG "${INSTRUCTION_SET_FLAG}")
72-
list(GET CURRENT_LIST 2 INSTRUCTION_SET_INTRINSIC)
73-
string(REPLACE "#" ";" INSTRUCTION_SET_INTRINSIC "${INSTRUCTION_SET_INTRINSIC}")
74-
check_instruction_set("${INSTRUCTION_SET_NAME}" "${INSTRUCTION_SET_FLAG}" "${INSTRUCTION_SET_INTRINSIC}")
75-
endforeach()
53+
foreach(INSTRUCTION_SET IN LISTS INSTRUCTION_SETS)
54+
string(REPLACE "?" ";" CURRENT_LIST "${INSTRUCTION_SET}")
55+
list(GET CURRENT_LIST 0 INSTRUCTION_SET_NAME)
56+
list(GET CURRENT_LIST 1 INSTRUCTION_SET_FLAG)
57+
string(REPLACE "." ";" INSTRUCTION_SET_FLAG "${INSTRUCTION_SET_FLAG}")
58+
list(GET CURRENT_LIST 2 INSTRUCTION_SET_INTRINSIC)
59+
string(REPLACE "." ";" INSTRUCTION_SET_INTRINSIC "${INSTRUCTION_SET_INTRINSIC}")
60+
check_instruction_set("${INSTRUCTION_SET_NAME}" "${INSTRUCTION_SET_FLAG}" "${INSTRUCTION_SET_INTRINSIC}")
61+
endforeach()
62+
63+
string(REPLACE "T_" "" AVX_DISPLAY ${AVX_TYPE})
64+
message(STATUS "Detected CPU Architecture: ${AVX_DISPLAY}")
65+
else()
66+
message(STATUS "SSE not supported by architecture ${CMAKE_SYSTEM_PROCESSOR}")
67+
endif()
7668

77-
message(STATUS "Detected CPU Architecture: ${AVX_NAME}")
7869
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_SAVE}")

Documentation/Doxygen/Documentation-Examples/999-ReadMe.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@
44
![Commit Activity](https://img.shields.io/github/commit-activity/y/realtimechris/discordcoreapi?color=green&label=Commits&style=plastic)
55
![Lines of code](https://img.shields.io/tokei/lines/github/realtimechris/discordcoreapi?&style=plastic&label=Lines%20of%20Code)
66

7-
Hello, and welcome to DiscordCoreAPI! This is a Discord bot library, written in C++, that leverages custom asynchronous [CoRoutines](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/CoRoutine.hpp), as well as a home-brew set of [Https](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Source/HttpsClient.cpp#L364),
8-
[WebSocket](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Source/WebSocketClient.cpp#L434), and [Datagram](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Source/VoiceConnection.cpp#L322) socket clients - all to deliver the utmost performance and efficiency for your bot. It uses roughly 0.1% of an Intel i7 9750h CPU to stream audio in high quality (Opus @ 48Khz, 16-bit) to a single server.
7+
Hello, and welcome to DiscordCoreAPI! This is a Discord bot library, written in C++, that leverages custom asynchronous [CoRoutines](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/CoRoutine.hpp), as well as a home-brew set of [Https](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/Utilities/HttpsClient.hpp#L262),
8+
[WebSocket](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/Utilities/WebSocketClient.hpp#L221), and [Datagram](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/VoiceConnection.hpp#L273) socket clients - all to deliver the utmost performance and efficiency for your bot. It uses roughly 0.1% of an Intel i7 9750h CPU to stream audio in high quality (Opus @ 48Khz, 16-bit) to a single server.
99

1010
![imageDiscordCoreAPI](./TheLogo.png "A bot library for Discord, written in C++, and featuring explicit multithreading through the usage of custom, asynchronous C++ CoRoutines.")
1111

1212
## Compiler Support
13-
![MSVC_20922](https://img.shields.io/github/actions/workflow/status/RealTimeChris/DiscordCoreAPI/MSVC_2022-Windows.yml?style=plastic&logo=microsoft&logoColor=green&label=MSVC_2022&labelColor=pewter&color=blue)
14-
![GCC_12](https://img.shields.io/github/actions/workflow/status/RealTimeChris/DiscordCoreAPI/GCC_12-Ubuntu.yml?style=plastic&logo=linux&logoColor=green&label=GNU_12&labelColor=pewter&color=blue)
15-
![CLANG_16](https://img.shields.io/github/actions/workflow/status/RealTimeChris/DiscordCoreAPI/CLANG_16-MacOS.yml?style=plastic&logo=apple&logoColor=green&label=CLANG_16&labelColor=pewter&color=blue)
13+
![MSVC_20922](https://img.shields.io/github/actions/workflow/status/RealTimeChris/Jsonifier/MSVC_2022-Windows.yml?style=plastic&logo=microsoft&logoColor=green&label=MSVC_2022&labelColor=pewter&color=blue)
14+
![CLANG_18](https://img.shields.io/github/actions/workflow/status/RealTimeChris/Jsonifier/CLANG_18-Ubuntu.yml?style=plastic&logo=linux&logoColor=green&label=CLANG_18&labelColor=pewter&color=blue)
15+
![GCC_13](https://img.shields.io/github/actions/workflow/status/RealTimeChris/Jsonifier/GCC_13-MacOS.yml?style=plastic&logo=apple&logoColor=green&label=GCC_13&labelColor=pewter&color=blue)
1616

1717
## Operating System Support
18-
![Windows](https://img.shields.io/github/actions/workflow/status/RealTimeChris/DiscordCoreAPI/MSVC_2022-Windows.yml?style=plastic&logo=microsoft&logoColor=green&label=Windows&labelColor=pewter&color=blue)
19-
![Linux](https://img.shields.io/github/actions/workflow/status/RealTimeChris/DiscordCoreAPI/GCC_12-Ubuntu.yml?style=plastic&logo=linux&logoColor=green&label=Linux&labelColor=pewter&color=blue)
20-
![Mac](https://img.shields.io/github/actions/workflow/status/RealTimeChris/DiscordCoreAPI/CLANG_16-MacOS.yml?style=plastic&logo=apple&logoColor=green&label=Mac&labelColor=pewter&color=blue)
18+
![Windows](https://img.shields.io/github/actions/workflow/status/RealTimeChris/Jsonifier/MSVC_2022-Windows.yml?style=plastic&logo=microsoft&logoColor=green&label=Windows&labelColor=pewter&color=blue)
19+
![Linux](https://img.shields.io/github/actions/workflow/status/RealTimeChris/Jsonifier/CLANG_18-Ubuntu.yml?style=plastic&logo=linux&logoColor=green&label=Linux&labelColor=pewter&color=blue)
20+
![Mac](https://img.shields.io/github/actions/workflow/status/RealTimeChris/Jsonifier/GCC_13-MacOS.yml?style=plastic&logo=apple&logoColor=green&label=MacOS&labelColor=pewter&color=blue)
2121

2222
# Documentation/Examples
2323
\subpage Examples
@@ -33,7 +33,7 @@ Hello, and welcome to DiscordCoreAPI! This is a Discord bot library, written in
3333
## Performant
3434

3535
----
36-
- Thanks to utilizing [Erlang Text Format](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/Utilities/Etf.hpp) for websocket transfer, and a pool of [kept-alive HTTPS connections](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/Utilities/HttpsClient.hpp#L212) - this library offers the snappiest responses to your interactions and user input.
36+
- Thanks to utilizing [Erlang Text Format](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/Utilities/Etf.hpp) for websocket transfer, and a pool of [kept-alive HTTPS connections](https://github.com/RealTimeChris/DiscordCoreAPI/blob/main/Include/discordcoreapi/Utilities/HttpsClient.hpp#L187) - this library offers the snappiest responses to your interactions and user input.
3737

3838
## Audio-Bridge
3939

@@ -138,7 +138,7 @@ InputEvents::deleteInputEventResponseAsync(newEvent, 20000).get();
138138
----
139139
- [CMake](https://cmake.org/) (Version 3.20 or greater)
140140
- NOTE: I installed these using the [vcpkg](https://github.com/microsoft/vcpkg) installer.
141-
- [Jsonifier](https://github.com/RealTimeChris/Jsonifier) (.\\vcpkg install jsonifier:x64-windows_OR_linux)
141+
- [DiscordCoreAPI](https://github.com/RealTimeChris/DiscordCoreAPI) (.\\vcpkg install jsonifier:x64-windows_OR_linux)
142142
- [OpenSSL](https://github.com/openssl/openssl) (.\\vcpkg install openssl:x64-windows_OR_linux)
143143
- [Opus](https://github.com/xiph/opus) (.\\vcpkg install opus:x64-windows_OR_linux)
144144
- [Sodium](https://github.com/jedisct1/libsodium) (.\\vcpkg install libsodium:x64-windows_OR_linux)

Include/discordcoreapi/ChannelEntities.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ namespace DiscordCoreAPI {
245245
throw DCAException{ "Sorry, but there was no id set for that channel." };
246246
}
247247
cache.emplace(std::forward<ChannelType>(channel));
248-
if (cache.count() % 100 == 0) {
248+
if (cache.count() % 1000 == 0) {
249249
std::cout << "CURRENT CHANNEL COUNT: " << cache.count() << std::endl;
250250
}
251251
}

0 commit comments

Comments
 (0)