From 2ddf9efec21cc598fd78e17e2785c3920cf4bfff Mon Sep 17 00:00:00 2001 From: Eduardo Dantas Date: Wed, 28 Apr 2021 18:18:18 -0300 Subject: [PATCH] Fix GHA builds (#2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix GHA builds Co-authored-by: Renato Foot Guimarães Costallat --- .appveyor.yml | 8 ++-- .github/ISSUE_TEMPLATE/i-want-to-help.md | 2 +- .github/workflows/build-ubuntu.yml | 36 ++++-------------- .github/workflows/build-windows.yml | 29 ++++---------- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/reviewdog.yml | 8 ++-- .gitignore | 4 +- .travis.yml | 4 +- CMakeLists.txt | 4 +- README.md | 36 +++++++++--------- canary.rc | 1 + cmake/canary.ico | Bin 0 -> 16958 bytes cmake/canary.rc | 1 + cmake/otservbr-global.ico | Bin 82179 -> 0 bytes cmake/otservbr-global.rc | 1 - data/XML/events.xml | 4 +- data/lib/core/position.lua | 2 - data/lib/core/tile.lua | 1 - .../talkactions/god/count_monsters.lua | 2 +- data/startup/others/functions.lua | 17 --------- docker/data/login.py | 2 +- docker/server/Dockerfile | 14 +++---- docker/test-server.sh | 2 +- recompile.sh | 6 +-- schema.sql | 2 +- sonar-project.properties | 4 +- src/CMakeLists.txt | 4 +- src/config/configmanager.cpp | 6 +-- src/icon/otservbr-global.ico | Bin 82179 -> 0 bytes src/lua/callbacks/creaturecallback.cpp | 2 +- src/lua/callbacks/creaturecallback.h | 2 +- src/lua/scripts/luascript.cpp | 2 +- src/otserv.cpp | 2 +- src/otservbr-global.rc | 1 - src/server/network/webhook/webhook.cpp | 2 +- src/utils/definitions.h | 4 +- tests/CMakeLists.txt | 10 ++--- tests/build_and_run.sh | 2 +- vcpkg.json | 2 +- 39 files changed, 88 insertions(+), 143 deletions(-) create mode 100644 canary.rc create mode 100644 cmake/canary.ico create mode 100644 cmake/canary.rc delete mode 100644 cmake/otservbr-global.ico delete mode 100644 cmake/otservbr-global.rc delete mode 100644 src/icon/otservbr-global.ico delete mode 100644 src/otservbr-global.rc diff --git a/.appveyor.yml b/.appveyor.yml index 61ebe523dd4..59290a80d73 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -42,17 +42,17 @@ before_build: cmake --build . --config Release build: - project: C:\projects\otservbr-global\build\otbr.sln + project: C:\projects\canary\build\canary.sln verbosity: minimal parallel: true after_build: - cd %APPVEYOR_BUILD_FOLDER%\build\bin - - 7z a -tzip otservbr-global.zip Release\ + - 7z a -tzip canary.zip Release\ cache: - - C:\projects\otservbr-global\build\vcpkg_installed\ + - C:\projects\canary\build\vcpkg_installed\ - C:\Users\appveyor\AppData\Local\vcpkg\archives artifacts: - - path: \build\bin\otservbr-global.zip + - path: \build\bin\canary.zip diff --git a/.github/ISSUE_TEMPLATE/i-want-to-help.md b/.github/ISSUE_TEMPLATE/i-want-to-help.md index 7528c2bd4d5..935e29987ec 100644 --- a/.github/ISSUE_TEMPLATE/i-want-to-help.md +++ b/.github/ISSUE_TEMPLATE/i-want-to-help.md @@ -3,7 +3,7 @@ name: I have a snippet to share about: If you have any lua, xml or cpp code that you want to share to be added to the server --- -If you have a piece of code to contribute and want to share with OTServBR, **please do it with a pull request instead**. Refrain from opening issues for simple code changes, it makes everything slower while you could be contributing to the community and improving the life of every player that uses this server. +If you have a piece of code to contribute and want to share with Canary, **please do it with a pull request instead**. Refrain from opening issues for simple code changes, it makes everything slower while you could be contributing to the community and improving the life of every player that uses this server. If you don't know how to contribute in GitHub, you don't even need to know Git: can try to edit the files that you want to change directly from the web interface. If you need to change more files you need to create a complete pull request, [you can learn how to do that with this tutorial](https://github.com/firstcontributions/first-contributions). diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index c3e5f2b1d63..2cc89250e1d 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -2,22 +2,7 @@ name: Build on Ubuntu -on: - push: - branches: - - master - - develop - - v* - - tags: - - v* - - pull_request: - paths: - - cmake/** - - src/** - - CMakeLists.txt - - .github/** +on: [push, pull_request] jobs: job: @@ -60,7 +45,7 @@ jobs: appendedCacheKey: ${{ hashFiles( '**/vcpkg.json' ) }} vcpkgTriplet: ${{ matrix.triplet }} additionalCachedPaths: ${{ github.workspace }}/build/vcpkg_installed - vcpkgGitCommitId: ${{ secrets.VCPKG_ID }} + vcpkgGitCommitId: b9cd2a7958dec657fb869ec487d2a98cf39a8d48 - name: 'Run CMake with Ninja, install dependencies with vcpkg, build with CMake' uses: lukka/run-cmake@v3 @@ -71,25 +56,20 @@ jobs: cmakeBuildType: ${{ matrix.buildtype }} - name: Clean workspace - if: ${{ matrix.buildtype == 'Release' }} + if: ${{ matrix.buildtype == 'Release' && github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/test' }} shell: bash run: | - mv ${{ github.workspace }}/build/bin/otbr ${{ github.workspace }}/otbr - find . -maxdepth 1 ! -name otbr ! -name data ! -name config.lua.dist ! -name key.pem ! -name LICENSE ! -name README.md ! -name schema.sql -exec rm -r {} \; + mv ${{ github.workspace }}/build/bin/canary ${{ github.workspace }}/canary + find . -maxdepth 1 ! -name canary ! -name data ! -name config.lua.dist ! -name key.pem ! -name LICENSE ! -name README.md ! -name schema.sql -exec rm -r {} \; - name: Prepare datapack contents - if: ${{ matrix.buildtype == 'Release' }} + if: ${{ matrix.buildtype == 'Release' && github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/test' }} shell: bash run: | mv config.lua.dist config.lua - unzip -o data/world/world.zip -d data/world/ - rm data/world/world.zip - cd .. - zip -r otservbr.zip otservbr-global - name: Upload binary - if: ${{ matrix.buildtype == 'Release' }} + if: ${{ matrix.buildtype == 'Release' && github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/test' }} uses: actions/upload-artifact@v2 with: - name: ${{ matrix.os }}-otbr-amd64-${{ matrix.buildtype }}-${{ github.sha }} - path: ${{ runner.workspace }}/otservbr.zip + name: ${{ matrix.os }}-canary-amd64-${{ matrix.buildtype }}-${{ github.sha }} diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index af030df907d..9f152c71ea4 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -2,22 +2,7 @@ name: Build on Windows -on: - push: - branches: - - master - - develop - - v* - - tags: - - v* - - pull_request: - paths: - - cmake/** - - src/** - - CMakeLists.txt - - .github/** +on: [push, pull_request] jobs: job: @@ -51,7 +36,7 @@ jobs: appendedCacheKey: ${{ hashFiles( '**/vcpkg.json' ) }} vcpkgTriplet: ${{ matrix.triplet }} additionalCachedPaths: ${{ github.workspace }}/build/vcpkg_installed - vcpkgGitCommitId: ${{ secrets.VCPKG_ID }} + vcpkgGitCommitId: b9cd2a7958dec657fb869ec487d2a98cf39a8d48 - name: Run CMake to install the dependencies specified in the vcpkg.json manifest, generate project file and build the project uses: lukka/run-cmake@v3 @@ -62,16 +47,16 @@ jobs: buildWithCMake: true - name: Copy artifacts - if: ${{ matrix.buildtype == 'Release' }} + if: ${{ matrix.buildtype == 'Release' && github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/test' }} shell: pwsh run: | Copy-Item -Path ${{ github.workspace }}\build\bin\* -Destination ${{ github.workspace }} -Recurse - name: Create and Upload Full Datapack - if: ${{ matrix.buildtype == 'Release' }} + if: ${{ matrix.buildtype == 'Release' && github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/test' }} uses: actions/upload-artifact@v2 with: - name: otbr-full-${{ matrix.os }}-${{ matrix.buildtype }}-${{ github.sha }} + name: canary-full-${{ matrix.os }}-${{ matrix.buildtype }}-${{ github.sha }} path: | ${{ github.workspace }} !${{ github.workspace }}/build/ @@ -89,9 +74,9 @@ jobs: !${{ github.workspace }}/Jenkinsfile - name: Create and Upload Server Only - if: ${{ matrix.buildtype == 'Release' }} + if: ${{ matrix.buildtype == 'Release' && github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/test' }} uses: actions/upload-artifact@v2 with: - name: otbr-server-only-${{ matrix.os }}-${{ matrix.buildtype }}-${{ github.sha }} + name: canary-server-only-${{ matrix.os }}-${{ matrix.buildtype }}-${{ github.sha }} path: | ${{ github.workspace }}/build/bin/ diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1b799fdb3a7..66c16fedcce 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -47,7 +47,7 @@ jobs: appendedCacheKey: ${{ hashFiles( '**/vcpkg.json' ) }} vcpkgTriplet: ${{ matrix.triplet }} additionalCachedPaths: ${{ github.workspace }}/build/vcpkg_installed - vcpkgGitCommitId: ${{ secrets.VCPKG_ID }} + vcpkgGitCommitId: b9cd2a7958dec657fb869ec487d2a98cf39a8d48 - name: 'Run CMake with Ninja, install dependencies with vcpkg, build with CMake' if: ${{ matrix.language == 'cpp' }} diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index e4a7333243c..00b9b3a67b0 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -44,7 +44,7 @@ jobs: env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - cd ${{ runner.workspace }}/otservbr-global + cd ${{ runner.workspace }}/canary cppcheck --version $HOME/bin/reviewdog -reporter=github-pr-check -runners=cppcheck @@ -53,14 +53,14 @@ jobs: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | luacheck --version - cd ${{ runner.workspace }}/otservbr-global + cd ${{ runner.workspace }}/canary $HOME/bin/reviewdog -reporter=github-pr-check -runners=luacheck - name: luac env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - cd ${{ runner.workspace }}/otservbr-global + cd ${{ runner.workspace }}/canary luac -v $HOME/bin/reviewdog -reporter=github-pr-check -runners=luac @@ -68,7 +68,7 @@ jobs: env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - cd ${{ runner.workspace }}/otservbr-global + cd ${{ runner.workspace }}/canary xmllint --version $HOME/bin/reviewdog -reporter=github-pr-check -runners=xmllint diff --git a/.gitignore b/.gitignore index c0cdf2c5884..0e58341106d 100644 --- a/.gitignore +++ b/.gitignore @@ -377,8 +377,8 @@ config.lua sftp-config.json # Binaries -otbr -otbr.old +canary +canary.old # VCPKG vcpkg_installed diff --git a/.travis.yml b/.travis.yml index 1583457e0b7..75de9356ed3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: - ./vcpkg/vcpkg integrate install script: - - cd /home/travis/build/opentibiabr/otservbr-global + - cd /home/travis/build/opentibiabr/canary - export CXXFLAGS="$CXXFLAGS -DBOOST_ASIO_DISABLE_NOEXCEPT=1 " - /home/travis/build/opentibiabr/vcpkg/vcpkg --feature-flags=binarycaching,manifests,versions install - mkdir build @@ -47,7 +47,7 @@ script: - sonar-scanner -Dsonar.cfamily.cache.enabled=true -Dsonar.cfamily.cache.path=${TRAVIS_HOME}/.cfamily -Dsonar.cfamily.threads=${NUMBER_OF_PROCESSORS} || true # - sonar-scanner -Dsonar.cfamily.cache.enabled=true -Dsonar.cfamily.cache.path=${TRAVIS_HOME}/.cfamily -Dsonar.cfamily.threads=${NUMBER_OF_PROCESSORS} || true - # - curl --upload-file /home/travis/build/opentibiabr/otservbr-global/sonar-cfamily-reproducer.zip https://transfer.sh/sonar-cfamily-reproducer.zip + # - curl --upload-file /home/travis/build/opentibiabr/canary/sonar-cfamily-reproducer.zip https://transfer.sh/sonar-cfamily-reproducer.zip cache: directories: diff --git a/CMakeLists.txt b/CMakeLists.txt index 11819ef1bdb..9b4e4db84d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,9 +21,9 @@ set(VCPKG_FEATURE_FLAGS "versions") set(VCPKG_BUILD_TYPE "release") # ***************************************************************************** -# Project otbr +# Project canary # ***************************************************************************** -project(otbr) +project(canary) # ***************************************************************************** diff --git a/README.md b/README.md index fcc10a648fd..2c6f209153d 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,43 @@ # OTServ Brasil - Global Server [![Discord Channel](https://img.shields.io/discord/528117503952551936.svg?style=flat-square&logo=discord)](https://discord.gg/3NxYnyV) -[![GitHub issues](https://img.shields.io/github/issues/opentibiabr/otservbr-global)](https://github.com/opentibiabr/otservbr-global/issues) -[![GitHub pull request](https://img.shields.io/github/issues-pr/opentibiabr/otservbr-global)](https://github.com/opentibiabr/otservbr-global/pulls) -[![Contributors](https://img.shields.io/github/contributors/opentibiabr/otservbr-global.svg?style=flat-square)](https://github.com/opentibiabr/otservbr-global/graphs/contributors) -[![GitHub](https://img.shields.io/github/license/opentibiabr/otservbr-global)](https://github.com/opentibiabr/otservbr-global/blob/develop/LICENSE) +[![GitHub issues](https://img.shields.io/github/issues/opentibiabr/canary)](https://github.com/opentibiabr/canary/issues) +[![GitHub pull request](https://img.shields.io/github/issues-pr/opentibiabr/canary)](https://github.com/opentibiabr/canary/pulls) +[![Contributors](https://img.shields.io/github/contributors/opentibiabr/canary.svg?style=flat-square)](https://github.com/opentibiabr/canary/graphs/contributors) +[![GitHub](https://img.shields.io/github/license/opentibiabr/canary)](https://github.com/opentibiabr/canary/blob/develop/LICENSE) -![GitHub repo size](https://img.shields.io/github/repo-size/opentibiabr/otservbr-global) +![GitHub repo size](https://img.shields.io/github/repo-size/opentibiabr/canary) -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/a71728d523ac4b23a9c0b974ae4ec5df)](https://www.codacy.com/gh/opentibiabr/otservbr-global/dashboard?utm_source=github.com&utm_medium=referral&utm_content=opentibiabr/otservbr-global&utm_campaign=Badge_Grade) -[![CodeQL](https://github.com/opentibiabr/otservbr-global/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/opentibiabr/otservbr-global/actions/workflows/codeql-analysis.yml) -[![Codacy Security Scan](https://github.com/opentibiabr/otservbr-global/actions/workflows/codacy-analysis.yml/badge.svg)](https://github.com/opentibiabr/otservbr-global/actions/workflows/codacy-analysis.yml) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/a71728d523ac4b23a9c0b974ae4ec5df)](https://www.codacy.com/gh/opentibiabr/canary/dashboard?utm_source=github.com&utm_medium=referral&utm_content=opentibiabr/canary&utm_campaign=Badge_Grade) +[![CodeQL](https://github.com/opentibiabr/canary/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/opentibiabr/canary/actions/workflows/codeql-analysis.yml) +[![Codacy Security Scan](https://github.com/opentibiabr/canary/actions/workflows/codacy-analysis.yml/badge.svg)](https://github.com/opentibiabr/canary/actions/workflows/codacy-analysis.yml) ## Builds -[![Build status](https://ci.appveyor.com/api/projects/status/github/opentibiabr/otservbr-global?branch=develop&passingText=develop%20-%20OK&svg=true)](https://ci.appveyor.com/project/opentibiabr/otservbr-global/build/artifacts "Download nightly builds for Windows") +[![Build status](https://ci.appveyor.com/api/projects/status/github/opentibiabr/canary?branch=develop&passingText=develop%20-%20OK&svg=true)](https://ci.appveyor.com/project/opentibiabr/canary/build/artifacts "Download nightly builds for Windows") -[![Build on Ubuntu](https://github.com/opentibiabr/otservbr-global/workflows/Build%20on%20Ubuntu/badge.svg)](https://github.com/opentibiabr/otservbr-global/actions?query=workflow%3A%22Build+on+Ubuntu%22) -[![Build on Windows](https://github.com/opentibiabr/otservbr-global/workflows/Build%20on%20Windows/badge.svg)](https://github.com/opentibiabr/otservbr-global/actions?query=workflow%3A%22Build+on+Windows%22) +[![Build on Ubuntu](https://github.com/opentibiabr/canary/workflows/Build%20on%20Ubuntu/badge.svg)](https://github.com/opentibiabr/canary/actions?query=workflow%3A%22Build+on+Ubuntu%22) +[![Build on Windows](https://github.com/opentibiabr/canary/workflows/Build%20on%20Windows/badge.svg)](https://github.com/opentibiabr/canary/actions?query=workflow%3A%22Build+on+Windows%22) ## Project -OTServ Brasil - Global Server is a free and open-source MMORPG server emulator written in C++. It is a fork of the [Forgotten Server](https://github.com/otland/forgottenserver) project. To connect to the server and to take a stable experience, you can use our [own client](https://forums.otserv.com.br/index.php?/forums/topic/167933-otservbr-global-cliente-tibia-12/) and if you want to edit something, check our [customized tools](https://github.com/opentibiabr/tools). +OTServ Brasil - Global Server is a free and open-source MMORPG server emulator written in C++. It is a fork of the [Forgotten Server](https://github.com/otland/forgottenserver) project. To connect to the server and to take a stable experience, you can use our [own client](https://forums.otserv.com.br/index.php?/forums/topic/167933-canary-cliente-tibia-12/) and if you want to edit something, check our [customized tools](https://github.com/opentibiabr/tools). -You are subject to our code of conduct, read at [this link](https://github.com/opentibiabr/otservbr-global/blob/develop/CODE_OF_CONDUCT.md). +You are subject to our code of conduct, read at [this link](https://github.com/opentibiabr/canary/blob/develop/CODE_OF_CONDUCT.md). ### Getting **Started** * **WARNING: YOU NEED TO UNZIP THE MAP BEFORE START THE SERVER.** -* [Compiling on Windows](https://forums.otserv.com.br/index.php?/forums/topic/169235-windowsvc2019-compilando-sources-otservbr-global/), alternatively if you are ****not** going to change anything on the source** you can download the latest compiled version for windows from [nightly builds for Windows](https://ci.appveyor.com/project/opentibiabr/otservbr-global/build/artifacts). -* Wiki: Compiling ([Ubuntu/Debian](https://github.com/opentibiabr/otservbr-global/wiki/Compiling-on-Ubuntu-or-Debian-GNU-Linux), [Windows](https://github.com/opentibiabr/otservbr-global/wiki/Compiling-on-Windows-(vcpkg))) +* [Compiling on Windows](https://forums.otserv.com.br/index.php?/forums/topic/169235-windowsvc2019-compilando-sources-canary/), alternatively if you are ****not** going to change anything on the source** you can download the latest compiled version for windows from [nightly builds for Windows](https://ci.appveyor.com/project/opentibiabr/canary/build/artifacts). +* Wiki: Compiling ([Ubuntu/Debian](https://github.com/opentibiabr/canary/wiki/Compiling-on-Ubuntu-or-Debian-GNU-Linux), [Windows](https://github.com/opentibiabr/canary/wiki/Compiling-on-Windows-(vcpkg))) ### Issues -We use the [issue tracker on GitHub](https://github.com/opentibiabr/OTServBR-Global/issues). Keep in mind that everyone who is watching the repository gets notified by e-mail when there is an activity, so be thoughtful and avoid writing comments that aren't meant for an issue (e.g. "+1"). If you'd like for an issue to be fixed faster, you should either fix it yourself and submit a pull request, or place a bounty on the issue. +We use the [issue tracker on GitHub](https://github.com/opentibiabr/canary/issues). Keep in mind that everyone who is watching the repository gets notified by e-mail when there is an activity, so be thoughtful and avoid writing comments that aren't meant for an issue (e.g. "+1"). If you'd like for an issue to be fixed faster, you should either fix it yourself and submit a pull request, or place a bounty on the issue. ### Pull requests -Before [creating a pull request](https://github.com/opentibiabr/otservbr-global/pulls) please keep in mind: +Before [creating a pull request](https://github.com/opentibiabr/canary/pulls) please keep in mind: * Do not send Pull Request changing the map, as we can't review the changes it's better to use our [Discord](https://discord.gg/3NxYnyV) to talk about or send the map changes to the responsible for updating it. * Focus on fixing only one thing, mixing too much things on the same Pull Request make it harder to review, harder to test and if we need to revert the change it will remove other things together. @@ -49,7 +49,7 @@ Before [creating a pull request](https://github.com/opentibiabr/otservbr-global/ * our partners * our crew (majesty, gpedro, eduardo dantas, foot) - * [our contributors](https://github.com/opentibiabr/OTServBR-Global/graphs/contributors) + * [our contributors](https://github.com/opentibiabr/canary/graphs/contributors) * [fear lucien](https://github.com/FearLucien) * [cjaker](https://github.com/Eternal-Scripts) * [slavidodo](https://github.com/slavidodo) diff --git a/canary.rc b/canary.rc new file mode 100644 index 00000000000..75976835ab1 --- /dev/null +++ b/canary.rc @@ -0,0 +1 @@ +MAINICON ICON "canary.ico" diff --git a/cmake/canary.ico b/cmake/canary.ico new file mode 100644 index 0000000000000000000000000000000000000000..1100d8defb9ad26a4e13fc636d1c3a66f497a59e GIT binary patch literal 16958 zcmeI4XPZ@3mdBYdF|X%ke~f%G1QkR91thd0 zV39;JRJx(6*8KkK+*4eTpwo0eJ~Msm*_^!3{;#~&-iIDN{)N9k|G5YM{#%bf{dIJ{1cg3sJUgUY68Oe3McgPDgoudz0yy|6(a$l79$9R97_v^i> zQGMVU;~V;-rS&}hcaQ&9vVH$rw`~7PmKi_i65vRU{0o?QU)aDH9m3ccM?!RulTFCHBF4^K8w6Mtd(;Z__6av&6_g^e0-=xARz7UvPRy2S3j~d_g`U z-bA;jx2N*o`3CRlTm2_FPC@s~h?kwW;%^#$W`{El#uBf3j(d^U(S59O@=%+bm~5*S zP6yK(J9hYhT{!o>HQ&B&rDB_Pc9yK8qiCHS1zL&Y4(lj!tX6Ed{GFS2_5Ant-NAkK z@rI?gYF^eBBqv$pq$=cHvL-o)*F*jr8oUVIdm@*}OjU1a)ccv?m##UTL{I4__{3+m zq_)E)@0>^WGSz);+T`K3C|hgW;o+0&Hby-Jerxi*iZ^e#ID{)S( zsMg6ot%Lo}jt=Oc=SpT)u$G%w?Cgodwi8;+PrPo4>Q^l_y0zpC0)N7_m>-BjL{=+md(bb$kT+fo#?c`HRg7%Xs&{KL;w3B??xq8X=@A%Lfr&L=4TM@;!)(`v- zZ0vJoUOXfH2cK-Z+j;iI^8mZ_te4de!WNC_XX&Zq?JM;69b~lCZ5&wlhj-J&IdckT2_p_W`Dc|Na z*uH9!&3t1dzVr9-|6w}G)_X(7<>zJNGvdE!i!8{l@7}uJe*Wn!W5I4SmJaw;0%MU@ z;9LP73V#P%$+R#@FZ@3C-R^NElz8>w_Cofr+;~b)`ZIdYX(^hhAMVM6-StB9QfR|p zoVHIkF0;9j3D`p77Wty#@(s_!J9s%Hz!k-J)DM%Nezc5qhz`!{5Uc?X5Y`f{z`p1d;12MKUPa`oy}h-& zwY9de--a$o&fq`ybcn|ES41b&kND74%G=eZv$p$#H8!tq9K7m997b$H%ZMKE(&IR6 zM0EJ`kHsIx|MK_Q(XUu^z;n>>C0htxKZEbruAFBKdFO8ze2~48PCJjlto=})#jAWC zJw{f&aaRfSe!1Pa+{F8!Ke{L$3bXLLerlgFbb(c^qkx~MN!Ifi zvB1xDKo9H|_VV7H>vrSXWjlUgx9wQH#8xy!Y~dSYY{vL1{A)jGP8>r^5ASQaQT=Vk zxFPl?d|f&-ZXd0F+fMP^&88pi-p%XKu$g{Kt`qIZ$K{JnwsrYp^tO*BvDHc9_$h;5 zuv+;u=ped06+d)K5@Xd7?{6j^y^d^&-W||84_5hV=RNof`F3PN_&I}6cEJzHMuFB+ z5RZ@%_>O_IeCr*LW!Ahs+hSvfSPdBKh}|;y@+`5V#uX*+QH$Yk!lv_z{UhjgL^f(T z_f`+Gbqi*m? z@kw_3=kttTdWTP!&cXZkf;@X*qhzP_=e9|_r@76?g5lx#%iGN>=WO4$4K^n}#ikOY z)croc#znRt%e-RIWwLms7q>A2Db*ZPEZ+GdFF=KL6B8t+$cOd$w!y zTFZ?cWa&ZlPgC9)!5%z}x$;=}Gu8cU$&4(zbrYOLu+iLxgIKl(8zx;)Y@Y|a%N_gj zfhEaGsm)q%T(%FEEyO2{v&`55jFFrW44zBjr-R%DTRil6cux+;dn3qcJ^S_0!JGDJ z%8A1qP&7z`SuKT)QoSIl+>jh4gAUD&POwcY7TLXPSM1g=muykG2Ae`04?R71<{g!I z!~Jf#XB;yp4YSi<9dz3!8zz~T&GUGz2;Y$fL;)4xy!;kh(IAiRwWEs{&YZ9<%igl= zgevS$A7V#j9643~?Ecv62Jj7>(r49GJg3k;_o``J8k5%$WDB?!))V5&|7Z#PocE27 zN|J|&w((Ifk%Nw~jf)rB)gOPbz2w`|h>c?8u1V<)?+P({O+xR1#%emB9oyel&Q4pg znfwh|@6OAFS2RElmG5xLH>pIAr@Y9mumOt{k zhUymb&0uu8fG<_iJoe&xn){NX2Q=_;bAJ?DsFnbe`*v(-awt4j%z}?sZWbBwDz$%6Fvf=!?wZ zd(u8wvCtA@2DqbJBMa+?3(&ue121>F8RV`fPLv{!4G{lEShdtFPtIHc|8757DOHSzY~WJ*zD*e=uCVe zpM=iKmgHpj|H1fGqY%a%*hRZApA+xp8y?1A4^2c1oljD)-M;!A%eN5kAm<^@hqnQ4 z;yP?#`<-jlb{j2CjG=ePr+ZyeaT|SSu!E|DSMu?HyC3rGNn6JV9@&8qf4Fs=6}C^u z^`e)~fxlt=VB5244f13E9?2Yr;s9sB$voA&xh`j8Dl*3dK6XBEpTP7z(j zgC~tSy!JG@g!esdtM>`N^SmqrdL}%UE`)t3FVMc8nO8f;zTUOf@vA2LIQ${@_V#x2 zu_*f0kJtm-Q?8f9iAn0fuGn4mhkqn~y(@g5@P^p5bva-w{}|$rV;hz8>)gAUsdj?A zTeWB5SAHWJD1TGzr#MLa!e7W!Z@6-W7>8OkypIpUcamErk%4;rh?-)pBytee6vB5t zZu>0w?=d7i5Bn0Y9XI&g27+JlPB;e1X%arkXDyu`v+ut-=&@}P?7}ass_iJ3Z71$8 z(3IP?wKm%qyFUS6Z*Q8POAHmgiR~2AL5GCu<9c72_TiZRNL%Hd!mn|zo|7gw|HgB= z5Wi|!?Zmsn?{zx-LRV*jdiPb^Kx`R-@4~G*c@pd~>TGH${H$o&ZC@*R@<+rkxmiEI zfg03tm+^v17DzxFaxNO^kHDYYy3OuhJ#PoLtYpq|1hFIa1!8*T6d^9@UBeh^IP}?o z?+wrY5x35NVt>a!FK11sjya#jbKw_u>AZ5fGbfMQ_Vvq{x4{@!lk=TDexw_}YFthOw%4v+ww;?d+O)`ItEHx-+OTS? zp?wjrWp~B<46?5rOZ6htX+4Wt zl3ZDJ`5bXXhB0RqKcGj`Ck{b}`dNJBtK{{}g$$!!LClrG=Xkw}_(gGcgjll%EOm}Q zh{J;TOZjhKY;%BL^sK~RM}5xm(}!ws%cjTe?04Tf-@|`27cJRWEUaJIG$=f@ll%Ah zx{o+Iq&de_b$?rwsk4vPEVXH@QIP!;Pn-|nQ>+vtSBR=MK+_z%Y7&i%F~?SN7}Th- zp~My!j(uUx7k{vWA8+=4qtKv+I;!e+)5i}e&jSQDOnR(!WXgRMcSY$-+dBDT_EY4< zYKrwk8q~R+F7u!Bv#@EqH*WwX^ELd!7(l*I{y;y^3A7LXLQ9LSd3%m!hzElC8O^Wu zw%mlF$Zj96t0iRvr3b3{5+@74;%4Oyik-BkOnG7gUTTe#cvw&U{oUCqE9P$_bIgY_ zZ*+@!*V9KnxA&LKw+!{^sf=AZBH7Jh!y9OtOVNBlvMi4YYB34b;NZJzK*C$coNkC; z^^X)ekk<3aejGQVh20NRw~jMc7eN;0vX1D&nd4BqKqaapm|rQhv)1Ca zUAuhVzCV7@_HJH<{!Q?jrE2QZiImGB^9jt2#Hqt1H2*tVvP6oBx$Sv>r7fQY{aKSzCwYSY>Q8H8q67ca=ZN$!*&o&4H5U@%*RkxLuiM0a zXwIc^;xOAoJr8Gx-ZOtqeZLaF=6w_!C?CkP!4z6MHuKb>&urbIX}(S^0$;P#lag$c z$e`9DXq}e$qxF%ZLHC*x@JF!?+1G~JiZ`=%6zr;}`Z_AG%kLCWN6A`|dZU{AA)J*5Oe{b>C|I`;=s}PN0vrRNb!(m@XfBXBuS-9kv~ASTX4Svucp}WxM&Z5Y zZ9P^-#=PEuosu3#G%q!7F!QWa?89Y??9B1QkhR_E9;^*izRi1~L6OPVg66qtzD@+X zix$#T@hQ)GyUVOc`eNJr)bP{3UL&V@H`y2Q*mVSX6Hh|??7LhbA6grr^_#lCam+y5 zwQW6gZi5fZWg>Tar^i9?M71wBfLKWBg02;vAIyU`-?4Kij@bHl=UImJVL5D7X2KBG zy$+_vHpp_c6#XZd>z@amWj|FzZDvh_-c!9*U~SU<7b7Nn-&KVR{ALH8}#0FOP&__OdQg$~F*NN1$08Dt^D`TEyJSmEw9 zXu#SN#-+7QTC3;pcl->1xot*-dWf^hxH^K@Vmqug7~QQEUnT_2 z6Y&z@2C;$0seC~#{1xD%j&<#6Eqvy2TlFgYTkyH{0I$}|N&bXAkWqNV`-;>pSb%DC zYR7|D^RGdUqr6qIfc%mBq;A}SKhQc-_Y2^cf6gGI-|XE94Q@bp^&RMd)^zb=A8IA8 z5Wi>=(&d@q=Y5jB;C-?SqI;l!{tm8%?{CH)YaLKjv18fB3$J1y`M{^)59LGa73MIv zapve(R&2XR|JXy(SNcxNOIE?Ec7JSv9CUC^ze@T%Y2R;t!auTuAzi%=t7DqWq-41>BiDf5`wwi&`X?P26uYYQbFL*kB$w6SZf7>Ngwh{C7uK+tUip617nD z6#UYO%Gjuq*S;o5{Oab}lXc(;(EXD77JlVlT7%*=mpcHd}pp*V2xT4KU07PZK8dd2Z0X^#^7TN z?IUA)ruY>D(d7TN)>iA@BvYKUHgYc2uh-7cS}k#0RI#1%9qBsQg-L5874!WT{PG3L z&Gb!$zO~3=3pU`Zn*It63N7$mepvGY=!1M8Tk$~ttAyRtuTmbKB>RrRpLqN~LElq2zO;33&45>ZJ+|;%7}-}1&SPBm1G`=!|Jb=O7Z0}3$ZbD4 zDBsr95fzal&uG_IT9yuP6^y z^LL;JFdyT>x*OJlpX6JKB{P%QyFQ*bi@z@Svi0y@@wm%@j-~(Q7TUS{+xzxkIZOlJ z8pQav*%Hg!>^)(-60 zXg4pNg&(X1MIRM|XoX}8qM*`KKZ= zSgF`zH-0{6ySJ>i8FkcO$#Ims#F=YI6Su2&6xPxz$LhK*9Z>7WP{tLW_w6Ijsm}-Q zxqmEKkiD5xTg`V$Ior!O8Rzj4g;rt(Vpd-}2Nu~#;SXuxKC65j_zw9-sdHdI6mP2z zuRc_F)|%m_?@#c}$3|N^Cu0qKYou?jJhw(S6|-x7pJM#SjrGyzg}1Wl`O0JV!T76l z<$L`5C-&XeQnQ&|H`Z1{hmXmhj}U`gZ#v^OixM?seZK$&Tt0$tBfuw&G{vzbkPtvy zVrIS*%iq0Wm(QFe{`}ZJTDzRJozv`1z7>qI&Mk^u=lBLHF@*K$qF+XOj{U#oi&L= z7#IB396Q)0=M9=)Xa2&!Ib`3zo5T+MYWxr5dE)W!!>?~$bJVQ#ZItYe+X`%E4BJyr zexK(1*eL!Y%i7=hiAlC>cGBJ_2i(5uZQHqS32mwEShK{oEMI6F7SFcj)co|FMTT{w zs&(p{Hn+8m*=3t|1m7Uar|}(U%FR{Fj8R{#(>HID zd-i?(D>Tvky|3$jB5xm(>qp-E`}m(_{zGff)iiGTOVza_16Au%U71=vJ~P93GmJZf zzGT6YgLgT2l}27;`o=`-v!R`2+vNy6;-l)e%GpJOdgAd2b=~-A^sSn;72vPM?o01d X#OQjr==*#4|M33@@XzD_UljNs;o9*7 literal 0 HcmV?d00001 diff --git a/cmake/canary.rc b/cmake/canary.rc new file mode 100644 index 00000000000..75976835ab1 --- /dev/null +++ b/cmake/canary.rc @@ -0,0 +1 @@ +MAINICON ICON "canary.ico" diff --git a/cmake/otservbr-global.ico b/cmake/otservbr-global.ico deleted file mode 100644 index ec405a77387bbe821c9fce2d2c737c1b94e7b6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82179 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%0DB+6@9KI`Tv~^{&%Nck=ybC8nTI`(Q;&{wI96)A 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 YPlsS;`}_OAI697c;HU@wbMArv9~j!gh5!Hn diff --git a/cmake/otservbr-global.rc b/cmake/otservbr-global.rc deleted file mode 100644 index 451ad09fabe..00000000000 --- a/cmake/otservbr-global.rc +++ /dev/null @@ -1 +0,0 @@ -MAINICON ICON "otservbr-global.ico" diff --git a/data/XML/events.xml b/data/XML/events.xml index 6cec9c04060..c59ad0b4609 100644 --- a/data/XML/events.xml +++ b/data/XML/events.xml @@ -1,12 +1,12 @@ - +
- + diff --git a/data/lib/core/position.lua b/data/lib/core/position.lua index 24b5417ea2e..54bd3d13ea4 100644 --- a/data/lib/core/position.lua +++ b/data/lib/core/position.lua @@ -1,4 +1,3 @@ --- Functions from The Forgotten Server Position.directionOffset = { [DIRECTION_NORTH] = {x = 0, y = -1}, [DIRECTION_EAST] = {x = 1, y = 0}, @@ -48,7 +47,6 @@ function Position:moveUpstairs() return self end --- Functions from OTServBR-Global function Position:isInRange(from, to) -- No matter what corner from and to is, we want to make -- life easier by calculating north-west and south-east diff --git a/data/lib/core/tile.lua b/data/lib/core/tile.lua index bdfb65a0220..78ea0ecb898 100644 --- a/data/lib/core/tile.lua +++ b/data/lib/core/tile.lua @@ -59,7 +59,6 @@ function Tile:isWalkable(pz, creature, floorchange, block, proj) return true end --- Functions from OTServbr-Global function Tile.isHouse(self) local house = self:getHouse() return not not house diff --git a/data/scripts/talkactions/god/count_monsters.lua b/data/scripts/talkactions/god/count_monsters.lua index 628ece5ca01..bc4e1e2406e 100644 --- a/data/scripts/talkactions/god/count_monsters.lua +++ b/data/scripts/talkactions/god/count_monsters.lua @@ -1,4 +1,4 @@ -local xml_monster_dir = 'data/world/otservbr-spawn.xml' -- Diretório do arquivo onde contém os monstros. +local xml_monster_dir = 'data/world/canary-monster.xml' local new_file_name = 'monster_count.txt' local count_monsters = TalkAction("/countmonsters") diff --git a/data/startup/others/functions.lua b/data/startup/others/functions.lua index 498c68399dd..3e5ad8ff82d 100644 --- a/data/startup/others/functions.lua +++ b/data/startup/others/functions.lua @@ -136,23 +136,6 @@ function loadLuaMapBookDocument(tablename) end end ---[[ --- NOTE: THIS FUNCTION IS DESATIVATED, NPCS IS NOW BY XML (world/otservbr-npc.xml) -function loadLuaNpcs(tablename) - for index, value in pairs(tablename) do - if value.name and value.position then - local spawn = Game.createNpc(value.name, value.position) - if spawn then - spawn:setMasterPos(value.position) - Game.setStorageValue(Storage.NpcSpawn, 1) - end - end - end - Spdlog.info("Loaded ".. (#NpcTable) .." npcs and spawned ".. Game.getMonsterCount() .." monsters") - Spdlog.info("Loaded ".. #Game.getTowns() .. " towns with ".. #Game.getHouses() .." houses in total") -end -]] - -- Functions that cannot be used in reload command, so they have been moved here -- Prey slots consumption function preyTimeLeft(player, slot) diff --git a/docker/data/login.py b/docker/data/login.py index 4d36df3e98d..43762ca6f69 100755 --- a/docker/data/login.py +++ b/docker/data/login.py @@ -86,7 +86,7 @@ def do_login(data): 'worlds': [ { 'id': 0, - 'name': os.getenv('SERVER_NAME', 'OTServBR-Global'), + 'name': os.getenv('SERVER_NAME', 'Canary'), 'externaladdressprotected': os.getenv('PROXY_IP', '127.0.0.1'), 'externalportprotected': int(os.getenv('SERVER_GAME_PORT', 7172)), 'externaladdressunprotected': os.getenv('PROXY_IP', '127.0.0.1'), diff --git a/docker/server/Dockerfile b/docker/server/Dockerfile index ac43bf377e5..af14cfcf8c9 100644 --- a/docker/server/Dockerfile +++ b/docker/server/Dockerfile @@ -32,12 +32,12 @@ RUN cmake -DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake .. # Stage 3: load data and execute FROM build -COPY --from=build /srv/build/bin/otbr /bin/otbr -COPY LICENSE *.sql key.pem /otbr/ -COPY data /otbr/data -COPY config.lua.dist /otbr/config.lua +COPY --from=build /srv/build/bin/canary /bin/canary +COPY LICENSE *.sql key.pem /canary/ +COPY data /canary/data +COPY config.lua.dist /canary/config.lua -WORKDIR /otbr +WORKDIR /canary RUN sed -i '/mysqlHost = .*$/c\mysqlHost = "mysql"' config.lua \ && sed -i '/mysqlUser = .*$/c\mysqlUser = "otserver"' config.lua \ @@ -45,7 +45,7 @@ RUN sed -i '/mysqlHost = .*$/c\mysqlHost = "mysql"' config.lua \ && sed -i '/mysqlDatabase = .*$/c\mysqlDatabase = "otserver"' config.lua \ && unzip -o data/world/world.zip -d data/world/ -VOLUME /otbr +VOLUME /canary -ENTRYPOINT ["/bin/otbr"] +ENTRYPOINT ["/bin/canary"] diff --git a/docker/test-server.sh b/docker/test-server.sh index 271517ea0df..a10afcc3ac9 100755 --- a/docker/test-server.sh +++ b/docker/test-server.sh @@ -64,7 +64,7 @@ mkdir -p build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake .. make -j`nproc` -mv bin/otbr ../ +mv bin/canary ../ cd .. unzip -o data/world/world.zip -d data/world/ diff --git a/recompile.sh b/recompile.sh index 325beb3f8fc..f5b93ed6568 100755 --- a/recompile.sh +++ b/recompile.sh @@ -20,9 +20,9 @@ then else echo "Compilation successful!" cd .. - if [ -f "otbr" ]; then + if [ -f "canary" ]; then echo "Saving old build" - mv ./otbr ./otbr.old + mv ./canary ./canary.old fi - cp ./build/otbr ./otbr + cp ./build/canary ./canary fi diff --git a/schema.sql b/schema.sql index 2959ac9fc73..ac3686aa6cd 100644 --- a/schema.sql +++ b/schema.sql @@ -1,5 +1,5 @@ -- --- OTServBR - Global - Database schema +--Canary - Database schema -- -- -------------------------------------------------------- diff --git a/sonar-project.properties b/sonar-project.properties index 59732074762..fef6c622ec4 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,6 +1,6 @@ -sonar.projectKey=opentibiabr_otservbr-global +sonar.projectKey=opentibiabr_canary sonar.organization=opentibiabr -sonar.projectName=otservbr-global +sonar.projectName=canary sonar.projectVersion=1.0 sonar.sources=src sonar.sourceEncoding=UTF-8 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 020cd4808cc..17c7730caad 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -project(otbr) +project(canary) # ***************************************************************************** # Cmake Features @@ -31,7 +31,7 @@ option(DEBUG_LOG "Enable Debug Log" OFF) # Client # ***************************************************************************** if (MSVC) - add_executable(${PROJECT_NAME} "" ../cmake/otservbr-global.rc) + add_executable(${PROJECT_NAME} "" ../cmake/canary.rc) else() add_executable(${PROJECT_NAME} "") endif() diff --git a/src/config/configmanager.cpp b/src/config/configmanager.cpp index 3f51da124e2..d37a2e05736 100644 --- a/src/config/configmanager.cpp +++ b/src/config/configmanager.cpp @@ -116,8 +116,8 @@ bool ConfigManager::load() boolean[OPTIMIZE_DATABASE] = getGlobalBoolean(L, "startupDatabaseOptimization", true); string[IP] = getGlobalString(L, "ip", "127.0.0.1"); - string[MAP_NAME] = getGlobalString(L, "mapName", "otservbr"); - string[MAP_AUTHOR] = getGlobalString(L, "mapAuthor", "OTServBR"); + string[MAP_NAME] = getGlobalString(L, "mapName", "canary"); + string[MAP_AUTHOR] = getGlobalString(L, "mapAuthor", "Eduardo Dantas"); string[MAP_CUSTOM_NAME] = getGlobalString(L, "mapCustomName", ""); string[MAP_CUSTOM_FILE] = getGlobalString(L, "mapCustomFile", ""); @@ -129,7 +129,7 @@ bool ConfigManager::load() string[MYSQL_HOST] = getGlobalString(L, "mysqlHost", "127.0.0.1"); string[MYSQL_USER] = getGlobalString(L, "mysqlUser", "root"); string[MYSQL_PASS] = getGlobalString(L, "mysqlPass", ""); - string[MYSQL_DB] = getGlobalString(L, "mysqlDatabase", "otservbr-global"); + string[MYSQL_DB] = getGlobalString(L, "mysqlDatabase", "canary"); string[MYSQL_SOCK] = getGlobalString(L, "mysqlSock", ""); string[CLIENT_VERSION_STR] = getGlobalString(L, "clientVersionStr", "12.64"); diff --git a/src/icon/otservbr-global.ico b/src/icon/otservbr-global.ico deleted file mode 100644 index ec405a77387bbe821c9fce2d2c737c1b94e7b6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82179 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%0DB+6@9KI`Tv~^{&%Nck=ybC8nTI`(Q;&{wI96)A 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 YPlsS;`}_OAI697c;HU@wbMArv9~j!gh5!Hn diff --git a/src/lua/callbacks/creaturecallback.cpp b/src/lua/callbacks/creaturecallback.cpp index 7e19dde128b..d8d3bb78b32 100644 --- a/src/lua/callbacks/creaturecallback.cpp +++ b/src/lua/callbacks/creaturecallback.cpp @@ -1,6 +1,6 @@ /** * @file creaturecallback.h - * OTBR + * OpenTibiaBR * Copyright (C) 2021 Lucas Grossi * * This program is free software; you can redistribute it and/or modify diff --git a/src/lua/callbacks/creaturecallback.h b/src/lua/callbacks/creaturecallback.h index a42eda16c95..47a58a30959 100644 --- a/src/lua/callbacks/creaturecallback.h +++ b/src/lua/callbacks/creaturecallback.h @@ -1,6 +1,6 @@ /** * @file creaturecallback.h - * OTBR + * OpenTibiaBR * Copyright (C) 2021 Lucas Grossi * * This program is free software; you can redistribute it and/or modify diff --git a/src/lua/scripts/luascript.cpp b/src/lua/scripts/luascript.cpp index 82fef0c9fa9..a172e4efb81 100644 --- a/src/lua/scripts/luascript.cpp +++ b/src/lua/scripts/luascript.cpp @@ -5068,7 +5068,7 @@ int LuaScriptInterface::luaGameGetBestiaryList(lua_State* L) } } else { if (isNumber(L, 2)) { - std::map tmplist = g_bestiary.findRaceByName("OTBR", false, getNumber(L, 2)); + std::map tmplist = g_bestiary.findRaceByName("CANARY", false, getNumber(L, 2)); for (auto itb : tmplist) { if (name) { pushString(L, itb.second); diff --git a/src/otserv.cpp b/src/otserv.cpp index 0a93e94f3b0..eca8f9da773 100644 --- a/src/otserv.cpp +++ b/src/otserv.cpp @@ -181,7 +181,7 @@ void loadModules() { #ifndef UNIT_TESTING int main(int argc, char* argv[]) { #ifdef DEBUG_LOG - SPDLOG_DEBUG("[OTBR] SPDLOG LOG DEBUG ENABLED"); + SPDLOG_DEBUG("[CANARY] SPDLOG LOG DEBUG ENABLED"); spdlog::set_pattern("[%Y-%d-%m %H:%M:%S.%e] [file %@] [func %!] [thread %t] [%^%l%$] %v "); #else spdlog::set_pattern("[%Y-%d-%m %H:%M:%S.%e] [%^%l%$] %v "); diff --git a/src/otservbr-global.rc b/src/otservbr-global.rc deleted file mode 100644 index 5a8d971f37a..00000000000 --- a/src/otservbr-global.rc +++ /dev/null @@ -1 +0,0 @@ -MAINICON ICON "icon/otservbr-global.ico" diff --git a/src/server/network/webhook/webhook.cpp b/src/server/network/webhook/webhook.cpp index 4ba31d46313..f9463cfc22e 100644 --- a/src/server/network/webhook/webhook.cpp +++ b/src/server/network/webhook/webhook.cpp @@ -135,7 +135,7 @@ static int webhook_send_message_(const char *url, const char *payload, std::stri curl_easy_setopt(curl, CURLOPT_WRITEDATA, reinterpret_cast(&response_body)); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - curl_easy_setopt(curl, CURLOPT_USERAGENT, "otservbr-global (https://github.com/Hydractify/otservbr-global)"); + curl_easy_setopt(curl, CURLOPT_USERAGENT, "canary (https://github.com/Hydractify/canary)"); CURLcode res = curl_easy_perform(curl); diff --git a/src/utils/definitions.h b/src/utils/definitions.h index c6ca323d542..0d4e4462cf9 100644 --- a/src/utils/definitions.h +++ b/src/utils/definitions.h @@ -20,9 +20,9 @@ #ifndef FS_DEFINITIONS_H_877452FEC245450C9F96B8FD268D8963 #define FS_DEFINITIONS_H_877452FEC245450C9F96B8FD268D8963 -static constexpr auto STATUS_SERVER_NAME = "OTServBR - Global"; +static constexpr auto STATUS_SERVER_NAME = "Canary"; static constexpr auto STATUS_SERVER_VERSION = "TFS 1.3"; -static constexpr auto STATUS_SERVER_DEVELOPERS = "OTServBR-Global Team, Mark Samman and The Forgotten Server Developers"; +static constexpr auto STATUS_SERVER_DEVELOPERS = "OTServBR Team, Mark Samman and The Forgotten Server Developers"; static constexpr auto AUTHENTICATOR_DIGITS = 6U; static constexpr auto AUTHENTICATOR_PERIOD = 30U; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0f2b8158f6f..687aa2ddb11 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -4,21 +4,21 @@ include_directories(SYSTEM ${MYSQL_INCLUDE_DIR} ${LUA_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${PUGIXML_INCLUDE_DIR} ${CRYPTOPP_INCLUDE_DIR}) -project(otbr_unittest) +project(canary_unittest) set(CMAKE_CXX_FLAGS "-pipe -O0 -g -Wno-everything -std=c++11 -lstdc++ -lpthread -ldl") -add_executable(otbr_unittest +add_executable(canary_unittest main.cpp account_test.cpp) -target_compile_definitions(otbr_unittest PUBLIC -DUNIT_TESTING -DDEBUG_LOG) +target_compile_definitions(canary_unittest PUBLIC -DUNIT_TESTING -DDEBUG_LOG) -target_link_libraries(otbr_unittest Catch2::Catch2 otbr_lib ${MYSQL_CLIENT_LIBS} ${LUA_LIBRARIES} +target_link_libraries(canary_unittest Catch2::Catch2 canary_lib ${MYSQL_CLIENT_LIBS} ${LUA_LIBRARIES} ${Boost_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${PUGIXML_LIBRARIES} ${CRYPTOPP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) include(CTest) include(Catch) -catch_discover_tests(otbr_unittest) +catch_discover_tests(canary_unittest) diff --git a/tests/build_and_run.sh b/tests/build_and_run.sh index e66ee0b1194..3d5531ebf0b 100755 --- a/tests/build_and_run.sh +++ b/tests/build_and_run.sh @@ -6,7 +6,7 @@ cd .. mkdir build cd build cmake -DPACKAGE_TESTS=On .. ; make -j`nproc` -./tests/otbr_unittest --reporter compact --success -d yes +./tests/canary_unittest --reporter compact --success -d yes cd .. cd tests docker-compose down --rmi all -v --remove-orphans diff --git a/vcpkg.json b/vcpkg.json index 9d5d13868f0..39e57de5d9e 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,5 +1,5 @@ { - "name": "otbr", + "name": "canary", "version-string": "1.0.0", "dependencies": [ "boost-asio",