diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 545c825..b1a442a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,12 +6,12 @@ jobs: test: runs-on: ubuntu-latest timeout-minutes: 8 - continue-on-error: ${{ matrix.version == '1.20.1' }} + continue-on-error: ${{ matrix.version == '1.20.2' }} strategy: fail-fast: false matrix: flavor: ['bukkit', 'spigot', 'paper', 'purpur'] - version: ['1.20.1', '1.19.4', '1.18.2', '1.17.1', '1.16.5'] + version: ['1.20.2', '1.19.4', '1.18.2', '1.17.1', '1.16.5'] steps: # Download code from repository - name: Checkout code @@ -39,7 +39,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: '19' + node-version: '20' # Setup automata - name: Setup automata @@ -78,7 +78,7 @@ jobs: # Install dependencies - name: Install plugin dependencies run: | - url="https://github.com/dmulloy2/ProtocolLib/releases/download/5.0.0/ProtocolLib.jar" + url="https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/artifact/build/libs/ProtocolLib.jar" mkdir -p ./server/plugins/ProtocolLib wget -q "$url" -O ./server/plugins/ProtocolLib.jar echo -e "global:\n auto updater:\n notify: false\n download: false" > ./server/plugins/ProtocolLib/config.yml diff --git a/README.md b/README.md index c666a0d..15b22c2 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Here are the Minecraft distributions where Yamipa should be able to run: | 1.17 & 1.17.1 | ✅ | ✅ | ✅ | | 1.18 & 1.18.x | ✅ | ✅ | ✅ | | 1.19 & 1.19.x | ✅ | ✅ | ✅ | -| 1.20 & 1.20.1 | ✅ | ✅ | ✅ | +| 1.20 & 1.20.x | ✅ | ✅ | ✅ | ## Configuration Yamipa is ready-to-go right out of the box. By default, it creates the following files and directories under the @@ -134,6 +134,7 @@ The supported plugins are: - [WorldGuard](https://enginehub.org/worldguard/) - [GriefPrevention](https://www.spigotmc.org/resources/griefprevention.1884/) - [Towny Advanced](https://townyadvanced.github.io/) +- [Lands](https://www.spigotmc.org/resources/53313/) ## Flags Images from this plugin have a set of boolean attributes called "flags" that modify its behavior. Possible values are: diff --git a/automata/package-lock.json b/automata/package-lock.json index 103fc3d..c49cd42 100644 --- a/automata/package-lock.json +++ b/automata/package-lock.json @@ -6,40 +6,43 @@ "": { "name": "@yamipa/automata", "dependencies": { - "mineflayer": "^4.9.0", + "mineflayer": "^4.14.0", "rcon-client": "^4.2.3" } }, "node_modules/@azure/msal-common": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.1.0.tgz", - "integrity": "sha512-wj+ULrRB0HTuMmtrMjg8j3guCx32GE2BCPbsMCZkHgL1BZetC3o/Su5UJEQMX1HNc9CrIaQNx5WaKWHygYDe0g==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.1.0.tgz", + "integrity": "sha512-xphmhcfl5VL+uq5//VKMwQn+wfEZLMKNpFCcMi8Ur8ej5UT166g6chBsxgMzc9xo9Y24R9FB3m/tjDiV03xMIA==", "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-node": { - "version": "1.17.3", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.17.3.tgz", - "integrity": "sha512-slsa+388bQQWnWH1V91KL+zV57rIp/0OQFfF0EmVMY8gnEIkAnpWWFUVBTTMbxEyjEFMk5ZW9xiHvHBcYFHzDw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.2.0.tgz", + "integrity": "sha512-aZZ1m7OATOR9kz7+/Kl+/LZrNEj+HYaEH84XZfnBtN/9JPRazngk1XTjvAkh7W1u/O/yQrlYiiSwSAKHnNBc8A==", "dependencies": { - "@azure/msal-common": "13.1.0", + "@azure/msal-common": "14.1.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, "engines": { - "node": "10 || 12 || 14 || 16 || 18" + "node": "18 || 20" } }, "node_modules/@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==" + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "dependencies": { + "undici-types": "~5.25.1" + } }, "node_modules/@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.3.tgz", + "integrity": "sha512-Z8BOzyIj3UPpn3j5DmDNKIw4wPN9N8a1d1oyteiprWq+wxdgQNC0UfFAQwWjmjyA7uoj7mvoWgxWWH66zYtm4Q==", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -227,9 +230,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "funding": [ { "type": "individual", @@ -270,9 +273,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/jose": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", - "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.3.tgz", + "integrity": "sha512-RZJdL9Qjd1sqNdyiVteRGV/bnWtik/+PJh1JP4kT6+x1QQMn+7ryueRys5BEueuayvSVY8CWGCisCDazeRLTuw==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -283,14 +286,20 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "dependencies": { "jws": "^3.2.2", - "lodash": "^4.17.21", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", "ms": "^2.1.1", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">=12", @@ -316,21 +325,51 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/lodash.reduce": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", @@ -353,9 +392,9 @@ "integrity": "sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==" }, "node_modules/minecraft-data": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/minecraft-data/-/minecraft-data-3.36.1.tgz", - "integrity": "sha512-sZSvRQ5gROFopz6DAJORyDgydP+64qF9yREl5vYH7BYIUXn4xiwdVzQUL7KMdXuCPtHReVy92EANZOsuYCFDFg==" + "version": "3.46.2", + "resolved": "https://registry.npmjs.org/minecraft-data/-/minecraft-data-3.46.2.tgz", + "integrity": "sha512-vunI/l5mqjU7FisB5iFxcNl6BkKLzELUvsP5P4gpUOAUtTWXEUYTnVg9jdIFOl7Y2zw3TxG2RHDa0h0ScnRCEA==" }, "node_modules/minecraft-folder-path": { "version": "1.2.0", @@ -363,18 +402,18 @@ "integrity": "sha512-qaUSbKWoOsH9brn0JQuBhxNAzTDMwrOXorwuRxdJKKKDYvZhtml+6GVCUrY5HRiEsieBEjCUnhVpDuQiKsiFaw==" }, "node_modules/minecraft-protocol": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/minecraft-protocol/-/minecraft-protocol-1.42.0.tgz", - "integrity": "sha512-AdPqW0n0G5wkNunen98XRRvVuuMVbig7R6RmZWO5+ISEj2+JElj2DoLLQDEygVw7IMi3wofTOf6wAtVrrxTJ5Q==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/minecraft-protocol/-/minecraft-protocol-1.44.0.tgz", + "integrity": "sha512-sYu4fFzUKt3spPG5tAdkaB9sNQPT0sV6fyS0sS7/nxdzFfjmLhF6BLNC+32ieK4/MhgNyHtH6xusD0Bi0Roq9w==", "dependencies": { - "@types/readable-stream": "^2.3.13", + "@types/readable-stream": "^4.0.0", "aes-js": "^3.1.2", "buffer-equal": "^1.0.0", "debug": "^4.3.2", "endian-toggle": "^0.0.0", "lodash.get": "^4.1.2", "lodash.merge": "^4.3.0", - "minecraft-data": "^3.34.0", + "minecraft-data": "^3.37.0", "minecraft-folder-path": "^1.2.0", "node-fetch": "^2.6.1", "node-rsa": "^0.4.2", @@ -391,23 +430,23 @@ } }, "node_modules/mineflayer": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/mineflayer/-/mineflayer-4.9.0.tgz", - "integrity": "sha512-fi/WuMthVCalQJuTXB2NKssepbj/U/g0zA4PUrSnhWLWDNZABn551Be/IrNuanfwOm4XcRMNTrQAtljkE8esWg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mineflayer/-/mineflayer-4.14.0.tgz", + "integrity": "sha512-4EYzUmZNxH3Gpz3GkgO2eaR90ANb50nVhMCU2y6Rl1Ru8M6HqxID1Eg7tRgsodfAOD+AKh5SPwmPnISLcxvnOA==", "dependencies": { - "minecraft-data": "^3.26.0", - "minecraft-protocol": "^1.42.0", + "minecraft-data": "^3.44.0", + "minecraft-protocol": "^1.44.0", "prismarine-biome": "^1.1.1", - "prismarine-block": "^1.13.1", + "prismarine-block": "^1.17.0", "prismarine-chat": "^1.7.1", - "prismarine-chunk": "^1.32.0", - "prismarine-entity": "^2.2.0", - "prismarine-item": "^1.12.1", + "prismarine-chunk": "^1.34.0", + "prismarine-entity": "^2.3.0", + "prismarine-item": "^1.14.0", "prismarine-nbt": "^2.0.0", - "prismarine-physics": "^1.3.1", + "prismarine-physics": "^1.8.0", "prismarine-recipe": "^1.3.0", "prismarine-registry": "^1.5.0", - "prismarine-windows": "^2.5.0", + "prismarine-windows": "^2.8.0", "prismarine-world": "^3.6.0", "protodef": "^1.14.0", "typed-emitter": "^1.0.0", @@ -418,9 +457,9 @@ } }, "node_modules/mojangson": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mojangson/-/mojangson-2.0.2.tgz", - "integrity": "sha512-iGPRE1Ez+W+42Dt4Ao91c9VVs+FmuRUlAFDef76xRX3mbZrTNuezDtFI0PbfYqheg/B0fSiq0Q0V1emZNt37cw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mojangson/-/mojangson-2.0.4.tgz", + "integrity": "sha512-HYmhgDjr1gzF7trGgvcC/huIg2L8FsVbi/KacRe6r1AswbboGVZDS47SOZlomPuMWvZLas8m9vuHHucdZMwTmQ==", "dependencies": { "nearley": "^2.19.5" } @@ -457,9 +496,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -484,11 +523,11 @@ } }, "node_modules/prismarine-auth": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prismarine-auth/-/prismarine-auth-2.2.0.tgz", - "integrity": "sha512-3XfR3bqrd7nrTVyEqMwuYRr+/Vy+hkfBplubSDuoRAcRCs90lDx7R4EG3fjMSoKY53RLTXjeFnsB6m1krhL/2A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prismarine-auth/-/prismarine-auth-2.3.0.tgz", + "integrity": "sha512-giKZiHwuQdpMJ7KX94UncOJqM3u+yqKIR2UI/rqmdmFUuQilV9vhlz/zehpVkvo7FE8gmZsuUMCUPhI+gtgd3A==", "dependencies": { - "@azure/msal-node": "^1.1.0", + "@azure/msal-node": "^2.0.2", "@xboxreplay/xboxlive-auth": "^3.3.3", "debug": "^4.3.3", "jose": "^4.1.4", @@ -507,11 +546,11 @@ } }, "node_modules/prismarine-block": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prismarine-block/-/prismarine-block-1.16.3.tgz", - "integrity": "sha512-E9OazjIqnEgcXM6me6EIeQFMcNRWZzsaftWtetRSIKVoW+4UKWleb6lTNKh9kq7wNxciKavcYBmKL3sF7HfSaA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prismarine-block/-/prismarine-block-1.17.0.tgz", + "integrity": "sha512-GawzWU91pH4sLTtMvrRe2wiEbO8hgTRwViCBYoFmmqeJYLiblq4GfXOvclj3rEAEdAAVzRKCQxQHpLJhhLWssg==", "dependencies": { - "minecraft-data": "^3.0.0", + "minecraft-data": "^3.38.0", "prismarine-biome": "^1.1.0", "prismarine-chat": "^1.5.0", "prismarine-item": "^1.10.1", @@ -531,9 +570,9 @@ } }, "node_modules/prismarine-chunk": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/prismarine-chunk/-/prismarine-chunk-1.33.0.tgz", - "integrity": "sha512-oTkhyE8EWV5mMOaUyCACiUUtx1270Mo18Ryj+t5Y8dglT4QfVwBsYeph+O40kNL9TK5cTW1lFYg5vr2rWuFGnw==", + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/prismarine-chunk/-/prismarine-chunk-1.34.0.tgz", + "integrity": "sha512-5RuQk8w9Ot550G5mmUFZvjpHugEXozgEFXiAhynrBCHOKJ3mMQ7VvhWF2irtjx+d2t29yDAiSEiSS34vxAmODQ==", "dependencies": { "prismarine-biome": "^1.2.0", "prismarine-block": "^1.14.1", @@ -549,11 +588,10 @@ } }, "node_modules/prismarine-entity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prismarine-entity/-/prismarine-entity-2.2.0.tgz", - "integrity": "sha512-boqJbMpGHG2ddFUUo9aKkKPUHQbFMWkUCw8SRdZ+jrZxABsstL9619I8ujwPYoOMJjMyfYWgdEPNyHGiUqqukA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prismarine-entity/-/prismarine-entity-2.3.1.tgz", + "integrity": "sha512-HOv8l7IetHNf4hwZ7V/W4vM3GNl+e6VCtKDkH9h02TRq7jWngsggKtJV+VanCce/sNwtJUhJDjORGs728ep4MA==", "dependencies": { - "minecraft-data": "^3.0.0", "prismarine-chat": "^1.4.1", "prismarine-item": "^1.11.2", "prismarine-registry": "^1.4.0", @@ -561,9 +599,9 @@ } }, "node_modules/prismarine-item": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/prismarine-item/-/prismarine-item-1.12.1.tgz", - "integrity": "sha512-Q+cV8WCM6gTO/K8gIpe4sTCVj0wdXy/IIctpQhgj4iRPoRY/rLCI88FAGsLNU1cabOFQDO3a0NIz+KLvhOvbQA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/prismarine-item/-/prismarine-item-1.14.0.tgz", + "integrity": "sha512-udQHYGJ05klFe8Kkc0TOmwoXj5Xl1ZPgHVoMbGUAFB9exN4TFxEa1A39vkSYhxP5Et9PNufQQvFBFVom0nXikA==", "dependencies": { "prismarine-nbt": "^2.0.0", "prismarine-registry": "^1.4.0" @@ -578,9 +616,9 @@ } }, "node_modules/prismarine-physics": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prismarine-physics/-/prismarine-physics-1.6.0.tgz", - "integrity": "sha512-OqhWAt+lQRCxpodAgdRZg/9C815Xy+YUj5a4iPVIRVineD2x8UuUxCJInE4R8kFFs9PhupNtiXzgEtdmbUB/Mw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/prismarine-physics/-/prismarine-physics-1.8.0.tgz", + "integrity": "sha512-gbM+S+bmVtOKVv+Z0WGaHMeEeBHISIDsRDRlv8sr0dex3ZJRhuq8djA02CBreguXtI18ZKh6q3TSj2qDr45NHA==", "dependencies": { "minecraft-data": "^3.0.0", "prismarine-nbt": "^2.0.0", @@ -605,28 +643,39 @@ } }, "node_modules/prismarine-registry": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prismarine-registry/-/prismarine-registry-1.6.0.tgz", - "integrity": "sha512-oduDRuwa5rXT8CkPeMSlBsuBzxZF9oRsDpFK0oBStpIoNwSuTqqGGGgLlyL20OS2O9pmqYpOMlmG80CW4uuKJw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/prismarine-registry/-/prismarine-registry-1.7.0.tgz", + "integrity": "sha512-yyva0FpWI078nNeMhx8ekVza5uUTYhEv+C+ADu3wUQXiG8qhXkvrf0uzsnhTgZL8BLdsi2axgCEiKw9qSKIuxQ==", "dependencies": { "minecraft-data": "^3.0.0", "prismarine-nbt": "^2.0.0" } }, "node_modules/prismarine-windows": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/prismarine-windows/-/prismarine-windows-2.6.1.tgz", - "integrity": "sha512-5B8+W4Zb9MWaakd38I/WW564zEgat6bC23ftcv15yVYmHZTq8mtUfX2GsOUD3Pu/aFKarvXpyyJahFMUTUVoXg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prismarine-windows/-/prismarine-windows-2.8.0.tgz", + "integrity": "sha512-9HVhJ8tfCeRubYwQzgz8oiHNAebMJ5hDdjm45PZwrOgewaislnR2HDsbPMWiCcyWkYL7J8bVLVoSzEzv5pH98g==", "dependencies": { - "prismarine-item": "^1.5.0", - "prismarine-registry": "^1.5.0", - "typed-emitter": "^1.0.0" + "prismarine-item": "^1.12.2", + "prismarine-registry": "^1.7.0", + "typed-emitter": "^2.1.0" + } + }, + "node_modules/prismarine-windows/node_modules/typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "dependencies": { + "rxjs": "*" + }, + "optionalDependencies": { + "rxjs": "*" } }, "node_modules/prismarine-world": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/prismarine-world/-/prismarine-world-3.6.1.tgz", - "integrity": "sha512-sv7rR+vJ/ac3/dm4MoumreL4eqMi3B+h8I+JDYXQkNCdSJJISniQvi5qS4zTnAUCGXx/N6QfQ02bjBfyEoZuRw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prismarine-world/-/prismarine-world-3.6.2.tgz", + "integrity": "sha512-xNNo3bd8EnCMjiPbVrh3jYa1Upa8Krkb13BgO7FOOfD5ZYf+iYDZewBtDbHYWzZZB2N0JlTtimMOHRhZhDJirw==", "dependencies": { "vec3": "^0.1.7" }, @@ -668,9 +717,9 @@ } }, "node_modules/protodef/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -719,14 +768,15 @@ "integrity": "sha512-Tfay0l6gJMP5rkil8CzGbLthukn+9BN/VXWcABVFPjOoelJ+koW8BuPZYk+h/L+lEeIp1fSzVRiWRPIjKVjPdg==" }, "node_modules/readable-stream": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.0.tgz", - "integrity": "sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", - "process": "^0.11.10" + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -740,15 +790,24 @@ "node": ">=0.12" } }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "optional": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -800,6 +859,12 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "optional": true + }, "node_modules/typed-emitter": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-1.4.0.tgz", @@ -810,6 +875,11 @@ "resolved": "https://registry.npmjs.org/uint4/-/uint4-0.1.2.tgz", "integrity": "sha512-lhEx78gdTwFWG+mt6cWAZD/R6qrIj0TTBeH5xwyuDJyswLNlGe+KVlUPQ6+mx5Ld332pS0AMUTo9hIly7YsWxQ==" }, + "node_modules/undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -840,9 +910,9 @@ } }, "node_modules/vec3": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/vec3/-/vec3-0.1.7.tgz", - "integrity": "sha512-EZSeXBL+L3go2wWwtQQse4fEcNGIQjT14qvi4LYVj1ifZt/J5XZ1QZqkDuOVVH07YwTEIFbsAv3pzwUpF7x9Wg==" + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/vec3/-/vec3-0.1.8.tgz", + "integrity": "sha512-LfKrP625Bsg/Tj52YdYPsHmpsJuo+tc6fLxZxXjEo9k2xSspKlPvoYTHehykKhp1FvV9nm+XU3Ehej5/9tpDCg==" }, "node_modules/webidl-conversions": { "version": "3.0.1", @@ -880,29 +950,32 @@ }, "dependencies": { "@azure/msal-common": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.1.0.tgz", - "integrity": "sha512-wj+ULrRB0HTuMmtrMjg8j3guCx32GE2BCPbsMCZkHgL1BZetC3o/Su5UJEQMX1HNc9CrIaQNx5WaKWHygYDe0g==" + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.1.0.tgz", + "integrity": "sha512-xphmhcfl5VL+uq5//VKMwQn+wfEZLMKNpFCcMi8Ur8ej5UT166g6chBsxgMzc9xo9Y24R9FB3m/tjDiV03xMIA==" }, "@azure/msal-node": { - "version": "1.17.3", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.17.3.tgz", - "integrity": "sha512-slsa+388bQQWnWH1V91KL+zV57rIp/0OQFfF0EmVMY8gnEIkAnpWWFUVBTTMbxEyjEFMk5ZW9xiHvHBcYFHzDw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.2.0.tgz", + "integrity": "sha512-aZZ1m7OATOR9kz7+/Kl+/LZrNEj+HYaEH84XZfnBtN/9JPRazngk1XTjvAkh7W1u/O/yQrlYiiSwSAKHnNBc8A==", "requires": { - "@azure/msal-common": "13.1.0", + "@azure/msal-common": "14.1.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" } }, "@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==" + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "requires": { + "undici-types": "~5.25.1" + } }, "@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.3.tgz", + "integrity": "sha512-Z8BOzyIj3UPpn3j5DmDNKIw4wPN9N8a1d1oyteiprWq+wxdgQNC0UfFAQwWjmjyA7uoj7mvoWgxWWH66zYtm4Q==", "requires": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -1035,9 +1108,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" }, "ieee754": { "version": "1.2.1", @@ -1050,9 +1123,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "jose": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", - "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==" + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.3.tgz", + "integrity": "sha512-RZJdL9Qjd1sqNdyiVteRGV/bnWtik/+PJh1JP4kT6+x1QQMn+7ryueRys5BEueuayvSVY8CWGCisCDazeRLTuw==" }, "json-schema-traverse": { "version": "0.4.1", @@ -1060,14 +1133,20 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "requires": { "jws": "^3.2.2", - "lodash": "^4.17.21", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", "ms": "^2.1.1", - "semver": "^7.3.8" + "semver": "^7.5.4" } }, "jwa": { @@ -1089,21 +1168,51 @@ "safe-buffer": "^5.0.1" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "lodash.reduce": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", @@ -1123,9 +1232,9 @@ "integrity": "sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==" }, "minecraft-data": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/minecraft-data/-/minecraft-data-3.36.1.tgz", - "integrity": "sha512-sZSvRQ5gROFopz6DAJORyDgydP+64qF9yREl5vYH7BYIUXn4xiwdVzQUL7KMdXuCPtHReVy92EANZOsuYCFDFg==" + "version": "3.46.2", + "resolved": "https://registry.npmjs.org/minecraft-data/-/minecraft-data-3.46.2.tgz", + "integrity": "sha512-vunI/l5mqjU7FisB5iFxcNl6BkKLzELUvsP5P4gpUOAUtTWXEUYTnVg9jdIFOl7Y2zw3TxG2RHDa0h0ScnRCEA==" }, "minecraft-folder-path": { "version": "1.2.0", @@ -1133,18 +1242,18 @@ "integrity": "sha512-qaUSbKWoOsH9brn0JQuBhxNAzTDMwrOXorwuRxdJKKKDYvZhtml+6GVCUrY5HRiEsieBEjCUnhVpDuQiKsiFaw==" }, "minecraft-protocol": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/minecraft-protocol/-/minecraft-protocol-1.42.0.tgz", - "integrity": "sha512-AdPqW0n0G5wkNunen98XRRvVuuMVbig7R6RmZWO5+ISEj2+JElj2DoLLQDEygVw7IMi3wofTOf6wAtVrrxTJ5Q==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/minecraft-protocol/-/minecraft-protocol-1.44.0.tgz", + "integrity": "sha512-sYu4fFzUKt3spPG5tAdkaB9sNQPT0sV6fyS0sS7/nxdzFfjmLhF6BLNC+32ieK4/MhgNyHtH6xusD0Bi0Roq9w==", "requires": { - "@types/readable-stream": "^2.3.13", + "@types/readable-stream": "^4.0.0", "aes-js": "^3.1.2", "buffer-equal": "^1.0.0", "debug": "^4.3.2", "endian-toggle": "^0.0.0", "lodash.get": "^4.1.2", "lodash.merge": "^4.3.0", - "minecraft-data": "^3.34.0", + "minecraft-data": "^3.37.0", "minecraft-folder-path": "^1.2.0", "node-fetch": "^2.6.1", "node-rsa": "^0.4.2", @@ -1158,23 +1267,23 @@ } }, "mineflayer": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/mineflayer/-/mineflayer-4.9.0.tgz", - "integrity": "sha512-fi/WuMthVCalQJuTXB2NKssepbj/U/g0zA4PUrSnhWLWDNZABn551Be/IrNuanfwOm4XcRMNTrQAtljkE8esWg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mineflayer/-/mineflayer-4.14.0.tgz", + "integrity": "sha512-4EYzUmZNxH3Gpz3GkgO2eaR90ANb50nVhMCU2y6Rl1Ru8M6HqxID1Eg7tRgsodfAOD+AKh5SPwmPnISLcxvnOA==", "requires": { - "minecraft-data": "^3.26.0", - "minecraft-protocol": "^1.42.0", + "minecraft-data": "^3.44.0", + "minecraft-protocol": "^1.44.0", "prismarine-biome": "^1.1.1", - "prismarine-block": "^1.13.1", + "prismarine-block": "^1.17.0", "prismarine-chat": "^1.7.1", - "prismarine-chunk": "^1.32.0", - "prismarine-entity": "^2.2.0", - "prismarine-item": "^1.12.1", + "prismarine-chunk": "^1.34.0", + "prismarine-entity": "^2.3.0", + "prismarine-item": "^1.14.0", "prismarine-nbt": "^2.0.0", - "prismarine-physics": "^1.3.1", + "prismarine-physics": "^1.8.0", "prismarine-recipe": "^1.3.0", "prismarine-registry": "^1.5.0", - "prismarine-windows": "^2.5.0", + "prismarine-windows": "^2.8.0", "prismarine-world": "^3.6.0", "protodef": "^1.14.0", "typed-emitter": "^1.0.0", @@ -1182,9 +1291,9 @@ } }, "mojangson": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mojangson/-/mojangson-2.0.2.tgz", - "integrity": "sha512-iGPRE1Ez+W+42Dt4Ao91c9VVs+FmuRUlAFDef76xRX3mbZrTNuezDtFI0PbfYqheg/B0fSiq0Q0V1emZNt37cw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mojangson/-/mojangson-2.0.4.tgz", + "integrity": "sha512-HYmhgDjr1gzF7trGgvcC/huIg2L8FsVbi/KacRe6r1AswbboGVZDS47SOZlomPuMWvZLas8m9vuHHucdZMwTmQ==", "requires": { "nearley": "^2.19.5" } @@ -1211,9 +1320,9 @@ } }, "node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "requires": { "whatwg-url": "^5.0.0" } @@ -1227,11 +1336,11 @@ } }, "prismarine-auth": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prismarine-auth/-/prismarine-auth-2.2.0.tgz", - "integrity": "sha512-3XfR3bqrd7nrTVyEqMwuYRr+/Vy+hkfBplubSDuoRAcRCs90lDx7R4EG3fjMSoKY53RLTXjeFnsB6m1krhL/2A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prismarine-auth/-/prismarine-auth-2.3.0.tgz", + "integrity": "sha512-giKZiHwuQdpMJ7KX94UncOJqM3u+yqKIR2UI/rqmdmFUuQilV9vhlz/zehpVkvo7FE8gmZsuUMCUPhI+gtgd3A==", "requires": { - "@azure/msal-node": "^1.1.0", + "@azure/msal-node": "^2.0.2", "@xboxreplay/xboxlive-auth": "^3.3.3", "debug": "^4.3.3", "jose": "^4.1.4", @@ -1247,11 +1356,11 @@ "requires": {} }, "prismarine-block": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prismarine-block/-/prismarine-block-1.16.3.tgz", - "integrity": "sha512-E9OazjIqnEgcXM6me6EIeQFMcNRWZzsaftWtetRSIKVoW+4UKWleb6lTNKh9kq7wNxciKavcYBmKL3sF7HfSaA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prismarine-block/-/prismarine-block-1.17.0.tgz", + "integrity": "sha512-GawzWU91pH4sLTtMvrRe2wiEbO8hgTRwViCBYoFmmqeJYLiblq4GfXOvclj3rEAEdAAVzRKCQxQHpLJhhLWssg==", "requires": { - "minecraft-data": "^3.0.0", + "minecraft-data": "^3.38.0", "prismarine-biome": "^1.1.0", "prismarine-chat": "^1.5.0", "prismarine-item": "^1.10.1", @@ -1271,9 +1380,9 @@ } }, "prismarine-chunk": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/prismarine-chunk/-/prismarine-chunk-1.33.0.tgz", - "integrity": "sha512-oTkhyE8EWV5mMOaUyCACiUUtx1270Mo18Ryj+t5Y8dglT4QfVwBsYeph+O40kNL9TK5cTW1lFYg5vr2rWuFGnw==", + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/prismarine-chunk/-/prismarine-chunk-1.34.0.tgz", + "integrity": "sha512-5RuQk8w9Ot550G5mmUFZvjpHugEXozgEFXiAhynrBCHOKJ3mMQ7VvhWF2irtjx+d2t29yDAiSEiSS34vxAmODQ==", "requires": { "prismarine-biome": "^1.2.0", "prismarine-block": "^1.14.1", @@ -1286,11 +1395,10 @@ } }, "prismarine-entity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prismarine-entity/-/prismarine-entity-2.2.0.tgz", - "integrity": "sha512-boqJbMpGHG2ddFUUo9aKkKPUHQbFMWkUCw8SRdZ+jrZxABsstL9619I8ujwPYoOMJjMyfYWgdEPNyHGiUqqukA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prismarine-entity/-/prismarine-entity-2.3.1.tgz", + "integrity": "sha512-HOv8l7IetHNf4hwZ7V/W4vM3GNl+e6VCtKDkH9h02TRq7jWngsggKtJV+VanCce/sNwtJUhJDjORGs728ep4MA==", "requires": { - "minecraft-data": "^3.0.0", "prismarine-chat": "^1.4.1", "prismarine-item": "^1.11.2", "prismarine-registry": "^1.4.0", @@ -1298,9 +1406,9 @@ } }, "prismarine-item": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/prismarine-item/-/prismarine-item-1.12.1.tgz", - "integrity": "sha512-Q+cV8WCM6gTO/K8gIpe4sTCVj0wdXy/IIctpQhgj4iRPoRY/rLCI88FAGsLNU1cabOFQDO3a0NIz+KLvhOvbQA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/prismarine-item/-/prismarine-item-1.14.0.tgz", + "integrity": "sha512-udQHYGJ05klFe8Kkc0TOmwoXj5Xl1ZPgHVoMbGUAFB9exN4TFxEa1A39vkSYhxP5Et9PNufQQvFBFVom0nXikA==", "requires": { "prismarine-nbt": "^2.0.0", "prismarine-registry": "^1.4.0" @@ -1315,9 +1423,9 @@ } }, "prismarine-physics": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prismarine-physics/-/prismarine-physics-1.6.0.tgz", - "integrity": "sha512-OqhWAt+lQRCxpodAgdRZg/9C815Xy+YUj5a4iPVIRVineD2x8UuUxCJInE4R8kFFs9PhupNtiXzgEtdmbUB/Mw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/prismarine-physics/-/prismarine-physics-1.8.0.tgz", + "integrity": "sha512-gbM+S+bmVtOKVv+Z0WGaHMeEeBHISIDsRDRlv8sr0dex3ZJRhuq8djA02CBreguXtI18ZKh6q3TSj2qDr45NHA==", "requires": { "minecraft-data": "^3.0.0", "prismarine-nbt": "^2.0.0", @@ -1340,28 +1448,38 @@ "requires": {} }, "prismarine-registry": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prismarine-registry/-/prismarine-registry-1.6.0.tgz", - "integrity": "sha512-oduDRuwa5rXT8CkPeMSlBsuBzxZF9oRsDpFK0oBStpIoNwSuTqqGGGgLlyL20OS2O9pmqYpOMlmG80CW4uuKJw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/prismarine-registry/-/prismarine-registry-1.7.0.tgz", + "integrity": "sha512-yyva0FpWI078nNeMhx8ekVza5uUTYhEv+C+ADu3wUQXiG8qhXkvrf0uzsnhTgZL8BLdsi2axgCEiKw9qSKIuxQ==", "requires": { "minecraft-data": "^3.0.0", "prismarine-nbt": "^2.0.0" } }, "prismarine-windows": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/prismarine-windows/-/prismarine-windows-2.6.1.tgz", - "integrity": "sha512-5B8+W4Zb9MWaakd38I/WW564zEgat6bC23ftcv15yVYmHZTq8mtUfX2GsOUD3Pu/aFKarvXpyyJahFMUTUVoXg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prismarine-windows/-/prismarine-windows-2.8.0.tgz", + "integrity": "sha512-9HVhJ8tfCeRubYwQzgz8oiHNAebMJ5hDdjm45PZwrOgewaislnR2HDsbPMWiCcyWkYL7J8bVLVoSzEzv5pH98g==", "requires": { - "prismarine-item": "^1.5.0", - "prismarine-registry": "^1.5.0", - "typed-emitter": "^1.0.0" + "prismarine-item": "^1.12.2", + "prismarine-registry": "^1.7.0", + "typed-emitter": "^2.1.0" + }, + "dependencies": { + "typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "requires": { + "rxjs": "*" + } + } } }, "prismarine-world": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/prismarine-world/-/prismarine-world-3.6.1.tgz", - "integrity": "sha512-sv7rR+vJ/ac3/dm4MoumreL4eqMi3B+h8I+JDYXQkNCdSJJISniQvi5qS4zTnAUCGXx/N6QfQ02bjBfyEoZuRw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prismarine-world/-/prismarine-world-3.6.2.tgz", + "integrity": "sha512-xNNo3bd8EnCMjiPbVrh3jYa1Upa8Krkb13BgO7FOOfD5ZYf+iYDZewBtDbHYWzZZB2N0JlTtimMOHRhZhDJirw==", "requires": { "vec3": "^0.1.7" } @@ -1383,9 +1501,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -1437,14 +1555,15 @@ } }, "readable-stream": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.0.tgz", - "integrity": "sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "requires": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", - "process": "^0.11.10" + "process": "^0.11.10", + "string_decoder": "^1.3.0" } }, "ret": { @@ -1452,15 +1571,24 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "optional": true, + "requires": { + "tslib": "^2.1.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -1490,6 +1618,12 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "optional": true + }, "typed-emitter": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-1.4.0.tgz", @@ -1500,6 +1634,11 @@ "resolved": "https://registry.npmjs.org/uint4/-/uint4-0.1.2.tgz", "integrity": "sha512-lhEx78gdTwFWG+mt6cWAZD/R6qrIj0TTBeH5xwyuDJyswLNlGe+KVlUPQ6+mx5Ld332pS0AMUTo9hIly7YsWxQ==" }, + "undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -1527,9 +1666,9 @@ } }, "vec3": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/vec3/-/vec3-0.1.7.tgz", - "integrity": "sha512-EZSeXBL+L3go2wWwtQQse4fEcNGIQjT14qvi4LYVj1ifZt/J5XZ1QZqkDuOVVH07YwTEIFbsAv3pzwUpF7x9Wg==" + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/vec3/-/vec3-0.1.8.tgz", + "integrity": "sha512-LfKrP625Bsg/Tj52YdYPsHmpsJuo+tc6fLxZxXjEo9k2xSspKlPvoYTHehykKhp1FvV9nm+XU3Ehej5/9tpDCg==" }, "webidl-conversions": { "version": "3.0.1", diff --git a/automata/package.json b/automata/package.json index 8e14cc0..723c211 100644 --- a/automata/package.json +++ b/automata/package.json @@ -6,7 +6,7 @@ "start": "node index.js" }, "dependencies": { - "mineflayer": "^4.9.0", + "mineflayer": "^4.14.0", "rcon-client": "^4.2.3" } } diff --git a/pom.xml b/pom.xml index 885a584..37178f4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.josemmo.bukkit.plugin YamipaPlugin - 1.2.11 + 1.2.12 8 @@ -42,7 +42,7 @@ org.spigotmc spigot-api - 1.20.1-R0.1-SNAPSHOT + 1.20.2-R0.1-SNAPSHOT provided @@ -50,7 +50,7 @@ com.comphenix.protocol ProtocolLib - 5.0.0 + 5.1.0 provided @@ -73,7 +73,7 @@ com.sk89q.worldguard worldguard-bukkit - 7.0.8 + 7.0.9 provided @@ -89,7 +89,15 @@ com.github.TownyAdvanced towny - 0.99.1.4 + 0.99.6.2 + provided + + + + + com.github.angeschossen + LandsAPI + 6.35.0 provided diff --git a/src/main/java/io/josemmo/bukkit/plugin/utils/Permissions.java b/src/main/java/io/josemmo/bukkit/plugin/utils/Permissions.java index e1c1586..2f7bb9e 100644 --- a/src/main/java/io/josemmo/bukkit/plugin/utils/Permissions.java +++ b/src/main/java/io/josemmo/bukkit/plugin/utils/Permissions.java @@ -11,6 +11,10 @@ import com.sk89q.worldguard.protection.flags.Flags; import com.sk89q.worldguard.protection.flags.StateFlag; import io.josemmo.bukkit.plugin.YamipaPlugin; +import me.angeschossen.lands.api.LandsIntegration; +import me.angeschossen.lands.api.flags.type.RoleFlag; +import me.angeschossen.lands.api.land.LandWorld; +import me.angeschossen.lands.api.player.LandPlayer; import me.ryanhamshire.GriefPrevention.GriefPrevention; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -18,6 +22,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Objects; import java.util.concurrent.Callable; import java.util.logging.Level; @@ -25,6 +30,7 @@ public class Permissions { @Nullable private static WorldGuard worldGuard = null; @Nullable private static GriefPrevention griefPrevention = null; @Nullable private static TownyAPI townyApi = null; + @Nullable private static LandsIntegration landsApi = null; static { try { @@ -44,6 +50,12 @@ public class Permissions { } catch (NoClassDefFoundError __) { // Towny is not installed } + + try { + landsApi = LandsIntegration.of(YamipaPlugin.getInstance()); + } catch (NoClassDefFoundError __) { + // Lands is not installed + } } /** @@ -55,7 +67,8 @@ public class Permissions { public static boolean canBuild(@NotNull Player player, @NotNull Location location) { return queryWorldGuard(player, location, true) && queryGriefPrevention(player, location, true) - && queryTowny(player, location, true); + && queryTowny(player, location, true) + && queryLands(player, location, true); } /** @@ -64,10 +77,12 @@ && queryGriefPrevention(player, location, true) * @param location Block location * @return Whether player can destroy or not */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") public static boolean canDestroy(@NotNull Player player, @NotNull Location location) { return queryWorldGuard(player, location, false) && queryGriefPrevention(player, location, false) - && queryTowny(player, location, false); + && queryTowny(player, location, false) + && queryLands(player, location, false); } private static boolean queryWorldGuard(@NotNull Player player, @NotNull Location location, boolean isBuild) { @@ -80,7 +95,7 @@ private static boolean queryWorldGuard(@NotNull Player player, @NotNull Location // Grant if bypass permission is enabled boolean hasBypass = platform.getSessionManager().hasBypass( wrappedPlayer, - BukkitAdapter.adapt(location.getWorld()) + BukkitAdapter.adapt(Objects.requireNonNull(location.getWorld())) ); if (hasBypass) { return true; @@ -122,4 +137,19 @@ private static boolean queryTowny(@NotNull Player player, @NotNull Location loca TownyPermission.ActionType type = isBuild ? TownyPermission.ActionType.BUILD : TownyPermission.ActionType.DESTROY; return PlayerCacheUtil.getCachePermission(player, location, material, type); } + + private static boolean queryLands(@NotNull Player player, @NotNull Location location, boolean isBuild) { + if (landsApi == null) { + return true; + } + LandWorld landWorld = landsApi.getWorld(Objects.requireNonNull(location.getWorld())); + if (landWorld == null) { + return true; + } + LandPlayer landPlayer = Objects.requireNonNull(landsApi.getLandPlayer(player.getUniqueId())); + RoleFlag flag = isBuild ? + me.angeschossen.lands.api.flags.type.Flags.BLOCK_PLACE : + me.angeschossen.lands.api.flags.type.Flags.BLOCK_BREAK; + return landWorld.hasRoleFlag(landPlayer, location, flag, null, false); + } }