PocketMine-MP
5.28.3 git-94fb5d95b92604840dabb719f04327efa559cf94
Loading...
Searching...
No Matches
CallbackInventoryListener.php
1
<?php
2
3
/*
4
*
5
* ____ _ _ __ __ _ __ __ ____
6
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* @author PocketMine Team
17
* @link http://www.pocketmine.net/
18
*
19
*
20
*/
21
22
declare(strict_types=1);
23
24
namespace
pocketmine\inventory
;
25
26
use
pocketmine\item\Item
;
27
use
pocketmine\utils\Utils
;
28
29
class
CallbackInventoryListener
implements
InventoryListener
{
30
31
//TODO: turn the closure signatures into type aliases when PHPStan supports them
32
37
public
function
__construct
(
38
private
?\Closure $onSlotChange,
39
private
?\Closure $onContentChange
40
){
41
if
($onSlotChange !==
null
){
42
Utils::validateCallableSignature(
function
(
Inventory
$inventory,
int
$slot,
Item
$oldItem) :
void
{}, $onSlotChange);
43
}
44
if
($onContentChange !==
null
){
45
Utils::validateCallableSignature(
function
(
Inventory
$inventory, array $oldContents) :
void
{}, $onContentChange);
46
}
47
}
48
52
public
static
function
onAnyChange
(\Closure $onChange) : self{
53
return new self(
54
static function(
Inventory
$inventory, int $unused,
Item
$unusedB) use ($onChange) : void{
55
$onChange($inventory);
56
},
57
static
function
(
Inventory
$inventory, array $unused) use ($onChange) : void{
58
$onChange($inventory);
59
}
60
);
61
}
62
63
public
function
onSlotChange(Inventory $inventory,
int
$slot, Item $oldItem) : void{
64
if($this->onSlotChange !== null){
65
($this->onSlotChange)($inventory, $slot, $oldItem);
66
}
67
}
68
72
public
function
onContentChange
(
Inventory
$inventory, array $oldContents) : void{
73
if($this->onContentChange !== null){
74
($this->onContentChange)($inventory, $oldContents);
75
}
76
}
77
}
pocketmine\inventory\CallbackInventoryListener
Definition
CallbackInventoryListener.php:29
pocketmine\inventory\CallbackInventoryListener\onContentChange
onContentChange(Inventory $inventory, array $oldContents)
Definition
CallbackInventoryListener.php:72
pocketmine\inventory\CallbackInventoryListener\__construct
__construct(private ?\Closure $onSlotChange, private ?\Closure $onContentChange)
Definition
CallbackInventoryListener.php:37
pocketmine\inventory\CallbackInventoryListener\onAnyChange
static onAnyChange(\Closure $onChange)
Definition
CallbackInventoryListener.php:52
pocketmine\item\Item
Definition
Item.php:60
pocketmine\utils\Utils
Definition
Utils.php:105
pocketmine\inventory\Inventory
Definition
Inventory.php:33
pocketmine\inventory\InventoryListener
Definition
InventoryListener.php:34
pocketmine\inventory
Definition
ArmorInventory.php:24
src
inventory
CallbackInventoryListener.php
Generated by
1.12.0