This repository has been archived by the owner on Sep 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 49
/
PortalCreateEventListener.java
78 lines (66 loc) · 3.56 KB
/
PortalCreateEventListener.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.worldql.client.listeners;
import WorldQLFB_OLD.StandardEvents.Update;
import com.google.flatbuffers.FlatBufferBuilder;
import com.worldql.client.WorldQLClient;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.BlockState;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.world.PortalCreateEvent;
import zmq.ZMQ;
public class PortalCreateEventListener implements Listener {
@EventHandler
public void onPortalCreate(PortalCreateEvent e) {
WorldQLClient.getPluginInstance().getLogger().info(String.valueOf(e.getReason()));
//WorldQLClient.logger.info("!!!");
for (final BlockState b : e.getBlocks()) {
//WorldQLClient.logger.info(b.getBlockData().getMaterial().toString());
if (b.getBlockData().getMaterial().equals(Material.NETHER_PORTAL) || b.getBlockData().getMaterial().equals(Material.OBSIDIAN)) {
Location l = b.getLocation();
FlatBufferBuilder builder = new FlatBufferBuilder(1024);
int instruction = builder.createString("MinecraftBlockPlace");
int blockData = builder.createString(b.getBlockData().getAsString());
int worldName = builder.createString(b.getBlock().getWorld().getName());
int[] paramsArray = {blockData};
int params = Update.createParamsVector(builder, paramsArray);
Update.startUpdate(builder);
Update.addInstruction(builder, instruction);
Update.addWorldName(builder, worldName);
Update.addPosition(builder, PlayerBreakBlockListener.createRoundedVec3(builder, l.getX(), l.getY(), l.getZ()));
Update.addParams(builder, params);
Update.addSenderid(builder, WorldQLClient.getPluginInstance().getZmqPortClientId());
int blockUpdate = Update.endUpdate(builder);
builder.finish(blockUpdate);
byte[] buf = builder.sizedByteArray();
WorldQLClient.getPluginInstance().getPushSocket().send(buf, ZMQ.ZMQ_DONTWAIT);
}
}
}
@EventHandler
public void onBlockPhysics(BlockPhysicsEvent e) {
/*
if(e.getChangedType() == Material.NETHER_PORTAL && e.getSourceBlock().getBlockData().getMaterial().equals(Material.AIR)) {
//WorldQLClient.logger.info("BLOCKPHYSICS ON NETHER PORTAL");
Location l = e.getBlock().getLocation();
FlatBufferBuilder builder = new FlatBufferBuilder(1024);
int instruction = builder.createString("MinecraftBlockBreak");
int blockdata = builder.createString(e.getBlock().getBlockData().getAsString());
int worldName = builder.createString(e.getBlock().getWorld().getName());
int[] params_array = {blockdata};
int params = Update.createParamsVector(builder, params_array);
Update.startUpdate(builder);
Update.addInstruction(builder, instruction);
Update.addWorldName(builder, worldName);
Update.addPosition(builder, PlayerBlockPlaceListener.createRoundedVec3(builder, l.getX(), l.getY(), l.getZ()));
Update.addParams(builder, params);
Update.addSenderid(builder, WorldQLClient.zmqPortClientId);
int blockupdate = Update.endUpdate(builder);
builder.finish(blockupdate);
byte[] buf = builder.sizedByteArray();
WorldQLClient.push_socket.send(buf, 0);
}
*/
}
}