diff --git a/.github/changelogs/4.x/en_us.md b/.github/changelogs/4.x/en_us.md index 8800fd0..6ad9d78 100644 --- a/.github/changelogs/4.x/en_us.md +++ b/.github/changelogs/4.x/en_us.md @@ -2,6 +2,12 @@ ## 4.1.x +### 4.1.9 + +#### :arrow_heading_up: follow PMMP changes + +- Added support for PMMP 4.14.x (Minecraft 1.19.60~) (#137) + ### 4.1.8 #### :arrow_heading_up: follow PMMP changes diff --git a/.github/changelogs/4.x/ja_jp.md b/.github/changelogs/4.x/ja_jp.md index 6adea77..27ab0b4 100644 --- a/.github/changelogs/4.x/ja_jp.md +++ b/.github/changelogs/4.x/ja_jp.md @@ -2,6 +2,12 @@ ## 4.1.x +### 4.1.9 + +#### :arrow_heading_up: PMMPの変更に追従 + +- PMMP 4.14.x (Minecraft 1.19.60~) に対応しました + ### 4.1.8 #### :arrow_heading_up: PMMPの変更に追従 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4fc4eb6 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,68 @@ +name: CI + +on: + push: + branches: + - dev/* + pull_request: + +jobs: + build-php: + name: Prepare PHP + runs-on: ${{ matrix.image }} + + strategy: + matrix: + image: + - ubuntu-20.04 + php: + - 8.2.1 + + steps: + - name: Build and prepare PHP cache + uses: pmmp/setup-php-action@4d1b890176aa299211f4ccae76ddbf9bd008bbd6 + with: + php-version: ${{ matrix.php }} + install-path: "./bin" + pm-version-major: "4" + + + phpstan: + name: PHPStan analysis + needs: build-php + runs-on: ${{ matrix.image }} + + strategy: + matrix: + image: + - ubuntu-20.04 + php: + - 8.2.1 + + steps: + - uses: actions/checkout@v3 + + - name: Setup PHP + uses: pmmp/setup-php-action@4d1b890176aa299211f4ccae76ddbf9bd008bbd6 + with: + php-version: ${{ matrix.php }} + install-path: "./bin" + pm-version-major: "4" + + - name: Install Composer + run: curl -sS https://getcomposer.org/installer | php + + - name: Restore Composer package cache + uses: actions/cache@v3 + with: + path: | + ~/.cache/composer/files + ~/.cache/composer/vcs + key: "composer-v2-cache-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}" + restore-keys: | + composer-v2-cache- + - name: Install Composer dependencies + run: composer install --prefer-dist --no-interaction + + - name: Analyze with PHPStan + run: ./vendor/bin/phpstan analyze --no-progress --memory-limit=2G \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..afe9175 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,109 @@ +name: Release + +on: + push: + branches: + - master + +jobs: + build-php: + name: Prepare PHP + runs-on: ${{ matrix.image }} + + strategy: + matrix: + image: + - ubuntu-20.04 + php: + - 8.2.1 + + steps: + - name: Setup PHP + uses: pmmp/setup-php-action@4d1b890176aa299211f4ccae76ddbf9bd008bbd6 + with: + php-version: ${{ matrix.php }} + install-path: "./bin" + pm-version-major: "4" + + build-and-release-plugin: + name: Release artifact + needs: build-php + runs-on: ubuntu-20.04 + + strategy: + matrix: + image: + - ubuntu-20.04 + php: + - 8.2.1 + + steps: + - uses: actions/checkout@v3 + + - name: Pull pmmp/DevTools + uses: actions/checkout@v3 + with: + repository: pmmp/DevTools + ref: master + path: DevTools + + - name: Check Texter version + id: check-texter-version + run: | + TEXTER_VERSION=`grep version plugin.yml | sed -e 's/^version: //g'` + echo "::set-output name=VER::${TEXTER_VERSION}" + + - name: Check short SHA + id: check-short-sha + run: | + HASH=${{ github.sha }} + echo "::set-output name=SHA::${HASH::7}" + + - name: Setup PHP + uses: pmmp/setup-php-action@4d1b890176aa299211f4ccae76ddbf9bd008bbd6 + with: + php-version: ${{ matrix.php }} + install-path: "./bin" + pm-version-major: "4" + + - name: Install Composer + run: curl -sS https://getcomposer.org/installer | php + + - name: Restore Composer package cache + uses: actions/cache@v3 + with: + path: | + ~/.cache/composer/files + ~/.cache/composer/vcs + key: "composer-v2-cache-${{ matrix.php }}-${{ hashFiles('./composer.lock') }}" + restore-keys: | + composer-v2-cache- + + - name: Install Composer dependencies (no dev) + run: composer install --prefer-dist --no-interaction --no-dev + + - name: Optimize Composer autoloader + run: composer dump-autoload --optimize + + - name: Build plugin Phar + run: | + rm -rf bin + mkdir build + php -dphar.readonly=0 DevTools/stub.php --make . --out "build/Texter_v${{ steps.check-texter-version.outputs.VER }}.phar" + + - name: Tagging commit + id: tagging-commit + env: + TAG_NAME: v${{ steps.check-texter-version.outputs.VER }}(${{ steps.check-short-sha.outputs.SHA }}) + run: | + git tag ${TAG_NAME} + git push origin ${TAG_NAME} + echo "::set-output name=TAG::refs/tags/${TAG_NAME}" + + - name: Upload release artifact on Github + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file_glob: true + file: build/** + tag: ${{ steps.tagging-commit.outputs.TAG }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7c1241b..0debab2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Composer +/vendor/ + # Intellij IDEA /.idea @@ -10,4 +13,4 @@ /crfts.json /fts.json /uft.json -/ft.json \ No newline at end of file +/ft.json diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..5b6f840 --- /dev/null +++ b/composer.json @@ -0,0 +1,64 @@ +{ + "name": "fuyutsuki/texter", + "description": "Texter is a plugin for PocketMine-MP that supports multiple worlds and allows you to add, edit, move, and delete FloatingText.", + "type": "project", + "license": "NCSA", + "authors": [ + { + "name": "yuko fuyutsuki", + "email": "yukofuyutsuki@gmail.com" + } + ], + "repositories": [ + { + "type": "package", + "package": { + "name": "aieuo/mineflow", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/aieuo/Mineflow", + "reference": "8c69fb5bbcec5def813148be9e8f01184c1c2d8b" + }, + "autoload": { + "psr-4": { + "aieuo\\mineflow\\": ["src/aieuo/mineflow"] + } + } + } + }, + { + "type": "package", + "package": { + "name": "dktapps-pm-pl/pmforms", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/dktapps-pm-pl/pmforms", + "reference": "93cbd7b97a80d6edc54d9c8c8f58cea09ec3b47f" + }, + "autoload": { + "psr-4": { + "dktapps\\pmforms\\": ["src/dktapps/pmforms"] + } + } + } + } + ], + "require": { + "dktapps-pm-pl/pmforms": "^2.0.0" + }, + "require-dev": { + "aieuo/mineflow": "^2.12.0", + "phpstan/phpstan": "^1.9", + "pocketmine/pocketmine-mp": "^4.14" + }, + "autoload": { + "psr-4": { + "jp\\mcbe\\fuyutsuki\\Texter\\": ["src"] + } + }, + "config": { + "sort-packages": true + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..14332a2 --- /dev/null +++ b/composer.lock @@ -0,0 +1,1739 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "947b473e74553d7c19388a1af7f4c775", + "packages": [ + { + "name": "dktapps-pm-pl/pmforms", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/dktapps-pm-pl/pmforms", + "reference": "93cbd7b97a80d6edc54d9c8c8f58cea09ec3b47f" + }, + "type": "library", + "autoload": { + "psr-4": { + "dktapps\\pmforms\\": [ + "src/dktapps/pmforms" + ] + } + } + } + ], + "packages-dev": [ + { + "name": "adhocore/json-comment", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/adhocore/php-json-comment.git", + "reference": "651023f9fe52e9efa2198cbaf6e481d1968e2377" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/adhocore/php-json-comment/zipball/651023f9fe52e9efa2198cbaf6e481d1968e2377", + "reference": "651023f9fe52e9efa2198cbaf6e481d1968e2377", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.5 || ^8.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ahc\\Json\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jitendra Adhikari", + "email": "jiten.adhikary@gmail.com" + } + ], + "description": "Lightweight JSON comment stripper library for PHP", + "keywords": [ + "comment", + "json", + "strip-comment" + ], + "support": { + "issues": "https://github.com/adhocore/php-json-comment/issues", + "source": "https://github.com/adhocore/php-json-comment/tree/1.2.1" + }, + "funding": [ + { + "url": "https://paypal.me/ji10", + "type": "custom" + }, + { + "url": "https://github.com/adhocore", + "type": "github" + } + ], + "time": "2022-10-02T11:22:07+00:00" + }, + { + "name": "aieuo/mineflow", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/aieuo/Mineflow", + "reference": "8c69fb5bbcec5def813148be9e8f01184c1c2d8b" + }, + "type": "library", + "autoload": { + "psr-4": { + "aieuo\\mineflow\\": [ + "src/aieuo/mineflow" + ] + } + } + }, + { + "name": "brick/math", + "version": "0.10.2", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "4.25.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.10.2" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2022-08-10T22:54:19+00:00" + }, + { + "name": "fgrosse/phpasn1", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/fgrosse/PHPASN1.git", + "reference": "42060ed45344789fb9f21f9f1864fc47b9e3507b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fgrosse/PHPASN1/zipball/42060ed45344789fb9f21f9f1864fc47b9e3507b", + "reference": "42060ed45344789fb9f21f9f1864fc47b9e3507b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "~2.0", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "suggest": { + "ext-bcmath": "BCmath is the fallback extension for big integer calculations", + "ext-curl": "For loading OID information from the web if they have not bee defined statically", + "ext-gmp": "GMP is the preferred extension for big integer calculations", + "phpseclib/bcmath_compat": "BCmath polyfill for servers where neither GMP nor BCmath is available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "FG\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Friedrich Große", + "email": "friedrich.grosse@gmail.com", + "homepage": "https://github.com/FGrosse", + "role": "Author" + }, + { + "name": "All contributors", + "homepage": "https://github.com/FGrosse/PHPASN1/contributors" + } + ], + "description": "A PHP Framework that allows you to encode and decode arbitrary ASN.1 structures using the ITU-T X.690 Encoding Rules.", + "homepage": "https://github.com/FGrosse/PHPASN1", + "keywords": [ + "DER", + "asn.1", + "asn1", + "ber", + "binary", + "decoding", + "encoding", + "x.509", + "x.690", + "x509", + "x690" + ], + "support": { + "issues": "https://github.com/fgrosse/PHPASN1/issues", + "source": "https://github.com/fgrosse/PHPASN1/tree/v2.5.0" + }, + "abandoned": true, + "time": "2022-12-19T11:08:26+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v4.1.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/cfa81ea1d35294d64adb9c68aa4cb9e92400e53f", + "reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.1.0" + }, + "time": "2022-12-08T20:46:14+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "1.9.17", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "204e459e7822f2c586463029f5ecec31bb45a1f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/204e459e7822f2c586463029f5ecec31bb45a1f2", + "reference": "204e459e7822f2c586463029f5ecec31bb45a1f2", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/1.9.17" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], + "time": "2023-02-08T12:25:00+00:00" + }, + { + "name": "pocketmine/bedrock-data", + "version": "1.14.0+bedrock-1.19.60", + "source": { + "type": "git", + "url": "https://github.com/pmmp/BedrockData.git", + "reference": "7b06234ec6e1f4fb06ad4b2f177e606c25df9b46" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/7b06234ec6e1f4fb06ad4b2f177e606c25df9b46", + "reference": "7b06234ec6e1f4fb06ad4b2f177e606c25df9b46", + "shasum": "" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "CC0-1.0" + ], + "description": "Blobs of data generated from Minecraft: Bedrock Edition, used by PocketMine-MP", + "support": { + "issues": "https://github.com/pmmp/BedrockData/issues", + "source": "https://github.com/pmmp/BedrockData/tree/bedrock-1.19.60" + }, + "time": "2023-02-08T18:32:01+00:00" + }, + { + "name": "pocketmine/bedrock-protocol", + "version": "19.1.0+bedrock-1.19.60", + "source": { + "type": "git", + "url": "https://github.com/pmmp/BedrockProtocol.git", + "reference": "b57d8145cb765110d599dd68241f2ebe68c80933" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/b57d8145cb765110d599dd68241f2ebe68c80933", + "reference": "b57d8145cb765110d599dd68241f2ebe68c80933", + "shasum": "" + }, + "require": { + "ext-json": "*", + "netresearch/jsonmapper": "^4.0", + "php": "^8.0", + "pocketmine/binaryutils": "^0.2.0", + "pocketmine/color": "^0.2.0 || ^0.3.0", + "pocketmine/math": "^0.3.0 || ^0.4.0", + "pocketmine/nbt": "^0.3.0", + "ramsey/uuid": "^4.1" + }, + "require-dev": { + "phpstan/phpstan": "1.9.13", + "phpstan/phpstan-phpunit": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.0.0", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\network\\mcpe\\protocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "An implementation of the Minecraft: Bedrock Edition protocol in PHP", + "support": { + "issues": "https://github.com/pmmp/BedrockProtocol/issues", + "source": "https://github.com/pmmp/BedrockProtocol/tree/19.1.0+bedrock-1.19.60" + }, + "time": "2023-02-15T12:35:51+00:00" + }, + { + "name": "pocketmine/binaryutils", + "version": "0.2.4", + "source": { + "type": "git", + "url": "https://github.com/pmmp/BinaryUtils.git", + "reference": "5ac7eea91afbad8dc498f5ce34ce6297d5e6ea9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/BinaryUtils/zipball/5ac7eea91afbad8dc498f5ce34ce6297d5e6ea9a", + "reference": "5ac7eea91afbad8dc498f5ce34ce6297d5e6ea9a", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "php-64bit": "*" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "1.3.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1.0.0", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\utils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Classes and methods for conveniently handling binary data", + "support": { + "issues": "https://github.com/pmmp/BinaryUtils/issues", + "source": "https://github.com/pmmp/BinaryUtils/tree/0.2.4" + }, + "time": "2022-01-12T18:06:33+00:00" + }, + { + "name": "pocketmine/callback-validator", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/pmmp/CallbackValidator.git", + "reference": "64787469766bcaa7e5885242e85c23c25e8c55a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/CallbackValidator/zipball/64787469766bcaa7e5885242e85c23c25e8c55a2", + "reference": "64787469766bcaa7e5885242e85c23c25e8c55a2", + "shasum": "" + }, + "require": { + "ext-reflection": "*", + "php": "^7.1 || ^8.0" + }, + "replace": { + "daverandom/callback-validator": "*" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "0.12.59", + "phpstan/phpstan-strict-rules": "^0.12.4", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DaveRandom\\CallbackValidator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Wright", + "email": "cw@daverandom.com" + } + ], + "description": "Fork of daverandom/callback-validator - Tools for validating callback signatures", + "support": { + "issues": "https://github.com/pmmp/CallbackValidator/issues", + "source": "https://github.com/pmmp/CallbackValidator/tree/1.0.3" + }, + "time": "2020-12-11T01:45:37+00:00" + }, + { + "name": "pocketmine/classloader", + "version": "0.2.0", + "source": { + "type": "git", + "url": "https://github.com/pmmp/ClassLoader.git", + "reference": "49ea303993efdfb39cd302e2156d50aa78209e78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/ClassLoader/zipball/49ea303993efdfb39cd302e2156d50aa78209e78", + "reference": "49ea303993efdfb39cd302e2156d50aa78209e78", + "shasum": "" + }, + "require": { + "ext-pthreads": "~3.2.0 || ^4.0", + "ext-reflection": "*", + "php": "^8.0" + }, + "conflict": { + "pocketmine/spl": "<0.4" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "0.12.99", + "phpstan/phpstan-strict-rules": "^0.12.4", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "classmap": [ + "./src" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Ad-hoc autoloading components used by PocketMine-MP", + "support": { + "issues": "https://github.com/pmmp/ClassLoader/issues", + "source": "https://github.com/pmmp/ClassLoader/tree/0.2.0" + }, + "time": "2021-11-01T20:17:27+00:00" + }, + { + "name": "pocketmine/color", + "version": "0.3.0", + "source": { + "type": "git", + "url": "https://github.com/pmmp/Color.git", + "reference": "8cb346d0a21ad3287cc8d7175e4b643416607249" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/Color/zipball/8cb346d0a21ad3287cc8d7175e4b643416607249", + "reference": "8cb346d0a21ad3287cc8d7175e4b643416607249", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpstan/phpstan": "1.9.4", + "phpstan/phpstan-strict-rules": "^1.2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\color\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Color handling library used by PocketMine-MP and related projects", + "support": { + "issues": "https://github.com/pmmp/Color/issues", + "source": "https://github.com/pmmp/Color/tree/0.3.0" + }, + "time": "2022-12-18T19:49:21+00:00" + }, + { + "name": "pocketmine/errorhandler", + "version": "0.6.0", + "source": { + "type": "git", + "url": "https://github.com/pmmp/ErrorHandler.git", + "reference": "dae214a04348b911e8219ebf125ff1c5589cc878" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/ErrorHandler/zipball/dae214a04348b911e8219ebf125ff1c5589cc878", + "reference": "dae214a04348b911e8219ebf125ff1c5589cc878", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpstan/phpstan": "0.12.99", + "phpstan/phpstan-strict-rules": "^0.12.2", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\errorhandler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Utilities to handle nasty PHP E_* errors in a usable way", + "support": { + "issues": "https://github.com/pmmp/ErrorHandler/issues", + "source": "https://github.com/pmmp/ErrorHandler/tree/0.6.0" + }, + "time": "2022-01-08T21:05:46+00:00" + }, + { + "name": "pocketmine/locale-data", + "version": "2.18.3", + "source": { + "type": "git", + "url": "https://github.com/pmmp/Language.git", + "reference": "da25bfe9ee4822a84feb9b7e620c56ad4000aed0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/Language/zipball/da25bfe9ee4822a84feb9b7e620c56ad4000aed0", + "reference": "da25bfe9ee4822a84feb9b7e620c56ad4000aed0", + "shasum": "" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "description": "Language resources used by PocketMine-MP", + "support": { + "issues": "https://github.com/pmmp/Language/issues", + "source": "https://github.com/pmmp/Language/tree/2.18.3" + }, + "time": "2023-01-17T21:43:36+00:00" + }, + { + "name": "pocketmine/log", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/pmmp/Log.git", + "reference": "e6c912c0f9055c81d23108ec2d179b96f404c043" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/Log/zipball/e6c912c0f9055c81d23108ec2d179b96f404c043", + "reference": "e6c912c0f9055c81d23108ec2d179b96f404c043", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "pocketmine/spl": "<0.4" + }, + "require-dev": { + "phpstan/phpstan": "0.12.88", + "phpstan/phpstan-strict-rules": "^0.12.2" + }, + "type": "library", + "autoload": { + "classmap": [ + "./src" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Logging components used by PocketMine-MP and related projects", + "support": { + "issues": "https://github.com/pmmp/Log/issues", + "source": "https://github.com/pmmp/Log/tree/0.4.0" + }, + "time": "2021-06-18T19:08:09+00:00" + }, + { + "name": "pocketmine/log-pthreads", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/pmmp/LogPthreads.git", + "reference": "61f709e8cf36bcc24e4efe02acded680a1ce23cd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/LogPthreads/zipball/61f709e8cf36bcc24e4efe02acded680a1ce23cd", + "reference": "61f709e8cf36bcc24e4efe02acded680a1ce23cd", + "shasum": "" + }, + "require": { + "ext-pthreads": "~3.2.0 || ^4.0", + "php": "^7.4 || ^8.0", + "pocketmine/log": "^0.4.0" + }, + "conflict": { + "pocketmine/spl": "<0.4" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "0.12.88", + "phpstan/phpstan-strict-rules": "^0.12.4" + }, + "type": "library", + "autoload": { + "classmap": [ + "./src" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Logging components specialized for pthreads used by PocketMine-MP and related projects", + "support": { + "issues": "https://github.com/pmmp/LogPthreads/issues", + "source": "https://github.com/pmmp/LogPthreads/tree/0.4.0" + }, + "time": "2021-11-01T21:42:09+00:00" + }, + { + "name": "pocketmine/math", + "version": "0.4.3", + "source": { + "type": "git", + "url": "https://github.com/pmmp/Math.git", + "reference": "47a243d320b01c8099d65309967934c188111549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/Math/zipball/47a243d320b01c8099d65309967934c188111549", + "reference": "47a243d320b01c8099d65309967934c188111549", + "shasum": "" + }, + "require": { + "php": "^8.0", + "php-64bit": "*" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "1.8.2", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^8.5 || ^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "PHP library containing math related code used in PocketMine-MP", + "support": { + "issues": "https://github.com/pmmp/Math/issues", + "source": "https://github.com/pmmp/Math/tree/0.4.3" + }, + "time": "2022-08-25T18:43:37+00:00" + }, + { + "name": "pocketmine/nbt", + "version": "0.3.3", + "source": { + "type": "git", + "url": "https://github.com/pmmp/NBT.git", + "reference": "f4321be50df1a18b9f4e94d428a2e68a6e2ac2b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/NBT/zipball/f4321be50df1a18b9f4e94d428a2e68a6e2ac2b4", + "reference": "f4321be50df1a18b9f4e94d428a2e68a6e2ac2b4", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "php-64bit": "*", + "pocketmine/binaryutils": "^0.2.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "1.7.7", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\nbt\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "PHP library for working with Named Binary Tags", + "support": { + "issues": "https://github.com/pmmp/NBT/issues", + "source": "https://github.com/pmmp/NBT/tree/0.3.3" + }, + "time": "2022-07-06T14:13:26+00:00" + }, + { + "name": "pocketmine/pocketmine-mp", + "version": "4.14.1", + "source": { + "type": "git", + "url": "https://github.com/pmmp/PocketMine-MP.git", + "reference": "d7a0f5362e7d9617f239f02cb7f9c5e9d5b92407" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/PocketMine-MP/zipball/d7a0f5362e7d9617f239f02cb7f9c5e9d5b92407", + "reference": "d7a0f5362e7d9617f239f02cb7f9c5e9d5b92407", + "shasum": "" + }, + "require": { + "adhocore/json-comment": "^1.1", + "composer-runtime-api": "^2.0", + "ext-chunkutils2": "^0.3.1", + "ext-crypto": "^0.3.1", + "ext-ctype": "*", + "ext-curl": "*", + "ext-date": "*", + "ext-gmp": "*", + "ext-hash": "*", + "ext-igbinary": "^3.0.1", + "ext-json": "*", + "ext-leveldb": "^0.2.1 || ^0.3.0", + "ext-mbstring": "*", + "ext-morton": "^0.1.0", + "ext-openssl": "*", + "ext-pcre": "*", + "ext-phar": "*", + "ext-pthreads": "^4.0", + "ext-reflection": "*", + "ext-simplexml": "*", + "ext-sockets": "*", + "ext-spl": "*", + "ext-yaml": ">=2.0.0", + "ext-zip": "*", + "ext-zlib": ">=1.2.11", + "fgrosse/phpasn1": "^2.3", + "netresearch/jsonmapper": "^4.0", + "php": "^8.0", + "php-64bit": "*", + "pocketmine/bedrock-data": "~1.14.0+bedrock-1.19.60", + "pocketmine/bedrock-protocol": "~19.1.0+bedrock-1.19.60", + "pocketmine/binaryutils": "^0.2.1", + "pocketmine/callback-validator": "^1.0.2", + "pocketmine/classloader": "^0.2.0", + "pocketmine/color": "^0.3.0", + "pocketmine/errorhandler": "^0.6.0", + "pocketmine/locale-data": "~2.18.0", + "pocketmine/log": "^0.4.0", + "pocketmine/log-pthreads": "^0.4.0", + "pocketmine/math": "^0.4.0", + "pocketmine/nbt": "^0.3.2", + "pocketmine/raklib": "^0.14.2", + "pocketmine/raklib-ipc": "^0.1.0", + "pocketmine/snooze": "^0.3.0", + "ramsey/uuid": "^4.1", + "symfony/filesystem": "^5.4", + "webmozart/path-util": "^2.3" + }, + "require-dev": { + "phpstan/phpstan": "1.9.17", + "phpstan/phpstan-phpunit": "^1.1.0", + "phpstan/phpstan-strict-rules": "^1.2.0", + "phpunit/phpunit": "^9.2" + }, + "type": "project", + "autoload": { + "files": [ + "src/CoreConstants.php" + ], + "psr-4": { + "pocketmine\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "A server software for Minecraft: Bedrock Edition written in PHP", + "homepage": "https://pmmp.io", + "support": { + "issues": "https://github.com/pmmp/PocketMine-MP/issues", + "source": "https://github.com/pmmp/PocketMine-MP/tree/4.14.1" + }, + "funding": [ + { + "url": "https://github.com/pmmp/PocketMine-MP#donate", + "type": "custom" + }, + { + "url": "https://www.patreon.com/pocketminemp", + "type": "patreon" + } + ], + "time": "2023-02-15T15:19:38+00:00" + }, + { + "name": "pocketmine/raklib", + "version": "0.14.5", + "source": { + "type": "git", + "url": "https://github.com/pmmp/RakLib.git", + "reference": "85b4e5cb7117d37e010eeadb3ff53b21276c6f48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/RakLib/zipball/85b4e5cb7117d37e010eeadb3ff53b21276c6f48", + "reference": "85b4e5cb7117d37e010eeadb3ff53b21276c6f48", + "shasum": "" + }, + "require": { + "ext-sockets": "*", + "php": "^8.0", + "php-64bit": "*", + "php-ipv6": "*", + "pocketmine/binaryutils": "^0.2.0", + "pocketmine/log": "^0.3.0 || ^0.4.0" + }, + "require-dev": { + "phpstan/phpstan": "1.7.7", + "phpstan/phpstan-strict-rules": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "raklib\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "description": "A RakNet server implementation written in PHP", + "support": { + "issues": "https://github.com/pmmp/RakLib/issues", + "source": "https://github.com/pmmp/RakLib/tree/0.14.5" + }, + "time": "2022-08-25T16:16:44+00:00" + }, + { + "name": "pocketmine/raklib-ipc", + "version": "0.1.1", + "source": { + "type": "git", + "url": "https://github.com/pmmp/RakLibIpc.git", + "reference": "922a6444b0c6c7daaa5aa5a832107e1ec4738aed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/RakLibIpc/zipball/922a6444b0c6c7daaa5aa5a832107e1ec4738aed", + "reference": "922a6444b0c6c7daaa5aa5a832107e1ec4738aed", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "php-64bit": "*", + "pocketmine/binaryutils": "^0.2.0", + "pocketmine/raklib": "^0.13.1 || ^0.14.0" + }, + "require-dev": { + "phpstan/phpstan": "0.12.81", + "phpstan/phpstan-strict-rules": "^0.12.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "raklib\\server\\ipc\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "description": "Channel-based protocols for inter-thread/inter-process communication with RakLib", + "support": { + "issues": "https://github.com/pmmp/RakLibIpc/issues", + "source": "https://github.com/pmmp/RakLibIpc/tree/0.1.1" + }, + "time": "2021-09-22T17:01:12+00:00" + }, + { + "name": "pocketmine/snooze", + "version": "0.3.1", + "source": { + "type": "git", + "url": "https://github.com/pmmp/Snooze.git", + "reference": "0ac8fc2a781c419a1f64ebca4d5835028f59e29b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pmmp/Snooze/zipball/0ac8fc2a781c419a1f64ebca4d5835028f59e29b", + "reference": "0ac8fc2a781c419a1f64ebca4d5835028f59e29b", + "shasum": "" + }, + "require": { + "ext-pthreads": "~3.2.0 || ^4.0", + "php-64bit": "^7.3 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "0.12.99", + "phpstan/phpstan-strict-rules": "^0.12.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "pocketmine\\snooze\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "Thread notification management library for code using the pthreads extension", + "support": { + "issues": "https://github.com/pmmp/Snooze/issues", + "source": "https://github.com/pmmp/Snooze/tree/0.3.1" + }, + "time": "2021-11-01T20:50:08+00:00" + }, + { + "name": "ramsey/collection", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4", + "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "symfony/polyfill-php81": "^1.23" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-27T19:12:24+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.3", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "433b2014e3979047db08a17a205f410ba3869cf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2", + "reference": "433b2014e3979047db08a17a205f410ba3869cf2", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.3" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2023-01-12T18:13:24+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "648bfaca6a494f3e22378123bcee2894045dc9d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/648bfaca6a494f3e22378123bcee2894045dc9d8", + "reference": "648bfaca6a494f3e22378123bcee2894045dc9d8", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.4.19" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-14T19:14:44+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "abandoned": "symfony/filesystem", + "time": "2015-12-17T08:42:14+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000..2c446a3 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,2 @@ +parameters: + ignoreErrors: \ No newline at end of file diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000..4fa5a8a --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,9 @@ +includes: + - phpstan-baseline.neon +parameters: + level: 1 + checkExplicitMixedMissingReturn: true + paths: + - src + bootstrapFiles: + - vendor/autoload.php \ No newline at end of file diff --git a/plugin.yml b/plugin.yml index 6ee5a58..effe816 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,7 +1,7 @@ name: Texter prefix: Texter main: jp\mcbe\fuyutsuki\Texter\Main -version: 4.1.8 +version: 4.1.9 api: 4.14.0 softdepend: # aieuo/Mineflow diff --git a/src/jp/mcbe/fuyutsuki/Texter/Main.php b/src/jp/mcbe/fuyutsuki/Texter/Main.php index aafa483..9f22f1d 100644 --- a/src/jp/mcbe/fuyutsuki/Texter/Main.php +++ b/src/jp/mcbe/fuyutsuki/Texter/Main.php @@ -60,6 +60,14 @@ class Main extends PluginBase { private ConfigData $config; private TexterLang $lang; + public static function canLoadDependencyFromComposer(): bool { + return file_exists(dirname(__DIR__, 5) . '/vendor/autoload.php'); + } + + public static function loadDependency(): void { + require_once dirname(__DIR__, 5) . '/vendor/autoload.php'; + } + public function onLoad(): void { self::setPrefix(); $this->loadResources(); @@ -70,7 +78,7 @@ public function onLoad(): void { public function onEnable(): void { $pluginManager = $this->getServer()->getPluginManager(); - if ($this->isPackaged()) { + if ($this->checkPackaged()) { $pluginManager->registerEvents(new EventListener($this), $this); $this->mineflowLinkage(); }else { @@ -220,10 +228,13 @@ private function mineflowLinkage() { } } - private function isPackaged(): bool { + private function checkPackaged(): bool { if (str_starts_with($this->getFile(), self::PHAR_HEADER)) { if (class_exists(Dependencies::PACKAGED_LIBRARY_NAMESPACE . Dependencies::PMFORMS)) { return true;// PoggitCI + }elseif (Main::canLoadDependencyFromComposer()) { + Main::loadDependency(); + return true;// GitHubActions }else { $message = $this->lang->translateString("error.on.enable.not.packaged"); $this->getLogger()->critical($message); @@ -234,7 +245,16 @@ private function isPackaged(): bool { if (isset($plugins["DEVirion"])) { if (class_exists(Dependencies::PMFORMS)) { return true;// developer - }else { + } else { + $message = $this->lang->translateString("error.on.enable.not.found.virions", [implode(", ", ["pmforms"])]); + $this->getLogger()->critical($message); + return false; + } + }elseif (Main::canLoadDependencyFromComposer()) { + Main::loadDependency(); + if (class_exists(Dependencies::PMFORMS)) { + return true;// developer + } else { $message = $this->lang->translateString("error.on.enable.not.found.virions", [implode(", ", ["pmforms"])]); $this->getLogger()->critical($message); return false;