mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 00:07:30 +00:00
remove utils\UUID, switch to pocketmine/uuid package
This commit is contained in:
parent
cb33f408a1
commit
b7cf4f01f9
@ -42,6 +42,7 @@
|
||||
"pocketmine/log-pthreads": "dev-master",
|
||||
"pocketmine/callback-validator": "^1.0.1",
|
||||
"pocketmine/errorhandler": "^0.1.0",
|
||||
"pocketmine/uuid": "^0.1.0",
|
||||
"adhocore/json-comment": "^0.1.0",
|
||||
"particle/validator": "^2.3",
|
||||
"netresearch/jsonmapper": "^2.0",
|
||||
|
37
composer.lock
generated
37
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "e5a2f9b7992a8ed0050a9745ec04e569",
|
||||
"content-hash": "a852a026a0a9f5ca2dbea5c06aab4856",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/json-comment",
|
||||
@ -751,6 +751,41 @@
|
||||
],
|
||||
"description": "Standard library files required by PocketMine-MP and related projects",
|
||||
"time": "2020-05-10T12:05:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pocketmine/uuid",
|
||||
"version": "0.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pmmp/UUID.git",
|
||||
"reference": "c45c995cb87eafee01a14a06a4b7b517cada03a5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pmmp/UUID/zipball/c45c995cb87eafee01a14a06a4b7b517cada03a5",
|
||||
"reference": "c45c995cb87eafee01a14a06a4b7b517cada03a5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.3",
|
||||
"pocketmine/binaryutils": "^0.1 || dev-master"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^0.12.23",
|
||||
"phpstan/phpstan-strict-rules": "^0.12.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"pocketmine\\uuid\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"LGPL-3.0"
|
||||
],
|
||||
"description": "Basic UUID implementation used by PocketMine-MP and related projects",
|
||||
"time": "2020-05-10T12:38:41+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
|
@ -88,7 +88,7 @@ use pocketmine\utils\Process;
|
||||
use pocketmine\utils\Terminal;
|
||||
use pocketmine\utils\TextFormat;
|
||||
use pocketmine\utils\Utils;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use pocketmine\world\biome\Biome;
|
||||
use pocketmine\world\format\io\WorldProviderManager;
|
||||
use pocketmine\world\format\io\WritableWorldProvider;
|
||||
|
@ -36,7 +36,7 @@ use pocketmine\network\mcpe\protocol\types\recipe\ShapedRecipe as ProtocolShaped
|
||||
use pocketmine\network\mcpe\protocol\types\recipe\ShapelessRecipe as ProtocolShapelessRecipe;
|
||||
use pocketmine\timings\Timings;
|
||||
use pocketmine\utils\Binary;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function array_map;
|
||||
use function json_encode;
|
||||
use function spl_object_id;
|
||||
|
@ -53,7 +53,7 @@ use pocketmine\network\mcpe\protocol\types\entity\StringMetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\PlayerListEntry;
|
||||
use pocketmine\player\Player;
|
||||
use pocketmine\utils\Limits;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use pocketmine\world\sound\TotemUseSound;
|
||||
use pocketmine\world\World;
|
||||
use function array_filter;
|
||||
|
@ -42,7 +42,7 @@ use pocketmine\network\mcpe\protocol\types\SkinImage;
|
||||
use pocketmine\player\Player;
|
||||
use pocketmine\player\PlayerInfo;
|
||||
use pocketmine\Server;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function array_map;
|
||||
use function base64_decode;
|
||||
|
||||
|
@ -30,7 +30,7 @@ use pocketmine\network\mcpe\protocol\serializer\NetworkBinaryStream;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\EntityLink;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\MetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\inventory\ItemStack;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function count;
|
||||
|
||||
class AddPlayerPacket extends DataPacket implements ClientboundPacket{
|
||||
|
@ -27,7 +27,7 @@ namespace pocketmine\network\mcpe\protocol;
|
||||
|
||||
use pocketmine\network\mcpe\protocol\serializer\NetworkBinaryStream;
|
||||
use pocketmine\network\mcpe\protocol\types\inventory\ItemStack;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function count;
|
||||
|
||||
class CraftingEventPacket extends DataPacket implements ServerboundPacket{
|
||||
|
@ -27,7 +27,7 @@ namespace pocketmine\network\mcpe\protocol;
|
||||
|
||||
use pocketmine\network\mcpe\protocol\serializer\NetworkBinaryStream;
|
||||
use pocketmine\network\mcpe\protocol\types\SkinData;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
|
||||
class PlayerSkinPacket extends DataPacket implements ClientboundPacket, ServerboundPacket{
|
||||
public const NETWORK_ID = ProtocolInfo::PLAYER_SKIN_PACKET;
|
||||
|
@ -55,7 +55,7 @@ use pocketmine\network\mcpe\protocol\types\StructureEditorData;
|
||||
use pocketmine\network\mcpe\protocol\types\StructureSettings;
|
||||
use pocketmine\utils\BinaryDataException;
|
||||
use pocketmine\utils\BinaryStream;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function count;
|
||||
use function strlen;
|
||||
|
||||
|
@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\network\mcpe\protocol\types;
|
||||
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
|
||||
class PlayerListEntry{
|
||||
|
||||
|
@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\network\mcpe\protocol\types;
|
||||
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
|
||||
class SkinData{
|
||||
|
||||
|
@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\network\mcpe\protocol\types\command;
|
||||
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
|
||||
class CommandOriginData{
|
||||
public const ORIGIN_PLAYER = 0;
|
||||
|
@ -24,7 +24,7 @@ declare(strict_types=1);
|
||||
namespace pocketmine\network\mcpe\protocol\types\recipe;
|
||||
|
||||
use pocketmine\network\mcpe\protocol\serializer\NetworkBinaryStream;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
|
||||
final class MultiRecipe extends RecipeWithTypeId{
|
||||
|
||||
|
@ -25,7 +25,7 @@ namespace pocketmine\network\mcpe\protocol\types\recipe;
|
||||
|
||||
use pocketmine\network\mcpe\protocol\serializer\NetworkBinaryStream;
|
||||
use pocketmine\network\mcpe\protocol\types\inventory\ItemStack;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function count;
|
||||
|
||||
final class ShapedRecipe extends RecipeWithTypeId{
|
||||
|
@ -25,7 +25,7 @@ namespace pocketmine\network\mcpe\protocol\types\recipe;
|
||||
|
||||
use pocketmine\network\mcpe\protocol\serializer\NetworkBinaryStream;
|
||||
use pocketmine\network\mcpe\protocol\types\inventory\ItemStack;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function count;
|
||||
|
||||
final class ShapelessRecipe extends RecipeWithTypeId{
|
||||
|
@ -96,7 +96,7 @@ use pocketmine\permission\PermissionManager;
|
||||
use pocketmine\Server;
|
||||
use pocketmine\timings\Timings;
|
||||
use pocketmine\utils\TextFormat;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use pocketmine\world\ChunkListener;
|
||||
use pocketmine\world\ChunkListenerNoOpTrait;
|
||||
use pocketmine\world\ChunkLoader;
|
||||
|
@ -25,7 +25,7 @@ namespace pocketmine\player;
|
||||
|
||||
use pocketmine\entity\Skin;
|
||||
use pocketmine\utils\TextFormat;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
|
||||
/**
|
||||
* Encapsulates data needed to create a player.
|
||||
|
@ -31,8 +31,8 @@ use pocketmine\utils\AssumptionFailedError;
|
||||
use pocketmine\utils\Internet;
|
||||
use pocketmine\utils\Process;
|
||||
use pocketmine\utils\Utils;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\utils\VersionString;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function array_map;
|
||||
use function array_values;
|
||||
use function count;
|
||||
|
@ -1,132 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\utils;
|
||||
|
||||
use function bin2hex;
|
||||
use function getmypid;
|
||||
use function getmyuid;
|
||||
use function hash;
|
||||
use function hex2bin;
|
||||
use function implode;
|
||||
use function mt_rand;
|
||||
use function str_replace;
|
||||
use function strlen;
|
||||
use function substr;
|
||||
use function time;
|
||||
use function trim;
|
||||
|
||||
final class UUID{
|
||||
|
||||
/** @var int[] */
|
||||
private $parts;
|
||||
/** @var int */
|
||||
private $version;
|
||||
|
||||
public function __construct(int $part1 = 0, int $part2 = 0, int $part3 = 0, int $part4 = 0, ?int $version = null){
|
||||
$this->parts = [$part1, $part2, $part3, $part4];
|
||||
|
||||
$this->version = $version ?? ($this->parts[1] & 0xf000) >> 12;
|
||||
}
|
||||
|
||||
public function getVersion() : int{
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
public function equals(UUID $uuid) : bool{
|
||||
return $uuid->parts === $this->parts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an UUID from an hexadecimal representation
|
||||
*/
|
||||
public static function fromString(string $uuid, ?int $version = null) : UUID{
|
||||
//TODO: should we be stricter about the notation (8-4-4-4-12)?
|
||||
$binary = @hex2bin(str_replace("-", "", trim($uuid)));
|
||||
if($binary === false){
|
||||
throw new \InvalidArgumentException("Invalid hex string UUID representation");
|
||||
}
|
||||
return self::fromBinary($binary, $version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an UUID from a binary representation
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public static function fromBinary(string $uuid, ?int $version = null) : UUID{
|
||||
if(strlen($uuid) !== 16){
|
||||
throw new \InvalidArgumentException("Must have exactly 16 bytes");
|
||||
}
|
||||
|
||||
return new UUID(Binary::readInt(substr($uuid, 0, 4)), Binary::readInt(substr($uuid, 4, 4)), Binary::readInt(substr($uuid, 8, 4)), Binary::readInt(substr($uuid, 12, 4)), $version);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an UUIDv3 from binary data or list of binary data
|
||||
*
|
||||
* @param string ...$data
|
||||
*/
|
||||
public static function fromData(string ...$data) : UUID{
|
||||
$hash = hash("md5", implode($data), true);
|
||||
|
||||
return self::fromBinary($hash, 3);
|
||||
}
|
||||
|
||||
public static function fromRandom() : UUID{
|
||||
return self::fromData(Binary::writeInt(time()), Binary::writeShort(getmypid()), Binary::writeShort(getmyuid()), Binary::writeInt(mt_rand(-0x7fffffff, 0x7fffffff)), Binary::writeInt(mt_rand(-0x7fffffff, 0x7fffffff)));
|
||||
}
|
||||
|
||||
public function toBinary() : string{
|
||||
return Binary::writeInt($this->parts[0]) . Binary::writeInt($this->parts[1]) . Binary::writeInt($this->parts[2]) . Binary::writeInt($this->parts[3]);
|
||||
}
|
||||
|
||||
public function toString() : string{
|
||||
$hex = bin2hex($this->toBinary());
|
||||
|
||||
//xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 8-4-4-4-12
|
||||
return substr($hex, 0, 8) . "-" . substr($hex, 8, 4) . "-" . substr($hex, 12, 4) . "-" . substr($hex, 16, 4) . "-" . substr($hex, 20, 12);
|
||||
}
|
||||
|
||||
public function __toString() : string{
|
||||
return $this->toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function getPart(int $partNumber){
|
||||
if($partNumber < 0 or $partNumber > 3){
|
||||
throw new \InvalidArgumentException("Invalid UUID part index $partNumber");
|
||||
}
|
||||
return $this->parts[$partNumber];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int[]
|
||||
*/
|
||||
public function getParts() : array{
|
||||
return $this->parts;
|
||||
}
|
||||
}
|
@ -28,6 +28,7 @@ declare(strict_types=1);
|
||||
namespace pocketmine\utils;
|
||||
|
||||
use DaveRandom\CallbackValidator\CallbackType;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function array_combine;
|
||||
use function array_map;
|
||||
use function array_reverse;
|
||||
|
@ -36,7 +36,7 @@ use pocketmine\network\mcpe\protocol\types\entity\FloatMetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\entity\LongMetadataProperty;
|
||||
use pocketmine\network\mcpe\protocol\types\inventory\ItemStack;
|
||||
use pocketmine\network\mcpe\protocol\types\PlayerListEntry;
|
||||
use pocketmine\utils\UUID;
|
||||
use pocketmine\uuid\UUID;
|
||||
use function str_repeat;
|
||||
|
||||
class FloatingTextParticle implements Particle{
|
||||
|
Loading…
x
Reference in New Issue
Block a user