1
1
<?php
2
2
3
+ declare (strict_types=1 );
4
+
3
5
namespace BlusterySasha \LimitGM ;
4
6
7
+ use EventListener ;
5
8
use pocketmine \plugin \PluginBase ;
6
- use pocketmine \Player ;
7
- use pocketmine \block \Block ;
8
- use pocketmine \event \Listener ;
9
- use pocketmine \event \player \PlayerDropItemEvent ;
10
- use pocketmine \event \player \PlayerDeathEvent ;
11
- use pocketmine \event \player \PlayerGameModeChangeEvent ;
12
- use pocketmine \event \player \PlayerInteractEvent ;
13
- use pocketmine \event \entity \EntityDamageEvent ;
14
- use pocketmine \event \entity \EntityDamageByEntityEvent ;
15
- use pocketmine \event \block \BlockPlaceEvent ;
16
- use pocketmine \network \mcpe \protocol \PlaySoundPacket ;
17
-
18
- class Main extends PluginBase implements Listener {
19
-
20
- public function onEnable () {
21
- $ this ->getServer ()->getPluginManager ()->registerEvents ($ this , $ this );
22
- }
23
-
24
- public function onPlace (BlockPlaceEvent $ event ) {
25
- $ player = $ event ->getPlayer ();
26
- if ($ player ->isOp () || $ player ->hasPermission ("system.bypass " )) {
27
- return ;
28
- }
29
- $ block = $ event ->getBlock ()->getId ();
30
- $ blacklist = [Block::FIRE , Block::LAVA , Block::ACTIVATOR_RAIL , Block::WATER , Block::HOPPER_BLOCK , Block::PACKED_ICE , Block::ICE , Block::MONSTER_SPAWNER , Block::SAND , Block::ENDER_CHEST , Block::RAIL , Block::ENCHANTMENT_TABLE , Block::ANVIL , Block::ITEM_FRAME_BLOCK , Block::SHULKER_BOX , Block::TNT , Block::DIAMOND_BLOCK , Block::IRON_BLOCK , Block::LAPIS_BLOCK , Block::EMERALD_BLOCK , Block::COAL_BLOCK , Block::UNDYED_SHULKER_BOX , Block::DIAMOND_ORE , Block::QUARTZ_ORE , Block::EMERALD_ORE , Block::COAL_ORE , Block::REDSTONE_ORE , Block::LAPIS_ORE , Block::IRON_ORE , Block::GOLD_ORE , Block::GOLD_BLOCK , Block::OBSIDIAN , Block::BEDROCK , Block::END_PORTAL_FRAME , Block::PISTON , Block::STICKY_PISTON ];
31
- if ($ player ->isCreative ()) {
32
- if (in_array ($ blocks , $ blacklist )) {
33
- $ player ->sendTip ("§l§7Вы не можете ставить данный блок в креативе! " );
34
- $ event ->setCancelled ();
35
- $ pk = new PlaySoundPacket ();
36
- $ pk ->x = $ player ->getX ();
37
- $ pk ->y = $ player ->getY ();
38
- $ pk ->z = $ player ->getZ ();
39
- $ pk ->volume = 1 ;
40
- $ pk ->pitch = 1 ;
41
- $ pk ->soundName = 'cauldron.explode ' ;
42
- $ player ->dataPacket ($ pk );
43
- }
44
- }
45
- }
46
-
47
- public function onPlayerGameModeChange (PlayerGameModeChangeEvent $ event ) {
48
- $ player = $ event ->getPlayer ();
49
- if ($ player ->isOp () || $ player ->hasPermission ("system.bypass " )) {
50
- return ;
51
- }
52
- $ player ->getInventory ()->clearAll ();
53
- $ player ->getArmorInventory ()->clearAll ();
54
- $ player ->sendTip ("§l§7Предметы очищены, т. к. Вы перешли в другой режим! " );
55
- $ player ->addTitle ("§e§lПредметы очищены§7! " , " " );
56
- $ pk = new PlaySoundPacket ();
57
- $ pk ->x = $ player ->getX ();
58
- $ pk ->y = $ player ->getY ();
59
- $ pk ->z = $ player ->getZ ();
60
- $ pk ->volume = 1 ;
61
- $ pk ->pitch = 1 ;
62
- $ pk ->soundName = 'cauldron.explode ' ;
63
- $ player ->dataPacket ($ pk );
64
- }
65
-
66
- public function onInteract (PlayerInteractEvent $ event ) {
67
- $ player = $ event ->getPlayer ();
68
- if ($ player ->isOp () || $ player ->hasPermission ("system.bypass " )) {
69
- return ;
70
- }
71
- $ block = $ event ->getBlock ()->getId ();
72
- $ blacklist = [Block::WATER , Block::LAVA , Block::MONSTER_SPAWNER , Block::HOPPER_BLOCK , Block::ENDER_CHEST , Block::CRAFTING_TABLE , Block::CHEST , Block::FURNACE , Block::BURNING_FURNACE , Block::TRAPPED_CHEST , Block::ENCHANTMENT_TABLE , Block::ANVIL , Block::ITEM_FRAME_BLOCK , Block::SHULKER_BOX , Block::TNT , Block::DROPPER , Block::DISPENSER , Block::UNDYED_SHULKER_BOX ];
73
- if ($ player ->isCreative ()) {
74
- if (in_array ($ blocks , $ blacklist )) {
75
- $ player ->sendTip ("§l§7Данный блок нельзя трогать в креативе! " );
76
- $ pk = new PlaySoundPacket ();
77
- $ pk ->x = $ player ->getX ();
78
- $ pk ->y = $ player ->getY ();
79
- $ pk ->z = $ player ->getZ ();
80
- $ pk ->volume = 1 ;
81
- $ pk ->pitch = 1 ;
82
- $ pk ->soundName = 'cauldron.explode ' ;
83
- $ player ->dataPacket ($ pk );
84
- $ event ->setCancelled ();
85
- }
86
- }
87
- }
88
-
89
- public function onPlayerDeath (PlayerDeathEvent $ event ) {
90
- $ player = $ event ->getPlayer ();
91
- if ($ player ->isOp () || $ player ->hasPermission ("system.bypass " )) {
92
- return ;
93
- }
94
- if ($ player ->isCreative ()) {
95
- $ player ->getInventory ()->clearAll ();
96
- $ player ->getArmorInventory ()->clearAll ();
97
- $ player ->addTitle ("§c§lВы умерли§7! " , " " );
98
- $ pk = new PlaySoundPacket ();
99
- $ pk ->x = $ player ->getX ();
100
- $ pk ->y = $ player ->getY ();
101
- $ pk ->z = $ player ->getZ ();
102
- $ pk ->volume = 1 ;
103
- $ pk ->pitch = 1 ;
104
- $ pk ->soundName = 'cauldron.explode ' ;
105
- $ player ->dataPacket ($ pk );
106
- }
107
- }
108
-
109
- public function onDropItem (PlayerDropItemEvent $ event ) {
110
- $ player = $ event ->getPlayer ();
111
- if ($ player ->isOp () || $ player ->hasPermission ("system.bypass " )) {
112
- return ;
113
- }
114
- if ($ player ->isCreative ()) {
115
- $ player ->sendTip ("§l§7Вы не можете выбрасывать вещи в творческом режиме! " );
116
- $ pk = new PlaySoundPacket ();
117
- $ pk ->x = $ player ->getX ();
118
- $ pk ->y = $ player ->getY ();
119
- $ pk ->z = $ player ->getZ ();
120
- $ pk ->volume = 1 ;
121
- $ pk ->pitch = 1 ;
122
- $ pk ->soundName = 'cauldron.explode ' ;
123
- $ player ->dataPacket ($ pk );
124
- $ event ->setCancelled ();
125
- }
126
- }
127
9
128
- public function onAttack (EntityDamageEvent $ event ) {
129
- if ($ event instanceof EntityDamageByEntityEvent) {
130
- $ player = $ event ->getDamager ();
131
- if ($ player ->isOp () || $ player ->hasPermission ("system.bypass " )) {
132
- return ;
133
- }
134
- if ($ player instanceof Player) {
135
- if ($ player ->isCreative ()) {
136
- $ player ->sendTip ("§l§7Вы не можете бить игроков в креативе! " );
137
- $ pk = new PlaySoundPacket ();
138
- $ pk ->x = $ player ->getX ();
139
- $ pk ->y = $ player ->getY ();
140
- $ pk ->z = $ player ->getZ ();
141
- $ pk ->volume = 1 ;
142
- $ pk ->pitch = 1 ;
143
- $ pk ->soundName = 'cauldron.explode ' ;
144
- $ player ->dataPacket ($ pk );
145
- $ event ->setCancelled ();
146
- }
147
- }
148
- }
149
- }
150
- }
10
+ class Main extends PluginBase {
11
+ public function onEnable () {
12
+ $ this ->getLogger ()->info ("§cПлагин успешно запущен! " );
13
+ $ this ->getLogger ()->info ("§cАвтор плагина: §e§lvk.com/blusterysasha " );
14
+ $ this ->getServer ()->getPluginManager ()->registerEvents (new EventListener (), $ this );
15
+ }
16
+ }
0 commit comments