summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPugmatt <pugmatt@gmail.com>2020-07-06 22:42:59 -0400
committerPugmatt <pugmatt@gmail.com>2020-07-06 22:42:59 -0400
commit7dfb6720cc167c37065942c67337aedf1a1e2035 (patch)
tree09fdbbfaa15b4160e4d121390e5693c1a47aca3e
parentb56476391b879646151ae901ac5d12da300fc30b (diff)
downloadBedrockConnect-7dfb6720cc167c37065942c67337aedf1a1e2035.tar.gz
BedrockConnect-7dfb6720cc167c37065942c67337aedf1a1e2035.tar.bz2
BedrockConnect-7dfb6720cc167c37065942c67337aedf1a1e2035.zip
Initial 1.16 push
-rw-r--r--serverlist-server/BedrockConnect.iml28
-rw-r--r--serverlist-server/pom.xml50
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java69
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Bedrock_v390.java296
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PacketCatcher.java14
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java63
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java23
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/dns/DNS.java99
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java18
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java805
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java72
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/MySQL.java3
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java82
-rw-r--r--serverlist-server/src/main/resources/tables/biome_definitions.datbin3544 -> 37626 bytes
-rw-r--r--serverlist-server/src/main/resources/tables/creative_items.json8361
-rw-r--r--serverlist-server/src/main/resources/tables/entity_identifiers.datbin8349 -> 8775 bytes
-rw-r--r--serverlist-server/src/main/resources/tables/runtime_block_states.datbin302699 -> 1063028 bytes
17 files changed, 4638 insertions, 5345 deletions
diff --git a/serverlist-server/BedrockConnect.iml b/serverlist-server/BedrockConnect.iml
index 667e8d4..52fad66 100644
--- a/serverlist-server/BedrockConnect.iml
+++ b/serverlist-server/BedrockConnect.iml
@@ -13,26 +13,8 @@
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v389:2.5.2" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v388:2.5.2" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-common:2.5.2" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.protocol:common:2.5.2" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.network:common:1.6.16" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: cn.nukkit:nukkit-natives:1.0.1-SNAPSHOT" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx:nbt:1.5.1" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx.network:raknet:1.6.16" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.43.Final" level="project" />
- <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.43.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.5" level="project" />
- <orderEntry type="library" name="Maven: com.nukkitx:math:1.0.0" level="project" />
<orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.39.2" level="project" />
<orderEntry type="library" name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1" level="project" />
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
@@ -47,5 +29,15 @@
<orderEntry type="library" name="Maven: net.sf.trove4j:trove-generator:3.1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.19" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
+ <orderEntry type="library" name="Maven: dnsjava:dnsjava:3.0.2" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:slf4j-simple:1.7.21" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.43.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.43.Final" level="project" />
</component>
</module> \ No newline at end of file
diff --git a/serverlist-server/pom.xml b/serverlist-server/pom.xml
index 5325ea3..b967d68 100644
--- a/serverlist-server/pom.xml
+++ b/serverlist-server/pom.xml
@@ -67,14 +67,24 @@
<repositories>
<repository>
- <id>nukkitx-repo-release</id>
- <url>https://repo.nukkitx.com/maven-releases/</url>
+ <id>nukkitx-repo</id>
+ <url>https://repo.nukkitx.com/snapshot</url>
</repository>
+ </repositories>
+
+ <distributionManagement>
<repository>
- <id>nukkitx-repo-snapshot</id>
- <url>https://repo.nukkitx.com/maven-snapshots/</url>
+ <id>releases</id>
+ <name>nukkitx-releases</name>
+ <url>https://repo.nukkitx.com/maven-releases</url>
</repository>
- </repositories>
+ <snapshotRepository>
+ <id>snapshots</id>
+ <name>nukkitx-snapshots</name>
+ <url>https://repo.nukkitx.com/maven-snapshots</url>
+ </snapshotRepository>
+ </distributionManagement>
+
<dependencies>
<!-- https://mvnrepository.com/artifact/net.minidev/json-smart -->
<dependency>
@@ -82,12 +92,19 @@
<artifactId>json-smart</artifactId>
<version>2.3</version>
</dependency>
- <dependency>
+ <!-- <dependency>
<groupId>com.nukkitx.protocol</groupId>
<artifactId>bedrock-v389</artifactId>
<version>2.5.2</version>
<scope>compile</scope>
- </dependency>
+ <exclusions>
+ <exclusion>
+ <groupId>net.sf.trove4j</groupId>
+ <artifactId>trove</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency> -->
+
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
@@ -137,6 +154,25 @@
<type>jar</type>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>dnsjava</groupId>
+ <artifactId>dnsjava</artifactId>
+ <version>3.0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.21</version>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-resolver-dns</artifactId>
+ <version>4.1.43.Final</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- Proxy Stuff -->
+
</dependencies>
</project>
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java
index b58f1d9..3c72590 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java
@@ -1,5 +1,6 @@
package main.com.pyratron.pugmatt.bedrockconnect;
+import main.com.pyratron.pugmatt.bedrockconnect.dns.DNS;
import main.com.pyratron.pugmatt.bedrockconnect.sql.Data;
import main.com.pyratron.pugmatt.bedrockconnect.sql.MySQL;
import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager;
@@ -41,6 +42,12 @@ public class BedrockConnect {
String serverLimit = "100";
+ String localIP = null;
+ String publicIP = null;
+ String localIPV6 = null;
+ String publicIPV6 = null;
+ boolean enableDNS = false;
+
for(String str : args) {
if(str.startsWith("mysql_host="))
hostname = getArgValue(str, "mysql_host");
@@ -100,6 +107,68 @@ public class BedrockConnect {
throw new RuntimeException(e);
}
}
+ if(str.startsWith("localipv4=")) {
+ localIP = getArgValue(str, "localipv4");
+ }
+ if(str.startsWith("localipv6=")) {
+ localIPV6 = getArgValue(str, "localipv6");
+ }
+ if(str.startsWith("publicipv4=")) {
+ publicIP = getArgValue(str, "publicipv4");
+ }
+ if(str.startsWith("publicipv6=")) {
+ publicIPV6 = getArgValue(str, "publicipv6");
+ }
+ if(str.startsWith("enabledns=")) {
+ enableDNS = true;
+ }
+ }
+
+ if(enableDNS) {
+ if(localIP == null) {
+ String ip;
+
+ try {
+ Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
+
+ System.out.println("Local IPv4 IPs:");
+ while (interfaces.hasMoreElements()) {
+ NetworkInterface iface = interfaces.nextElement();
+
+ if (iface.isLoopback() || !iface.isUp() || iface.isVirtual() || iface.isPointToPoint())
+ continue;
+
+ Enumeration<InetAddress> addresses = iface.getInetAddresses();
+ while (addresses.hasMoreElements()) {
+ InetAddress addr = addresses.nextElement();
+
+ if (!(addr instanceof Inet4Address)) continue;
+
+ ip = addr.getHostAddress();
+ System.out.println(iface.getDisplayName() + ": " + ip);
+ }
+ }
+
+ Scanner reader = new Scanner(System.in); // Reading from System.in
+ System.out.print("\nEnter the local IPv4 that players inside your WiFi network will connect to: ");
+ localIP = reader.next().replaceAll("\\s+", "");
+ reader.close();
+ } catch (SocketException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+ if(publicIP == null) {
+ URL whatismyip = new URL("http://checkip.amazonaws.com");
+ BufferedReader in = new BufferedReader(new InputStreamReader(
+ whatismyip.openStream()));
+
+ publicIP = in.readLine();
+ }
+
+ DNS dnsServer = new DNS(localIP, publicIP, localIPV6, publicIPV6, 53);
+ dnsServer.start();
}
if(!noDB)
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Bedrock_v390.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Bedrock_v390.java
deleted file mode 100644
index 46e7a69..0000000
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Bedrock_v390.java
+++ /dev/null
@@ -1,296 +0,0 @@
-package main.com.pyratron.pugmatt.bedrockconnect;
-
-import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
-import com.nukkitx.protocol.bedrock.packet.AddBehaviorTreePacket;
-import com.nukkitx.protocol.bedrock.packet.AddEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.AddItemEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.AddPaintingPacket;
-import com.nukkitx.protocol.bedrock.packet.AddPlayerPacket;
-import com.nukkitx.protocol.bedrock.packet.AdventureSettingsPacket;
-import com.nukkitx.protocol.bedrock.packet.AnimatePacket;
-import com.nukkitx.protocol.bedrock.packet.AnvilDamagePacket;
-import com.nukkitx.protocol.bedrock.packet.AutomationClientConnectPacket;
-import com.nukkitx.protocol.bedrock.packet.AvailableCommandsPacket;
-import com.nukkitx.protocol.bedrock.packet.AvailableEntityIdentifiersPacket;
-import com.nukkitx.protocol.bedrock.packet.BiomeDefinitionListPacket;
-import com.nukkitx.protocol.bedrock.packet.BlockEntityDataPacket;
-import com.nukkitx.protocol.bedrock.packet.BlockEventPacket;
-import com.nukkitx.protocol.bedrock.packet.BlockPickRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.BookEditPacket;
-import com.nukkitx.protocol.bedrock.packet.BossEventPacket;
-import com.nukkitx.protocol.bedrock.packet.CameraPacket;
-import com.nukkitx.protocol.bedrock.packet.ChangeDimensionPacket;
-import com.nukkitx.protocol.bedrock.packet.ChunkRadiusUpdatedPacket;
-import com.nukkitx.protocol.bedrock.packet.ClientCacheBlobStatusPacket;
-import com.nukkitx.protocol.bedrock.packet.ClientCacheMissResponsePacket;
-import com.nukkitx.protocol.bedrock.packet.ClientCacheStatusPacket;
-import com.nukkitx.protocol.bedrock.packet.ClientToServerHandshakePacket;
-import com.nukkitx.protocol.bedrock.packet.ClientboundMapItemDataPacket;
-import com.nukkitx.protocol.bedrock.packet.CommandBlockUpdatePacket;
-import com.nukkitx.protocol.bedrock.packet.CommandOutputPacket;
-import com.nukkitx.protocol.bedrock.packet.CommandRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.CompletedUsingItemPacket;
-import com.nukkitx.protocol.bedrock.packet.ContainerClosePacket;
-import com.nukkitx.protocol.bedrock.packet.ContainerOpenPacket;
-import com.nukkitx.protocol.bedrock.packet.ContainerSetDataPacket;
-import com.nukkitx.protocol.bedrock.packet.CraftingDataPacket;
-import com.nukkitx.protocol.bedrock.packet.CraftingEventPacket;
-import com.nukkitx.protocol.bedrock.packet.DisconnectPacket;
-import com.nukkitx.protocol.bedrock.packet.EducationSettingsPacket;
-import com.nukkitx.protocol.bedrock.packet.EmotePacket;
-import com.nukkitx.protocol.bedrock.packet.EntityEventPacket;
-import com.nukkitx.protocol.bedrock.packet.EntityFallPacket;
-import com.nukkitx.protocol.bedrock.packet.EntityPickRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.EventPacket;
-import com.nukkitx.protocol.bedrock.packet.GameRulesChangedPacket;
-import com.nukkitx.protocol.bedrock.packet.GuiDataPickItemPacket;
-import com.nukkitx.protocol.bedrock.packet.HurtArmorPacket;
-import com.nukkitx.protocol.bedrock.packet.InteractPacket;
-import com.nukkitx.protocol.bedrock.packet.InventoryContentPacket;
-import com.nukkitx.protocol.bedrock.packet.InventorySlotPacket;
-import com.nukkitx.protocol.bedrock.packet.InventoryTransactionPacket;
-import com.nukkitx.protocol.bedrock.packet.ItemFrameDropItemPacket;
-import com.nukkitx.protocol.bedrock.packet.LabTablePacket;
-import com.nukkitx.protocol.bedrock.packet.LecternUpdatePacket;
-import com.nukkitx.protocol.bedrock.packet.LevelChunkPacket;
-import com.nukkitx.protocol.bedrock.packet.LevelEventGenericPacket;
-import com.nukkitx.protocol.bedrock.packet.LevelEventPacket;
-import com.nukkitx.protocol.bedrock.packet.LevelSoundEvent1Packet;
-import com.nukkitx.protocol.bedrock.packet.LevelSoundEvent2Packet;
-import com.nukkitx.protocol.bedrock.packet.LevelSoundEventPacket;
-import com.nukkitx.protocol.bedrock.packet.LoginPacket;
-import com.nukkitx.protocol.bedrock.packet.MapCreateLockedCopyPacket;
-import com.nukkitx.protocol.bedrock.packet.MapInfoRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.MobArmorEquipmentPacket;
-import com.nukkitx.protocol.bedrock.packet.MobEffectPacket;
-import com.nukkitx.protocol.bedrock.packet.MobEquipmentPacket;
-import com.nukkitx.protocol.bedrock.packet.ModalFormRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.ModalFormResponsePacket;
-import com.nukkitx.protocol.bedrock.packet.MoveEntityAbsolutePacket;
-import com.nukkitx.protocol.bedrock.packet.MoveEntityDeltaPacket;
-import com.nukkitx.protocol.bedrock.packet.MovePlayerPacket;
-import com.nukkitx.protocol.bedrock.packet.MultiplayerSettingsPacket;
-import com.nukkitx.protocol.bedrock.packet.NetworkChunkPublisherUpdatePacket;
-import com.nukkitx.protocol.bedrock.packet.NetworkSettingsPacket;
-import com.nukkitx.protocol.bedrock.packet.NetworkStackLatencyPacket;
-import com.nukkitx.protocol.bedrock.packet.NpcRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.OnScreenTextureAnimationPacket;
-import com.nukkitx.protocol.bedrock.packet.PhotoTransferPacket;
-import com.nukkitx.protocol.bedrock.packet.PlaySoundPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayStatusPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayerActionPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayerAuthInputPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayerHotbarPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayerInputPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayerListPacket;
-import com.nukkitx.protocol.bedrock.packet.PlayerSkinPacket;
-import com.nukkitx.protocol.bedrock.packet.PurchaseReceiptPacket;
-import com.nukkitx.protocol.bedrock.packet.RemoveEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.RemoveObjectivePacket;
-import com.nukkitx.protocol.bedrock.packet.RequestChunkRadiusPacket;
-import com.nukkitx.protocol.bedrock.packet.ResourcePackChunkDataPacket;
-import com.nukkitx.protocol.bedrock.packet.ResourcePackChunkRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.ResourcePackClientResponsePacket;
-import com.nukkitx.protocol.bedrock.packet.ResourcePackDataInfoPacket;
-import com.nukkitx.protocol.bedrock.packet.ResourcePackStackPacket;
-import com.nukkitx.protocol.bedrock.packet.ResourcePacksInfoPacket;
-import com.nukkitx.protocol.bedrock.packet.RespawnPacket;
-import com.nukkitx.protocol.bedrock.packet.RiderJumpPacket;
-import com.nukkitx.protocol.bedrock.packet.ScriptCustomEventPacket;
-import com.nukkitx.protocol.bedrock.packet.ServerSettingsRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.ServerSettingsResponsePacket;
-import com.nukkitx.protocol.bedrock.packet.ServerToClientHandshakePacket;
-import com.nukkitx.protocol.bedrock.packet.SetCommandsEnabledPacket;
-import com.nukkitx.protocol.bedrock.packet.SetDefaultGameTypePacket;
-import com.nukkitx.protocol.bedrock.packet.SetDifficultyPacket;
-import com.nukkitx.protocol.bedrock.packet.SetDisplayObjectivePacket;
-import com.nukkitx.protocol.bedrock.packet.SetEntityDataPacket;
-import com.nukkitx.protocol.bedrock.packet.SetEntityLinkPacket;
-import com.nukkitx.protocol.bedrock.packet.SetEntityMotionPacket;
-import com.nukkitx.protocol.bedrock.packet.SetHealthPacket;
-import com.nukkitx.protocol.bedrock.packet.SetLastHurtByPacket;
-import com.nukkitx.protocol.bedrock.packet.SetLocalPlayerAsInitializedPacket;
-import com.nukkitx.protocol.bedrock.packet.SetPlayerGameTypePacket;
-import com.nukkitx.protocol.bedrock.packet.SetScorePacket;
-import com.nukkitx.protocol.bedrock.packet.SetScoreboardIdentityPacket;
-import com.nukkitx.protocol.bedrock.packet.SetSpawnPositionPacket;
-import com.nukkitx.protocol.bedrock.packet.SetTimePacket;
-import com.nukkitx.protocol.bedrock.packet.SetTitlePacket;
-import com.nukkitx.protocol.bedrock.packet.SettingsCommandPacket;
-import com.nukkitx.protocol.bedrock.packet.ShowCreditsPacket;
-import com.nukkitx.protocol.bedrock.packet.ShowProfilePacket;
-import com.nukkitx.protocol.bedrock.packet.ShowStoreOfferPacket;
-import com.nukkitx.protocol.bedrock.packet.SimpleEventPacket;
-import com.nukkitx.protocol.bedrock.packet.SpawnExperienceOrbPacket;
-import com.nukkitx.protocol.bedrock.packet.SpawnParticleEffectPacket;
-import com.nukkitx.protocol.bedrock.packet.StartGamePacket;
-import com.nukkitx.protocol.bedrock.packet.StopSoundPacket;
-import com.nukkitx.protocol.bedrock.packet.StructureBlockUpdatePacket;
-import com.nukkitx.protocol.bedrock.packet.StructureTemplateDataExportRequestPacket;
-import com.nukkitx.protocol.bedrock.packet.StructureTemplateDataExportResponsePacket;
-import com.nukkitx.protocol.bedrock.packet.SubClientLoginPacket;
-import com.nukkitx.protocol.bedrock.packet.TakeItemEntityPacket;
-import com.nukkitx.protocol.bedrock.packet.TextPacket;
-import com.nukkitx.protocol.bedrock.packet.TickSyncPacket;
-import com.nukkitx.protocol.bedrock.packet.TransferPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateAttributesPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateBlockPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateBlockPropertiesPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateBlockSyncedPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateEquipPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateSoftEnumPacket;
-import com.nukkitx.protocol.bedrock.packet.UpdateTradePacket;
-import com.nukkitx.protocol.bedrock.packet.VideoStreamConnectPacket;
-import com.nukkitx.protocol.bedrock.v388.serializer.AddBehaviorTreeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AddEntitySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AddItemEntitySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AddPaintingSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AddPlayerSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AdventureSettingsSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AnimateSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AnvilDamageSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AutomationClientConnectSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AvailableCommandsSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.AvailableEntityIdentifiersSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.BiomeDefinitionListSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.BlockEntityDataSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.BlockEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.BlockPickRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.BookEditSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.BossEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CameraSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ChangeDimensionSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ChunkRadiusUpdatedSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ClientCacheBlobStatusSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ClientCacheMissResponseSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ClientCacheStatusSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ClientToServerHandshakeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ClientboundMapItemDataSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CommandBlockUpdateSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CommandOutputSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CommandRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CompletedUsingItemSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ContainerCloseSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ContainerOpenSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ContainerSetDataSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CraftingDataSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.CraftingEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.DisconnectSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.EducationSettingsSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.EmoteSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.EntityEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.EntityFallSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.EntityPickRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.GameRulesChangedSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.GuiDataPickItemSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.HurtArmorSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.InteractSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.InventoryContentSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.InventorySlotSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.InventoryTransactionSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ItemFrameDropItemSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LabTableSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LecternUpdateSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LevelChunkSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LevelEventGenericSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LevelEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LevelSoundEvent1Serializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LevelSoundEvent2Serializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LevelSoundEvent3Serializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.LoginSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MapCreateLockedCopySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MapInfoRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MobArmorEquipmentSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MobEffectSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MobEquipmentSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ModalFormRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ModalFormResponseSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MoveEntityAbsoluteSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MoveEntityDeltaSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MovePlayerSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.MultiplayerSettingsSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.NetworkChunkPublisherUpdateSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.NetworkSettingsSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.NetworkStackLatencySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.NpcRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.OnScreenTextureAnimationSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PacketHeaderSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PhotoTransferSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlaySoundSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayStatusSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayerActionSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayerAuthInputSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayerHotbarSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayerInputSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayerListSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PlayerSkinSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.PurchaseReceiptSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.RemoveEntitySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.RemoveObjectiveSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.RequestChunkRadiusSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ResourcePackChunkDataSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ResourcePackChunkRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ResourcePackClientResponseSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ResourcePackDataInfoSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ResourcePackStackSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ResourcePacksInfoSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.RespawnSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.RiderJumpSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ScriptCustomEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ServerSettingsRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ServerSettingsResponseSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ServerToClientHandshakeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetCommandsEnabledSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetDefaultGameTypeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetDifficultySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetDisplayObjectiveSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetEntityDataSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetEntityLinkSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetEntityMotionSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetHealthSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetLastHurtBySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetLocalPlayerAsInitializedSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetPlayerGameTypeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetScoreSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetScoreboardIdentitySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetSpawnPositionSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetTimeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SetTitleSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SettingsCommandSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ShowCreditsSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ShowProfileSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.ShowStoreOfferSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SimpleEventSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SpawnExperienceOrbSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SpawnParticleEffectSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.StartGameSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.StopSoundSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.StructureBlockUpdateSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.StructureTemplateDataExportRequestSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.StructureTemplateDataExportResponseSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.SubClientLoginSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.TakeItemEntitySerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.TextSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.TickSyncSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.TransferSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateAttributesSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateBlockPropertiesSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateBlockSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateBlockSyncedSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateEquipSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateSoftEnumSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.UpdateTradeSerializer_v388;
-import com.nukkitx.protocol.bedrock.v388.serializer.VideoStreamConnectSerializer_v388;
-import com.nukkitx.protocol.bedrock.v389.serializer.EventSerializer_v389;
-
-public final class Bedrock_v390 {
- public static BedrockPacketCodec V390_CODEC;
-
- private Bedrock_v390() {
- throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
- }
-
- static {
- V390_CODEC = BedrockPacketCodec.builder().protocolVersion(390).minecraftVersion("1.14.0").headerSerializer(PacketHeaderSerializer_v388.INSTANCE).registerPacket(LoginPacket.class, LoginSerializer_v388.INSTANCE, 1).registerPacket(PlayStatusPacket.class, PlayStatusSerializer_v388.INSTANCE, 2).registerPacket(ServerToClientHandshakePacket.class, ServerToClientHandshakeSerializer_v388.INSTANCE, 3).registerPacket(ClientToServerHandshakePacket.class, ClientToServerHandshakeSerializer_v388.INSTANCE, 4).registerPacket(DisconnectPacket.class, DisconnectSerializer_v388.INSTANCE, 5).registerPacket(ResourcePacksInfoPacket.class, ResourcePacksInfoSerializer_v388.INSTANCE, 6).registerPacket(ResourcePackStackPacket.class, ResourcePackStackSerializer_v388.INSTANCE, 7).registerPacket(ResourcePackClientResponsePacket.class, ResourcePackClientResponseSerializer_v388.INSTANCE, 8).registerPacket(TextPacket.class, TextSerializer_v388.INSTANCE, 9).registerPacket(SetTimePacket.class, SetTimeSerializer_v388.INSTANCE, 10).registerPacket(StartGamePacket.class, StartGameSerializer_v388.INSTANCE, 11).registerPacket(AddPlayerPacket.class, AddPlayerSerializer_v388.INSTANCE, 12).registerPacket(AddEntityPacket.class, AddEntitySerializer_v388.INSTANCE, 13).registerPacket(RemoveEntityPacket.class, RemoveEntitySerializer_v388.INSTANCE, 14).registerPacket(AddItemEntityPacket.class, AddItemEntitySerializer_v388.INSTANCE, 15).registerPacket(TakeItemEntityPacket.class, TakeItemEntitySerializer_v388.INSTANCE, 17).registerPacket(MoveEntityAbsolutePacket.class, MoveEntityAbsoluteSerializer_v388.INSTANCE, 18).registerPacket(MovePlayerPacket.class, MovePlayerSerializer_v388.INSTANCE, 19).registerPacket(RiderJumpPacket.class, RiderJumpSerializer_v388.INSTANCE, 20).registerPacket(UpdateBlockPacket.class, UpdateBlockSerializer_v388.INSTANCE, 21).registerPacket(AddPaintingPacket.class, AddPaintingSerializer_v388.INSTANCE, 22).registerPacket(TickSyncPacket.class, TickSyncSerializer_v388.INSTANCE, 23).registerPacket(LevelSoundEvent1Packet.class, LevelSoundEvent1Serializer_v388.INSTANCE, 24).registerPacket(LevelEventPacket.class, LevelEventSerializer_v388.INSTANCE, 25).registerPacket(BlockEventPacket.class, BlockEventSerializer_v388.INSTANCE, 26).registerPacket(EntityEventPacket.class, EntityEventSerializer_v388.INSTANCE, 27).registerPacket(MobEffectPacket.class, MobEffectSerializer_v388.INSTANCE, 28).registerPacket(UpdateAttributesPacket.class, UpdateAttributesSerializer_v388.INSTANCE, 29).registerPacket(InventoryTransactionPacket.class, InventoryTransactionSerializer_v388.INSTANCE, 30).registerPacket(MobEquipmentPacket.class, MobEquipmentSerializer_v388.INSTANCE, 31).registerPacket(MobArmorEquipmentPacket.class, MobArmorEquipmentSerializer_v388.INSTANCE, 32).registerPacket(InteractPacket.class, InteractSerializer_v388.INSTANCE, 33).registerPacket(BlockPickRequestPacket.class, BlockPickRequestSerializer_v388.INSTANCE, 34).registerPacket(EntityPickRequestPacket.class, EntityPickRequestSerializer_v388.INSTANCE, 35).registerPacket(PlayerActionPacket.class, PlayerActionSerializer_v388.INSTANCE, 36).registerPacket(EntityFallPacket.class, EntityFallSerializer_v388.INSTANCE, 37).registerPacket(HurtArmorPacket.class, HurtArmorSerializer_v388.INSTANCE, 38).registerPacket(SetEntityDataPacket.class, SetEntityDataSerializer_v388.INSTANCE, 39).registerPacket(SetEntityMotionPacket.class, SetEntityMotionSerializer_v388.INSTANCE, 40).registerPacket(SetEntityLinkPacket.class, SetEntityLinkSerializer_v388.INSTANCE, 41).registerPacket(SetHealthPacket.class, SetHealthSerializer_v388.INSTANCE, 42).registerPacket(SetSpawnPositionPacket.class, SetSpawnPositionSerializer_v388.INSTANCE, 43).registerPacket(AnimatePacket.class, AnimateSerializer_v388.INSTANCE, 44).registerPacket(RespawnPacket.class, RespawnSerializer_v388.INSTANCE, 45).registerPacket(ContainerOpenPacket.class, ContainerOpenSerializer_v388.INSTANCE, 46).registerPacket(ContainerClosePacket.class, ContainerCloseSerializer_v388.INSTANCE, 47).registerPacket(PlayerHotbarPacket.class, PlayerHotbarSerializer_v388.INSTANCE, 48).registerPacket(InventoryContentPacket.class, InventoryContentSerializer_v388.INSTANCE, 49).registerPacket(InventorySlotPacket.class, InventorySlotSerializer_v388.INSTANCE, 50).registerPacket(ContainerSetDataPacket.class, ContainerSetDataSerializer_v388.INSTANCE, 51).registerPacket(CraftingDataPacket.class, CraftingDataSerializer_v388.INSTANCE, 52).registerPacket(CraftingEventPacket.class, CraftingEventSerializer_v388.INSTANCE, 53).registerPacket(GuiDataPickItemPacket.class, GuiDataPickItemSerializer_v388.INSTANCE, 54).registerPacket(AdventureSettingsPacket.class, AdventureSettingsSerializer_v388.INSTANCE, 55).registerPacket(BlockEntityDataPacket.class, BlockEntityDataSerializer_v388.INSTANCE, 56).registerPacket(PlayerInputPacket.class, PlayerInputSerializer_v388.INSTANCE, 57).registerPacket(LevelChunkPacket.class, LevelChunkSerializer_v388.INSTANCE, 58).registerPacket(SetCommandsEnabledPacket.class, SetCommandsEnabledSerializer_v388.INSTANCE, 59).registerPacket(SetDifficultyPacket.class, SetDifficultySerializer_v388.INSTANCE, 60).registerPacket(ChangeDimensionPacket.class, ChangeDimensionSerializer_v388.INSTANCE, 61).registerPacket(SetPlayerGameTypePacket.class, SetPlayerGameTypeSerializer_v388.INSTANCE, 62).registerPacket(PlayerListPacket.class, PlayerListSerializer_v388.INSTANCE, 63).registerPacket(SimpleEventPacket.class, SimpleEventSerializer_v388.INSTANCE, 64).registerPacket(EventPacket.class, EventSerializer_v389.INSTANCE, 65).registerPacket(SpawnExperienceOrbPacket.class, SpawnExperienceOrbSerializer_v388.INSTANCE, 66).registerPacket(ClientboundMapItemDataPacket.class, ClientboundMapItemDataSerializer_v388.INSTANCE, 67).registerPacket(MapInfoRequestPacket.class, MapInfoRequestSerializer_v388.INSTANCE, 68).registerPacket(RequestChunkRadiusPacket.class, RequestChunkRadiusSerializer_v388.INSTANCE, 69).registerPacket(ChunkRadiusUpdatedPacket.class, ChunkRadiusUpdatedSerializer_v388.INSTANCE, 70).registerPacket(ItemFrameDropItemPacket.class, ItemFrameDropItemSerializer_v388.INSTANCE, 71).registerPacket(GameRulesChangedPacket.class, GameRulesChangedSerializer_v388.INSTANCE, 72).registerPacket(CameraPacket.class, CameraSerializer_v388.INSTANCE, 73).registerPacket(BossEventPacket.class, BossEventSerializer_v388.INSTANCE, 74).registerPacket(ShowCreditsPacket.class, ShowCreditsSerializer_v388.INSTANCE, 75).registerPacket(AvailableCommandsPacket.class, AvailableCommandsSerializer_v388.INSTANCE, 76).registerPacket(CommandRequestPacket.class, CommandRequestSerializer_v388.INSTANCE, 77).registerPacket(CommandBlockUpdatePacket.class, CommandBlockUpdateSerializer_v388.INSTANCE, 78).registerPacket(CommandOutputPacket.class, CommandOutputSerializer_v388.INSTANCE, 79).registerPacket(UpdateTradePacket.class, UpdateTradeSerializer_v388.INSTANCE, 80).registerPacket(UpdateEquipPacket.class, UpdateEquipSerializer_v388.INSTANCE, 81).registerPacket(ResourcePackDataInfoPacket.class, ResourcePackDataInfoSerializer_v388.INSTANCE, 82).registerPacket(ResourcePackChunkDataPacket.class, ResourcePackChunkDataSerializer_v388.INSTANCE, 83).registerPacket(ResourcePackChunkRequestPacket.class, ResourcePackChunkRequestSerializer_v388.INSTANCE, 84).registerPacket(TransferPacket.class, TransferSerializer_v388.INSTANCE, 85).registerPacket(PlaySoundPacket.class, PlaySoundSerializer_v388.INSTANCE, 86).registerPacket(StopSoundPacket.class, StopSoundSerializer_v388.INSTANCE, 87).registerPacket(SetTitlePacket.class, SetTitleSerializer_v388.INSTANCE, 88).registerPacket(AddBehaviorTreePacket.class, AddBehaviorTreeSerializer_v388.INSTANCE, 89).registerPacket(StructureBlockUpdatePacket.class, StructureBlockUpdateSerializer_v388.INSTANCE, 90).registerPacket(ShowStoreOfferPacket.class, ShowStoreOfferSerializer_v388.INSTANCE, 91).registerPacket(PurchaseReceiptPacket.class, PurchaseReceiptSerializer_v388.INSTANCE, 92).registerPacket(PlayerSkinPacket.class, PlayerSkinSerializer_v388.INSTANCE, 93).registerPacket(SubClientLoginPacket.class, SubClientLoginSerializer_v388.INSTANCE, 94).registerPacket(AutomationClientConnectPacket.class, AutomationClientConnectSerializer_v388.INSTANCE, 95).registerPacket(SetLastHurtByPacket.class, SetLastHurtBySerializer_v388.INSTANCE, 96).registerPacket(BookEditPacket.class, BookEditSerializer_v388.INSTANCE, 97).registerPacket(NpcRequestPacket.class, NpcRequestSerializer_v388.INSTANCE, 98).registerPacket(PhotoTransferPacket.class, PhotoTransferSerializer_v388.INSTANCE, 99).registerPacket(ModalFormRequestPacket.class, ModalFormRequestSerializer_v388.INSTANCE, 100).registerPacket(ModalFormResponsePacket.class, ModalFormResponseSerializer_v388.INSTANCE, 101).registerPacket(ServerSettingsRequestPacket.class, ServerSettingsRequestSerializer_v388.INSTANCE, 102).registerPacket(ServerSettingsResponsePacket.class, ServerSettingsResponseSerializer_v388.INSTANCE, 103).registerPacket(ShowProfilePacket.class, ShowProfileSerializer_v388.INSTANCE, 104).registerPacket(SetDefaultGameTypePacket.class, SetDefaultGameTypeSerializer_v388.INSTANCE, 105).registerPacket(RemoveObjectivePacket.class, RemoveObjectiveSerializer_v388.INSTANCE, 106).registerPacket(SetDisplayObjectivePacket.class, SetDisplayObjectiveSerializer_v388.INSTANCE, 107).registerPacket(SetScorePacket.class, SetScoreSerializer_v388.INSTANCE, 108).registerPacket(LabTablePacket.class, LabTableSerializer_v388.INSTANCE, 109).registerPacket(UpdateBlockSyncedPacket.class, UpdateBlockSyncedSerializer_v388.INSTANCE, 110).registerPacket(MoveEntityDeltaPacket.class, MoveEntityDeltaSerializer_v388.INSTANCE, 111).registerPacket(SetScoreboardIdentityPacket.class, SetScoreboardIdentitySerializer_v388.INSTANCE, 112).registerPacket(SetLocalPlayerAsInitializedPacket.class, SetLocalPlayerAsInitializedSerializer_v388.INSTANCE, 113).registerPacket(UpdateSoftEnumPacket.class, UpdateSoftEnumSerializer_v388.INSTANCE, 114).registerPacket(NetworkStackLatencyPacket.class, NetworkStackLatencySerializer_v388.INSTANCE, 115).registerPacket(ScriptCustomEventPacket.class, ScriptCustomEventSerializer_v388.INSTANCE, 117).registerPacket(SpawnParticleEffectPacket.class, SpawnParticleEffectSerializer_v388.INSTANCE, 118).registerPacket(AvailableEntityIdentifiersPacket.class, AvailableEntityIdentifiersSerializer_v388.INSTANCE, 119).registerPacket(LevelSoundEvent2Packet.class, LevelSoundEvent2Serializer_v388.INSTANCE, 120).registerPacket(NetworkChunkPublisherUpdatePacket.class, NetworkChunkPublisherUpdateSerializer_v388.INSTANCE, 121).registerPacket(BiomeDefinitionListPacket.class, BiomeDefinitionListSerializer_v388.INSTANCE, 122).registerPacket(LevelSoundEventPacket.class, LevelSoundEvent3Serializer_v388.INSTANCE, 123).registerPacket(LevelEventGenericPacket.class, LevelEventGenericSerializer_v388.INSTANCE, 124).registerPacket(LecternUpdatePacket.class, LecternUpdateSerializer_v388.INSTANCE, 125).registerPacket(VideoStreamConnectPacket.class, VideoStreamConnectSerializer_v388.INSTANCE, 126).registerPacket(ClientCacheStatusPacket.class, ClientCacheStatusSerializer_v388.INSTANCE, 129).registerPacket(OnScreenTextureAnimationPacket.class, OnScreenTextureAnimationSerializer_v388.INSTANCE, 130).registerPacket(MapCreateLockedCopyPacket.class, MapCreateLockedCopySerializer_v388.INSTANCE, 131).registerPacket(StructureTemplateDataExportRequestPacket.class, StructureTemplateDataExportRequestSerializer_v388.INSTANCE, 132).registerPacket(StructureTemplateDataExportResponsePacket.class, StructureTemplateDataExportResponseSerializer_v388.INSTANCE, 133).registerPacket(UpdateBlockPropertiesPacket.class, UpdateBlockPropertiesSerializer_v388.INSTANCE, 134).registerPacket(ClientCacheBlobStatusPacket.class, ClientCacheBlobStatusSerializer_v388.INSTANCE, 135).registerPacket(ClientCacheMissResponsePacket.class, ClientCacheMissResponseSerializer_v388.INSTANCE, 136).registerPacket(EducationSettingsPacket.class, EducationSettingsSerializer_v388.INSTANCE, 137).registerPacket(EmotePacket.class, EmoteSerializer_v388.INSTANCE, 138).registerPacket(MultiplayerSettingsPacket.class, MultiplayerSettingsSerializer_v388.INSTANCE, 139).registerPacket(SettingsCommandPacket.class, SettingsCommandSerializer_v388.INSTANCE, 140).registerPacket(AnvilDamagePacket.class, AnvilDamageSerializer_v388.INSTANCE, 141).registerPacket(CompletedUsingItemPacket.class, CompletedUsingItemSerializer_v388.INSTANCE, 142).registerPacket(NetworkSettingsPacket.class, NetworkSettingsSerializer_v388.INSTANCE, 143).registerPacket(PlayerAuthInputPacket.class, PlayerAuthInputSerializer_v388.INSTANCE, 144).build();
- }
-}
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PacketCatcher.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PacketCatcher.java
new file mode 100644
index 0000000..5827c88
--- /dev/null
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PacketCatcher.java
@@ -0,0 +1,14 @@
+package main.com.pyratron.pugmatt.bedrockconnect;
+
+import com.nukkitx.protocol.bedrock.BedrockPacket;
+
+import java.util.ArrayList;
+
+public class PacketCatcher {
+
+ public ArrayList<BedrockPacket> packets;
+
+ public void PacketCatcher() {
+
+ }
+}
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java
index 9400fff..fabf8e3 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java
@@ -11,10 +11,8 @@ import com.nukkitx.nbt.tag.ListTag;
import com.nukkitx.protocol.bedrock.Bedrock;
import com.nukkitx.protocol.bedrock.BedrockPacket;
import com.nukkitx.protocol.bedrock.BedrockServerSession;
-import com.nukkitx.protocol.bedrock.data.Attribute;
-import com.nukkitx.protocol.bedrock.data.GamePublishSetting;
-import com.nukkitx.protocol.bedrock.data.GameRuleData;
-import com.nukkitx.protocol.bedrock.data.PlayerPermission;
+import com.nukkitx.protocol.bedrock.data.*;
+import com.nukkitx.protocol.bedrock.data.inventory.ContainerId;
import com.nukkitx.protocol.bedrock.packet.*;
import com.nukkitx.math.vector.Vector3f;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents;
@@ -95,6 +93,10 @@ public class PipePlayer {
public void joinGame() {
+ /** for(BedrockPacket packet : BedrockConnect.server.packets) {
+ session.sendPacket(packet);
+ } **/
+
MovePlayerPacket mp = new MovePlayerPacket();
mp.setRuntimeEntityId(1);
mp.setOnGround(false);
@@ -106,23 +108,25 @@ public class PipePlayer {
StartGamePacket startGamePacket = new StartGamePacket();
startGamePacket.setUniqueEntityId(1);
startGamePacket.setRuntimeEntityId(1);
- startGamePacket.setPlayerGamemode(1);
+ startGamePacket.setPlayerGameType(GameType.SURVIVAL);
startGamePacket.setPlayerPosition(Vector3f.from(0, 0, 0));
startGamePacket.setRotation(Vector2f.from(1, 1));
startGamePacket.setSeed(-1);
startGamePacket.setDimensionId(0);
startGamePacket.setGeneratorId(1);
- startGamePacket.setLevelGamemode(1);
+ startGamePacket.setLevelGameType(GameType.SURVIVAL);
startGamePacket.setDifficulty(1);
- startGamePacket.setDefaultSpawn(Vector3i.from(0, 0, 0));
+ startGamePacket.setDefaultSpawn(Vector3i.ZERO);
startGamePacket.setAchievementsDisabled(false);
- startGamePacket.setTime(-1);
- startGamePacket.setEduFeaturesEnabled(false);
+ startGamePacket.setCurrentTick(-1);
+ //startGamePacket.setUnknownInt0(-1);
+ //startGamePacket.setUnknownInt1(-1);
+ startGamePacket.setEduEditionOffers(0);
startGamePacket.setEduFeaturesEnabled(false);
startGamePacket.setRainLevel(0);
startGamePacket.setLightningLevel(0);
- startGamePacket.setPlatformLockedContentConfirmed(false);
+ //startGamePacket.setPlatformLockedContentConfirmed(false);
startGamePacket.setMultiplayerGame(true);
startGamePacket.setBroadcastingToLan(true);
startGamePacket.getGamerules().add((new GameRuleData<>("showcoordinates", true)));
@@ -132,7 +136,7 @@ public class PipePlayer {
startGamePacket.setTexturePacksRequired(false);
startGamePacket.setBonusChestEnabled(false);
startGamePacket.setStartingWithMap(false);
- startGamePacket.setTrustingPlayers(false);
+ startGamePacket.setTrustingPlayers(true);
startGamePacket.setDefaultPlayerPermission(PlayerPermission.MEMBER);
startGamePacket.setServerChunkTickRange(4);
startGamePacket.setBehaviorPackLocked(false);
@@ -141,14 +145,16 @@ public class PipePlayer {
startGamePacket.setUsingMsaGamertagsOnly(false);
startGamePacket.setFromWorldTemplate(false);
startGamePacket.setWorldTemplateOptionLocked(false);
- startGamePacket.setOnlySpawningV1Villagers(false);
- startGamePacket.setMovementServerAuthoritative(false);
- startGamePacket.setTrial(false);
- startGamePacket.setVanillaVersion(Server.codec.getMinecraftVersion());
-
- startGamePacket.setLevelId("");
- startGamePacket.setWorldName("world");
- startGamePacket.setPremiumWorldTemplateId("");
+
+ //startGamePacket.setOnlySpawningV1Villagers(false);
+ //startGamePacket.setMovementServerAuthoritative(false);
+ //startGamePacket.setTrial(false);
+ startGamePacket.setVanillaVersion("*");
+
+ startGamePacket.setLevelId("world");
+ startGamePacket.setLevelName("world");
+ //startGamePacket.setWorldName("world");
+ startGamePacket.setPremiumWorldTemplateId("00000000-0000-0000-0000-000000000000");
startGamePacket.setCurrentTick(0);
startGamePacket.setEnchantmentSeed(0);
startGamePacket.setMultiplayerCorrelationId("");
@@ -178,14 +184,29 @@ public class PipePlayer {
}
BiomeDefinitionListPacket biomePacket = new BiomeDefinitionListPacket();
- biomePacket.setTag(CompoundTag.EMPTY);
+ biomePacket.setTag(BedrockConnect.paletteManager.BIOMES);
session.sendPacket(biomePacket);
+
AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket();
- entityPacket.setTag(CompoundTag.EMPTY);
+ entityPacket.setTag(BedrockConnect.paletteManager.ENTITY_IDENTIFIERS);
session.sendPacket(entityPacket);
+ InventoryContentPacket creativePacket = new InventoryContentPacket();
+ creativePacket.setContainerId(ContainerId.CREATIVE); //TODO: Why is this deprecated?
+ creativePacket.setContents(BedrockConnect.paletteManager.CREATIVE_ITEMS);
+ session.sendPacket(creativePacket);
+
PlayStatusPacket playStatus = new PlayStatusPacket();
playStatus.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN);
session.sendPacket(playStatus);
+
+ UpdateAttributesPacket attributesPacket = new UpdateAttributesPacket();
+ attributesPacket.setRuntimeEntityId(0);
+ List<AttributeData> attributes = new ArrayList<>();
+ // Default move speed
+ // Bedrock clients move very fast by default until they get an attribute packet correcting the speed
+ attributes.add(new AttributeData("minecraft:movement", 0.0f, 1024f, 0.1f, 0.1f));
+ attributesPacket.setAttributes(attributes);
+ session.sendPacket(attributesPacket);
}
}
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java
index a23aca1..4bae4e4 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
import com.nukkitx.protocol.bedrock.*;
+import com.nukkitx.protocol.bedrock.v407.Bedrock_v407;
import main.com.pyratron.pugmatt.bedrockconnect.listeners.PacketHandler;
import main.com.pyratron.pugmatt.bedrockconnect.sql.Data;
@@ -20,11 +21,6 @@ public class Server {
public static BedrockPacketCodec codec;
- public boolean recordingDone = false;
- public List<BedrockPacket> packets = new ArrayList<>();
-
-
-
public int getProtocol() {
return codec.getProtocolVersion();
}
@@ -42,6 +38,9 @@ public class Server {
return players;
}
+ public boolean recordingDone = false;
+ public List<BedrockPacket> packets = new ArrayList<>();
+
public PipePlayer getPlayer(String uuid) {
for(int i=0;i<players.size();i++) {
if(players.get(i).getUuid() == uuid)
@@ -51,6 +50,11 @@ public class Server {
}
public void addPlayer(PipePlayer player) {
+ //System.gc();
+ //Runtime rt = Runtime.getRuntime();
+ //long usedMB = (rt.totalMemory() - rt.freeMemory()) / 1024 / 1024;
+ //System.out.println("Memory usage: " + usedMB);
+ System.out.println("Total users connected: " + this.players.size());
this.players.add(player);
}
@@ -70,7 +74,7 @@ public class Server {
players = new ArrayList<>();
InetSocketAddress bindAddress = new InetSocketAddress("0.0.0.0", Integer.parseInt(port));
- codec = Bedrock_v390.V390_CODEC;
+ codec = Bedrock_v407.V407_CODEC;
server = new BedrockServer(bindAddress);
pong = new BedrockPong();
pong.setEdition("MCPE");
@@ -93,7 +97,12 @@ public class Server {
}
@Override
public void onSessionCreation(BedrockServerSession session) {
- session.setPacketHandler(new PacketHandler(session, current));
+ // if(!recordingDone)
+ // session.setPacketHandler(new PacketHandler(session, current, true));
+ // else {
+ session.setPacketHandler(new PacketHandler(session, current, false));
+ // }
+ //session.setPacketHandler(new PacketHandler(session, current));
}
});
// Start server up
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/dns/DNS.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/dns/DNS.java
new file mode 100644
index 0000000..7e65c7f
--- /dev/null
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/dns/DNS.java
@@ -0,0 +1,99 @@
+package main.com.pyratron.pugmatt.bedrockconnect.dns;
+
+import org.xbill.DNS.*;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.util.Arrays;
+import java.util.List;
+
+// Referenced code from: https://medium.com/swlh/mock-a-dns-server-in-java-a810b9338872
+
+public class DNS {
+ private Thread thread = null;
+ private volatile boolean running = false;
+ private static final int UDP_SIZE = 512;
+ private final int port;
+ private int requestCount = 0;
+
+ private String localIP;
+ private String publicIP;
+
+ private String localIPV6;
+ private String publicIPV6;
+
+ public DNS(String localIP, String publicIP, String localIPV6, String publicIPV6, int port) {
+ this.port = port;
+ this.localIP = localIP;
+ this.publicIP = publicIP;
+
+ this.localIPV6 = localIPV6;
+ this.publicIPV6 = publicIPV6;
+ }
+
+ public void start() {
+ running = true;
+ thread = new Thread(() -> {
+ try {
+ serve();
+ } catch (IOException ex) {
+ stop();
+ throw new RuntimeException(ex);
+ }
+ });
+ thread.start();
+ System.out.println("BedrockConnect DNS server now running ( Local IPv4: " + localIP + " ; Public IPv4: " + publicIP + " )");
+ }
+
+ public void stop() {
+ running = false;
+ thread.interrupt();
+ thread = null;
+ }
+
+ public int getRequestCount() {
+ return requestCount;
+ }
+
+ private void serve() throws IOException {
+ DatagramSocket socket = new DatagramSocket(port);
+ while (running) {
+ process(socket);
+ }
+ }
+
+ private void process(DatagramSocket socket) throws IOException {
+ byte[] in = new byte[UDP_SIZE];
+
+ DatagramPacket indp = new DatagramPacket(in, UDP_SIZE);
+ socket.receive(indp);
+ ++requestCount;
+
+ Message request = new Message(in);
+ Message response = new Message(request.getHeader().getID());
+
+ response.addRecord(request.getQuestion(), Section.QUESTION);
+ System.out.println(request.getQuestion().getName().toString());
+ List<String> featuredServers = Arrays.asList("receive-lp1.dg.srv.nintendo.net", "www.facebook.com.", "mobile.twitter.com.", "geo.hivebedrock.network.", "hivebedrock.network.", "mco.mineplex.com.", "play.inpvp.net.", "mco.lbsg.net.", "mco.cubecraft.net.");
+ if(featuredServers.contains(request.getQuestion().getName().toString())) {
+ if (indp.getAddress().getHostAddress().startsWith("192.168")) {
+ System.out.println(localIP);
+ response.addRecord(Record.fromString(Name.root, Type.A, DClass.ANY, 86400, "192.168.0.140", Name.root), Section.ANSWER);
+ //if(localIPV6 != null) {
+ // response.addRecord(Record.fromString(Name.root, Type.AAAA, DClass.IN, 86400, localIPV6, Name.root), Section.ANSWER);
+ //}
+ }
+ else {
+ response.addRecord(Record.fromString(Name.root, Type.A, DClass.IN, 86400, publicIP, Name.root), Section.ANSWER);
+ if(publicIPV6 != null) {
+ response.addRecord(Record.fromString(Name.root, Type.AAAA, DClass.IN, 86400, publicIPV6, Name.root), Section.ANSWER);
+ }
+ }
+
+ byte[] resp = response.toWire();
+ DatagramPacket outdp = new DatagramPacket(resp, resp.length, indp.getAddress(), indp.getPort());
+ socket.send(outdp);
+ }
+ }
+}
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
index 6b10d7c..e807500 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
@@ -9,10 +9,12 @@ import java.util.ArrayList;
import java.util.List;
public class UIForms {
- public static final int ERROR = 2, MAIN = 0, DIRECT_CONNECT = 1, REMOVE_SERVER = 3;
+ public static final int ERROR = 2, MAIN = 0, DIRECT_CONNECT = 1, REMOVE_SERVER = 3, DONATION = 4;
public static int currentForm = 0;
+ public static final char ESCAPE = '\u00a7';
+
public static ModalFormRequestPacket createMain(List<String> servers) {
currentForm = MAIN;
ModalFormRequestPacket mf = new ModalFormRequestPacket();
@@ -87,4 +89,18 @@ public class UIForms {
mf.setFormData(form.toString());
return mf;
}
+
+ public static ModalFormRequestPacket createDonatelink() {
+ currentForm = DONATION;
+ ModalFormRequestPacket mf = new ModalFormRequestPacket();
+ mf.setFormId(UIForms.DONATION);
+ JsonObject form = new JsonObject();
+ form.addProperty("type", "custom_form");
+ form.addProperty("title", "Thank you!");
+ JsonArray content = new JsonArray();
+ content.add(UIComponents.createLabel(""));
+ form.add("content", content);
+ mf.setFormData(form.toString());
+ return mf;
+ }
}
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java
deleted file mode 100644
index f368a58..0000000
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java
+++ /dev/null
@@ -1,805 +0,0 @@
-package main.com.pyratron.pugmatt.bedrockconnect.listeners;
-
-import com.nukkitx.protocol.bedrock.BedrockClientSession;
-import com.nukkitx.protocol.bedrock.packet.*;
-
-import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler;
-import com.nukkitx.protocol.bedrock.packet.LoginPacket;
-
-public class ClientPacketHandler implements BedrockPacketHandler {
-
- private static final int PIXEL_SIZE = 4;
-
- private BedrockClientSession session;
-
- @Override
- public boolean handle(AdventureSettingsPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AnimatePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(BlockEntityDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(BlockPickRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(BookEditPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ClientToServerHandshakePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(CommandBlockUpdatePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(CommandRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ContainerClosePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(CraftingEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(EntityEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(EntityFallPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(EntityPickRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(EventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(InteractPacket packet) {
- System.out.println(packet.toString());
- session.sendPacketImmediately(packet);
- return false;
- }
-
- @Override
- public boolean handle(InventoryContentPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(InventorySlotPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(InventoryTransactionPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ItemFrameDropItemPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(LabTablePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(LecternUpdatePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(LevelSoundEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MapInfoRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MobArmorEquipmentPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MobEquipmentPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ModalFormResponsePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MoveEntityAbsolutePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MovePlayerPacket packet) {
- System.out.println(packet.toString());
- session.sendPacketImmediately(packet);
- return false;
- }
-
- @Override
- public boolean handle(NetworkStackLatencyPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PhotoTransferPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlayerActionPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlayerHotbarPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlayerInputPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlayerSkinPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PurchaseReceiptPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(RequestChunkRadiusPacket packet) {
- System.out.println(packet.toString());
- ChunkRadiusUpdatedPacket chunk = new ChunkRadiusUpdatedPacket();
- chunk.setRadius(Math.max(3, Math.min(packet.getRadius(), 5)));
- //PacketHeader ph = new PacketHeader();
- // ph.set
- //chunk.setHeader();
- session.sendPacketImmediately(chunk);
-
- int chunkPositionX = 0;
- int chunkPositionZ = 0;
- int chunkRadius = 5;
- for (int x = -chunkRadius; x < chunkRadius; x++) {
- for (int z = -chunkRadius; z < chunkRadius; z++) {
- LevelChunkPacket fullChunk = new LevelChunkPacket();
- fullChunk.setChunkX(chunkPositionX + x);
- fullChunk.setChunkZ(chunkPositionZ + z);
- fullChunk.setData(new byte[0]);
- session.sendPacket(fullChunk);
- }
- }
-
- PlayStatusPacket play = new PlayStatusPacket();
- play.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN);
- session.sendPacketImmediately(play);
-
- SetTimePacket st = new SetTimePacket();
- st.setTime(0);
- session.sendPacketImmediately(st);
- return false;
- }
-
- @Override
- public boolean handle(RiderJumpPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ServerSettingsRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetDefaultGameTypePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetLocalPlayerAsInitializedPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetPlayerGameTypePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SubClientLoginPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(TextPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AddBehaviorTreePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AddEntityPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AddHangingEntityPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AddItemEntityPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AddPaintingPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AddPlayerPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AvailableCommandsPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(BlockEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(BossEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(CameraPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ChangeDimensionPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ChunkRadiusUpdatedPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ClientboundMapItemDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(CommandOutputPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ContainerOpenPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ContainerSetDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(CraftingDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ExplodePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- /** @Override
- public boolean handle(FullChunkDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- } **/
-
- @Override
- public boolean handle(GameRulesChangedPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(GuiDataPickItemPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(HurtArmorPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AutomationClientConnectPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(LevelEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MapCreateLockedCopyPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MobEffectPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ModalFormRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(MoveEntityDeltaPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(NpcRequestPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(OnScreenTextureAnimationPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlayerListPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlaySoundPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(PlayStatusPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(RemoveEntityPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(RemoveObjectivePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ResourcePackChunkDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ResourcePackDataInfoPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ResourcePacksInfoPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ResourcePackStackPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(RespawnPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ScriptCustomEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ServerSettingsResponsePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ServerToClientHandshakePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetCommandsEnabledPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetDifficultyPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetDisplayObjectivePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetEntityDataPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetEntityLinkPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetEntityMotionPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetHealthPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetLastHurtByPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetScoreboardIdentityPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetScorePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetSpawnPositionPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetTimePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SetTitlePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ShowCreditsPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ShowProfilePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(ShowStoreOfferPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SimpleEventPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SpawnExperienceOrbPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(StartGamePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(StopSoundPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(StructureBlockUpdatePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(TakeItemEntityPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(TransferPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(UpdateAttributesPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(UpdateBlockPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(UpdateBlockSyncedPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(UpdateEquipPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(UpdateSoftEnumPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(UpdateTradePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(AvailableEntityIdentifiersPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(BiomeDefinitionListPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(LevelSoundEvent2Packet packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(NetworkChunkPublisherUpdatePacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(SpawnParticleEffectPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- @Override
- public boolean handle(VideoStreamConnectPacket packet) {
- System.out.println(packet.toString());
- return false;
- }
-
- public ClientPacketHandler() {
- //this.session = session;
-
- //session.addDisconnectHandler((Reason) -> disconnect());
- }
-
- public void disconnect() {
- //player.getClient().getSession().disconnect("Left Game");
- //server.removePlayer(player);
- }
-
- @Override
- public boolean handle(DisconnectPacket packet) {
- System.out.println(packet.toString());
- return true;
- }
-
- @Override
- public boolean handle(ResourcePackChunkRequestPacket packet) {
- System.out.println(packet.toString());
- return true;
- }
-
- @Override
- public boolean handle(ResourcePackClientResponsePacket packet) {
- System.out.println(packet.toString());
- return true;
- }
-
- @Override
- public boolean handle(LoginPacket packet) {
- System.out.println(packet.toString());
- return true;
- }
-
-} \ No newline at end of file
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
index 5a7688e..85b9fd4 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
@@ -1,17 +1,17 @@
package main.com.pyratron.pugmatt.bedrockconnect.listeners;
+import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeType;
-import com.nukkitx.math.vector.Vector2f;
+import com.nimbusds.jwt.SignedJWT;
import com.nukkitx.math.vector.Vector3f;
-import com.nukkitx.math.vector.Vector3i;
import com.nukkitx.nbt.CompoundTagBuilder;
import com.nukkitx.nbt.NbtUtils;
import com.nukkitx.nbt.stream.NBTOutputStream;
import com.nukkitx.nbt.tag.CompoundTag;
import com.nukkitx.network.util.Preconditions;
-import com.nukkitx.protocol.bedrock.BedrockClientSession;
-import com.nukkitx.protocol.bedrock.data.GamePublishSetting;
+import com.nukkitx.protocol.bedrock.BedrockClient;
import com.nukkitx.protocol.bedrock.packet.*;
import com.nimbusds.jose.JOSEException;
import com.nimbusds.jose.JWSObject;
@@ -20,6 +20,10 @@ import com.nukkitx.protocol.bedrock.BedrockServerSession;
import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler;
import com.nukkitx.protocol.bedrock.packet.LoginPacket;
import com.nukkitx.protocol.bedrock.util.EncryptionUtils;
+import com.nukkitx.protocol.bedrock.v388.Bedrock_v388;
+import com.nukkitx.protocol.bedrock.v407.Bedrock_v407;
+import io.netty.util.AsciiString;
+import io.netty.util.internal.ThreadLocalRandom;
import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect;
import main.com.pyratron.pugmatt.bedrockconnect.Server;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents;
@@ -28,9 +32,13 @@ import net.minidev.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.net.InetSocketAddress;
import java.security.interfaces.ECPublicKey;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
// Heavily referenced from https://github.com/NukkitX/ProxyPass/blob/master/src/main/java/com/nukkitx/proxypass/network/bedrock/session/UpstreamPacketHandler.java
@@ -44,8 +52,13 @@ public class PacketHandler implements BedrockPacketHandler {
private JSONObject extraData;
+ private JSONObject skinData;
+ private ArrayNode chainData;
+
private boolean print = false;
+ private boolean packetListening;
+
private static final CompoundTag EMPTY_TAG = CompoundTagBuilder.builder().buildRootTag();
private static final byte[] EMPTY_LEVEL_CHUNK_DATA;
@@ -1054,6 +1067,9 @@ public class PacketHandler implements BedrockPacketHandler {
case UIForms.ERROR:
session.sendPacketImmediately(UIForms.createMain(server.getPlayer(uuid).getServerList()));
break;
+ case UIForms.DONATION:
+ session.sendPacketImmediately(UIForms.createMain(server.getPlayer(uuid).getServerList()));
+ break;
}
return false;
}
@@ -1073,9 +1089,10 @@ public class PacketHandler implements BedrockPacketHandler {
return false;
}
- public PacketHandler(BedrockServerSession session, Server server) {
+ public PacketHandler(BedrockServerSession session, Server server, boolean packetListening) {
this.session = session;
this.server = server;
+ this.packetListening = packetListening;
session.addDisconnectHandler((DisconnectReason) -> disconnect());
}
@@ -1142,15 +1159,13 @@ public class PacketHandler implements BedrockPacketHandler {
@Override
public boolean handle(LoginPacket packet) {
- if(print)
- System.out.println(packet.toString());
int protocolVersion = packet.getProtocolVersion();
if (protocolVersion != server.getProtocol()) {
PlayStatusPacket status = new PlayStatusPacket();
if (protocolVersion > server.getProtocol()) {
- status.setStatus(PlayStatusPacket.Status.FAILED_SERVER);
+ status.setStatus(PlayStatusPacket.Status.LOGIN_FAILED_SERVER_OLD);
} else {
- status.setStatus(PlayStatusPacket.Status.FAILED_CLIENT);
+ status.setStatus(PlayStatusPacket.Status.LOGIN_FAILED_CLIENT_OLD);
}
session.sendPacket(status);
}
@@ -1167,6 +1182,7 @@ public class PacketHandler implements BedrockPacketHandler {
if (certChainData.getNodeType() != JsonNodeType.ARRAY) {
throw new RuntimeException("Certificate data is not valid");
}
+ chainData = (ArrayNode) certChainData;
boolean validChain;
try {
@@ -1191,23 +1207,24 @@ public class PacketHandler implements BedrockPacketHandler {
System.out.println("Made it through login - " + "User: " + extraData.getAsString("displayName") + " (" + extraData.getAsString("identity") + ")");
- name = extraData.getAsString("displayName");
- uuid = extraData.getAsString("identity");
+ name = extraData.getAsString("displayName");
+ uuid = extraData.getAsString("identity");
- PlayStatusPacket status = new PlayStatusPacket();
- status.setStatus(PlayStatusPacket.Status.LOGIN_SUCCESS);
- session.sendPacket(status);
- SetEntityMotionPacket motion = new SetEntityMotionPacket();
- motion.setRuntimeEntityId(1);
- motion.setMotion(Vector3f.ZERO);
- session.sendPacket(motion);
+ PlayStatusPacket status = new PlayStatusPacket();
+ status.setStatus(PlayStatusPacket.Status.LOGIN_SUCCESS);
+ session.sendPacket(status);
+
+ SetEntityMotionPacket motion = new SetEntityMotionPacket();
+ motion.setRuntimeEntityId(1);
+ motion.setMotion(Vector3f.ZERO);
+ session.sendPacket(motion);
- ResourcePacksInfoPacket resourcePacksInfo = new ResourcePacksInfoPacket();
- resourcePacksInfo.setForcedToAccept(false);
- resourcePacksInfo.setScriptingEnabled(false);
- session.sendPacket(resourcePacksInfo);
+ ResourcePacksInfoPacket resourcePacksInfo = new ResourcePacksInfoPacket();
+ resourcePacksInfo.setForcedToAccept(false);
+ resourcePacksInfo.setScriptingEnabled(false);
+ session.sendPacket(resourcePacksInfo);
} catch (Exception e) {
session.disconnect("disconnectionScreen.internalError.cantConnect");
throw new RuntimeException("Unable to complete login", e);
@@ -1215,4 +1232,15 @@ public class PacketHandler implements BedrockPacketHandler {
return true;
}
+ public Set<BedrockClient> clients = Collections.newSetFromMap(new ConcurrentHashMap<>());
+
+ public BedrockClient newClient() {
+ InetSocketAddress bindAddress = new InetSocketAddress("0.0.0.0", ThreadLocalRandom.current().nextInt(20000, 60000));
+ BedrockClient client = new BedrockClient(bindAddress);
+ this.clients.add(client);
+ client.bind().join();
+ return client;
+ }
+
+
} \ No newline at end of file
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/MySQL.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/MySQL.java
index 4013dda..c2bd20c 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/MySQL.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/sql/MySQL.java
@@ -5,7 +5,6 @@ import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.logging.Level;
@@ -48,7 +47,7 @@ public class MySQL extends Database {
public Connection openConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
- connection = DriverManager.getConnection("jdbc:mysql://" + this.hostname + "/" + this.database, this.user, this.password);
+ connection = DriverManager.getConnection("jdbc:mysql://" + this.hostname + "/" + this.database + "?serverTimezone=UTC&useLegacyDatetimeCode=false", this.user, this.password);
System.out.println("- MySQL Connection Started -");
} catch (SQLException e) {
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java
index e7bb857..b33c92a 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java
@@ -1,26 +1,21 @@
package main.com.pyratron.pugmatt.bedrockconnect.utils;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.type.CollectionType;
-import com.nukkitx.nbt.CompoundTagBuilder;
import com.nukkitx.nbt.NbtUtils;
import com.nukkitx.nbt.stream.NBTInputStream;
-import com.nukkitx.nbt.stream.NBTOutputStream;
import com.nukkitx.nbt.tag.CompoundTag;
import com.nukkitx.nbt.tag.ListTag;
-import com.nukkitx.network.VarInts;
-import com.nukkitx.protocol.bedrock.v388.BedrockUtils;
+import com.nukkitx.protocol.bedrock.data.inventory.ItemData;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect;
import java.io.*;
import java.nio.ByteOrder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
// https://github.com/DragonetMC/DragonProxy/blob/rewrite/proxy/src/main/java/org/dragonet/proxy/util/PaletteManager.java
// Author: lukeeey
@@ -33,6 +28,75 @@ public class PaletteManager {
public ListTag<CompoundTag> CACHED_PALLETE;
+ public static final CompoundTag BIOMES;
+
+ static {
+ InputStream stream = BedrockConnect.class.getClassLoader().getResourceAsStream("tables/biome_definitions.dat");
+
+ CompoundTag biomesTag;
+
+ try (NBTInputStream biomenbtInputStream = NbtUtils.createNetworkReader(stream)){
+ biomesTag = (CompoundTag) biomenbtInputStream.readTag();
+ BIOMES = biomesTag;
+ } catch (Exception ex) {
+ throw new AssertionError(ex);
+ }
+ }
+
+ public static final CompoundTag ENTITY_IDENTIFIERS;
+
+ static {
+ InputStream stream = BedrockConnect.class.getClassLoader().getResourceAsStream("tables/entity_identifiers.dat");
+
+ CompoundTag entityTag;
+
+ try (NBTInputStream entitynbtInputStream = NbtUtils.createNetworkReader(stream)){
+ entityTag = (CompoundTag) entitynbtInputStream.readTag();
+ ENTITY_IDENTIFIERS = entityTag;
+ } catch (Exception ex) {
+ throw new AssertionError(ex);
+ }
+ }
+
+ private static final ObjectMapper JSON_MAPPER = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+
+ public static final ItemData[] CREATIVE_ITEMS;
+
+ static {
+ /* Load creative items */
+ InputStream stream = BedrockConnect.class.getClassLoader().getResourceAsStream("tables/creative_items.json");
+
+ JsonNode creativeItemEntries;
+ try {
+ creativeItemEntries = JSON_MAPPER.readTree(stream).get("items");
+ } catch (Exception e) {
+ throw new AssertionError("Unable to load creative items", e);
+ }
+
+ List<ItemData> creativeItems = new ArrayList<>();
+ for (JsonNode itemNode : creativeItemEntries) {
+ short damage = 0;
+ if (itemNode.has("damage")) {
+ damage = itemNode.get("damage").numberValue().shortValue();
+ }
+ if (itemNode.has("nbt_b64")) {
+ byte[] bytes = Base64.getDecoder().decode(itemNode.get("nbt_b64").asText());
+ ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+ try {
+ com.nukkitx.nbt.tag.CompoundTag tag = (com.nukkitx.nbt.tag.CompoundTag) NbtUtils.createReaderLE(bais).readTag();
+ creativeItems.add(ItemData.of(itemNode.get("id").asInt(), damage, 1, tag));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ creativeItems.add(ItemData.of(itemNode.get("id").asInt(), damage, 1));
+ }
+ }
+ CREATIVE_ITEMS = creativeItems.toArray(new ItemData[0]);
+ }
+
+
+
public PaletteManager() {
InputStream stream = BedrockConnect.class.getClassLoader().getResourceAsStream("tables/runtime_block_states.dat");
if (stream == null) {
diff --git a/serverlist-server/src/main/resources/tables/biome_definitions.dat b/serverlist-server/src/main/resources/tables/biome_definitions.dat
index 015a265..6d72cc9 100644
--- a/serverlist-server/src/main/resources/tables/biome_definitions.dat
+++ b/serverlist-server/src/main/resources/tables/biome_definitions.dat
Binary files differ
diff --git a/serverlist-server/src/main/resources/tables/creative_items.json b/serverlist-server/src/main/resources/tables/creative_items.json
index 6007398..8045b21 100644
--- a/serverlist-server/src/main/resources/tables/creative_items.json
+++ b/serverlist-server/src/main/resources/tables/creative_items.json
@@ -1,4157 +1,4204 @@
-[
- {
- "id" : 5
- },
- {
- "id" : 5,
- "damage" : 1
- },
- {
- "id" : 5,
- "damage" : 2
- },
- {
- "id" : 5,
- "damage" : 3
- },
- {
- "id" : 5,
- "damage" : 4
- },
- {
- "id" : 5,
- "damage" : 5
- },
- {
- "id" : 139
- },
- {
- "id" : 139,
- "damage" : 1
- },
- {
- "id" : 139,
- "damage" : 2
- },
- {
- "id" : 139,
- "damage" : 3
- },
- {
- "id" : 139,
- "damage" : 4
- },
- {
- "id" : 139,
- "damage" : 5
- },
- {
- "id" : 139,
- "damage" : 12
- },
- {
- "id" : 139,
- "damage" : 7
- },
- {
- "id" : 139,
- "damage" : 8
- },
- {
- "id" : 139,
- "damage" : 6
- },
- {
- "id" : 139,
- "damage" : 9
- },
- {
- "id" : 139,
- "damage" : 13
- },
- {
- "id" : 139,
- "damage" : 10
- },
- {
- "id" : 139,
- "damage" : 11
- },
- {
- "id" : 85
- },
- {
- "id" : 85,
- "damage" : 1
- },
- {
- "id" : 85,
- "damage" : 2
- },
- {
- "id" : 85,
- "damage" : 3
- },
- {
- "id" : 85,
- "damage" : 4
- },
- {
- "id" : 85,
- "damage" : 5
- },
- {
- "id" : 113
- },
- {
- "id" : 107
- },
- {
- "id" : 183
- },
- {
- "id" : 184
- },
- {
- "id" : 185
- },
- {
- "id" : 187
- },
- {
- "id" : 186
- },
- {
- "id" : -180
- },
- {
- "id" : 67
- },
- {
- "id" : -179
- },
- {
- "id" : 53
- },
- {
- "id" : 134
- },
- {
- "id" : 135
- },
- {
- "id" : 136
- },
- {
- "id" : 163
- },
- {
- "id" : 164
- },
- {
- "id" : 109
- },
- {
- "id" : -175
- },
- {
- "id" : 128
- },
- {
- "id" : -177
- },
- {
- "id" : 180
- },
- {
- "id" : -176
- },
- {
- "id" : -169
- },
- {
- "id" : -172
- },
- {
- "id" : -170
- },
- {
- "id" : -173
- },
- {
- "id" : -171
- },
- {
- "id" : -174
- },
- {
- "id" : 108
- },
- {
- "id" : 114
- },
- {
- "id" : -184
- },
- {
- "id" : -178
- },
- {
- "id" : 156
- },
- {
- "id" : -185
- },
- {
- "id" : 203
- },
- {
- "id" : -2
- },
- {
- "id" : -3
- },
- {
- "id" : -4
- },
- {
- "id" : 324
- },
- {
- "id" : 427
- },
- {
- "id" : 428
- },
- {
- "id" : 429
- },
- {
- "id" : 430
- },
- {
- "id" : 431
- },
- {
- "id" : 330
- },
- {
- "id" : 96
- },
- {
- "id" : -149
- },
- {
- "id" : -146
- },
- {
- "id" : -148
- },
- {
- "id" : -145
- },
- {
- "id" : -147
- },
- {
- "id" : 167
- },
- {
- "id" : 101
- },
- {
- "id" : 20
- },
- {
- "id" : 241
- },
- {
- "id" : 241,
- "damage" : 8
- },
- {
- "id" : 241,
- "damage" : 7
- },
- {
- "id" : 241,
- "damage" : 15
- },
- {
- "id" : 241,
- "damage" : 12
- },
- {
- "id" : 241,
- "damage" : 14
- },
- {
- "id" : 241,
- "damage" : 1
- },
- {
- "id" : 241,
- "damage" : 4
- },
- {
- "id" : 241,
- "damage" : 5
- },
- {
- "id" : 241,
- "damage" : 13
- },
- {
- "id" : 241,
- "damage" : 9
- },
- {
- "id" : 241,
- "damage" : 3
- },
- {
- "id" : 241,
- "damage" : 11
- },
- {
- "id" : 241,
- "damage" : 10
- },
- {
- "id" : 241,
- "damage" : 2
- },
- {
- "id" : 241,
- "damage" : 6
- },
- {
- "id" : 102
- },
- {
- "id" : 160
- },
- {
- "id" : 160,
- "damage" : 8
- },
- {
- "id" : 160,
- "damage" : 7
- },
- {
- "id" : 160,
- "damage" : 15
- },
- {
- "id" : 160,
- "damage" : 12
- },
- {
- "id" : 160,
- "damage" : 14
- },
- {
- "id" : 160,
- "damage" : 1
- },
- {
- "id" : 160,
- "damage" : 4
- },
- {
- "id" : 160,
- "damage" : 5
- },
- {
- "id" : 160,
- "damage" : 13
- },
- {
- "id" : 160,
- "damage" : 9
- },
- {
- "id" : 160,
- "damage" : 3
- },
- {
- "id" : 160,
- "damage" : 11
- },
- {
- "id" : 160,
- "damage" : 10
- },
- {
- "id" : 160,
- "damage" : 2
- },
- {
- "id" : 160,
- "damage" : 6
- },
- {
- "id" : 65
- },
- {
- "id" : -165
- },
- {
- "id" : 44
- },
- {
- "id" : -166,
- "damage" : 2
- },
- {
- "id" : 44,
- "damage" : 3
- },
- {
- "id" : 182,
- "damage" : 5
- },
- {
- "id" : 158
- },
- {
- "id" : 158,
- "damage" : 1
- },
- {
- "id" : 158,
- "damage" : 2
- },
- {
- "id" : 158,
- "damage" : 3
- },
- {
- "id" : 158,
- "damage" : 4
- },
- {
- "id" : 158,
- "damage" : 5
- },
- {
- "id" : 44,
- "damage" : 5
- },
- {
- "id" : -166
- },
- {
- "id" : 44,
- "damage" : 1
- },
- {
- "id" : -166,
- "damage" : 3
- },
- {
- "id" : 182,
- "damage" : 6
- },
- {
- "id" : 182
- },
- {
- "id" : -166,
- "damage" : 4
- },
- {
- "id" : -162,
- "damage" : 1
- },
- {
- "id" : -162,
- "damage" : 6
- },
- {
- "id" : -162,
- "damage" : 7
- },
- {
- "id" : -162,
- "damage" : 4
- },
- {
- "id" : -162,
- "damage" : 5
- },
- {
- "id" : -162,
- "damage" : 3
- },
- {
- "id" : -162,
- "damage" : 2
- },
- {
- "id" : 44,
- "damage" : 4
- },
- {
- "id" : 44,
- "damage" : 7
- },
- {
- "id" : 182,
- "damage" : 7
- },
- {
- "id" : -162
- },
- {
- "id" : 44,
- "damage" : 6
- },
- {
- "id" : -166,
- "damage" : 1
- },
- {
- "id" : 182,
- "damage" : 1
- },
- {
- "id" : 182,
- "damage" : 2
- },
- {
- "id" : 182,
- "damage" : 3
- },
- {
- "id" : 182,
- "damage" : 4
- },
- {
- "id" : 45
- },
- {
- "id" : 98
- },
- {
- "id" : 98,
- "damage" : 1
- },
- {
- "id" : 98,
- "damage" : 2
- },
- {
- "id" : 98,
- "damage" : 3
- },
- {
- "id" : 206
- },
- {
- "id" : 168,
- "damage" : 2
- },
- {
- "id" : 4
- },
- {
- "id" : 48
- },
- {
- "id" : -183
- },
- {
- "id" : 24
- },
- {
- "id" : 24,
- "damage" : 1
- },
- {
- "id" : 24,
- "damage" : 2
- },
- {
- "id" : 24,
- "damage" : 3
- },
- {
- "id" : 179
- },
- {
- "id" : 179,
- "damage" : 1
- },
- {
- "id" : 179,
- "damage" : 2
- },
- {
- "id" : 179,
- "damage" : 3
- },
- {
- "id" : 173
- },
- {
- "id" : -139
- },
- {
- "id" : 41
- },
- {
- "id" : 42
- },
- {
- "id" : 133
- },
- {
- "id" : 57
- },
- {
- "id" : 22
- },
- {
- "id" : 155
- },
- {
- "id" : 155,
- "damage" : 2
- },
- {
- "id" : 155,
- "damage" : 1
- },
- {
- "id" : 155,
- "damage" : 3
- },
- {
- "id" : 168
- },
- {
- "id" : 168,
- "damage" : 1
- },
- {
- "id" : 165
- },
- {
- "id" : 170
- },
- {
- "id" : 216
- },
- {
- "id" : 214
- },
- {
- "id" : 112
- },
- {
- "id" : 215
- },
- {
- "id" : 35
- },
- {
- "id" : 35,
- "damage" : 8
- },
- {
- "id" : 35,
- "damage" : 7
- },
- {
- "id" : 35,
- "damage" : 15
- },
- {
- "id" : 35,
- "damage" : 12
- },
- {
- "id" : 35,
- "damage" : 14
- },
- {
- "id" : 35,
- "damage" : 1
- },
- {
- "id" : 35,
- "damage" : 4
- },
- {
- "id" : 35,
- "damage" : 5
- },
- {
- "id" : 35,
- "damage" : 13
- },
- {
- "id" : 35,
- "damage" : 9
- },
- {
- "id" : 35,
- "damage" : 3
- },
- {
- "id" : 35,
- "damage" : 11
- },
- {
- "id" : 35,
- "damage" : 10
- },
- {
- "id" : 35,
- "damage" : 2
- },
- {
- "id" : 35,
- "damage" : 6
- },
- {
- "id" : 171
- },
- {
- "id" : 171,
- "damage" : 8
- },
- {
- "id" : 171,
- "damage" : 7
- },
- {
- "id" : 171,
- "damage" : 15
- },
- {
- "id" : 171,
- "damage" : 12
- },
- {
- "id" : 171,
- "damage" : 14
- },
- {
- "id" : 171,
- "damage" : 1
- },
- {
- "id" : 171,
- "damage" : 4
- },
- {
- "id" : 171,
- "damage" : 5
- },
- {
- "id" : 171,
- "damage" : 13
- },
- {
- "id" : 171,
- "damage" : 9
- },
- {
- "id" : 171,
- "damage" : 3
- },
- {
- "id" : 171,
- "damage" : 11
- },
- {
- "id" : 171,
- "damage" : 10
- },
- {
- "id" : 171,
- "damage" : 2
- },
- {
- "id" : 171,
- "damage" : 6
- },
- {
- "id" : 237
- },
- {
- "id" : 237,
- "damage" : 8
- },
- {
- "id" : 237,
- "damage" : 7
- },
- {
- "id" : 237,
- "damage" : 15
- },
- {
- "id" : 237,
- "damage" : 12
- },
- {
- "id" : 237,
- "damage" : 14
- },
- {
- "id" : 237,
- "damage" : 1
- },
- {
- "id" : 237,
- "damage" : 4
- },
- {
- "id" : 237,
- "damage" : 5
- },
- {
- "id" : 237,
- "damage" : 13
- },
- {
- "id" : 237,
- "damage" : 9
- },
- {
- "id" : 237,
- "damage" : 3
- },
- {
- "id" : 237,
- "damage" : 11
- },
- {
- "id" : 237,
- "damage" : 10
- },
- {
- "id" : 237,
- "damage" : 2
- },
- {
- "id" : 237,
- "damage" : 6
- },
- {
- "id" : 236
- },
- {
- "id" : 236,
- "damage" : 8
- },
- {
- "id" : 236,
- "damage" : 7
- },
- {
- "id" : 236,
- "damage" : 15
- },
- {
- "id" : 236,
- "damage" : 12
- },
- {
- "id" : 236,
- "damage" : 14
- },
- {
- "id" : 236,
- "damage" : 1
- },
- {
- "id" : 236,
- "damage" : 4
- },
- {
- "id" : 236,
- "damage" : 5
- },
- {
- "id" : 236,
- "damage" : 13
- },
- {
- "id" : 236,
- "damage" : 9
- },
- {
- "id" : 236,
- "damage" : 3
- },
- {
- "id" : 236,
- "damage" : 11
- },
- {
- "id" : 236,
- "damage" : 10
- },
- {
- "id" : 236,
- "damage" : 2
- },
- {
- "id" : 236,
- "damage" : 6
- },
- {
- "id" : 82
- },
- {
- "id" : 172
- },
- {
- "id" : 159
- },
- {
- "id" : 159,
- "damage" : 8
- },
- {
- "id" : 159,
- "damage" : 7
- },
- {
- "id" : 159,
- "damage" : 15
- },
- {
- "id" : 159,
- "damage" : 12
- },
- {
- "id" : 159,
- "damage" : 14
- },
- {
- "id" : 159,
- "damage" : 1
- },
- {
- "id" : 159,
- "damage" : 4
- },
- {
- "id" : 159,
- "damage" : 5
- },
- {
- "id" : 159,
- "damage" : 13
- },
- {
- "id" : 159,
- "damage" : 9
- },
- {
- "id" : 159,
- "damage" : 3
- },
- {
- "id" : 159,
- "damage" : 11
- },
- {
- "id" : 159,
- "damage" : 10
- },
- {
- "id" : 159,
- "damage" : 2
- },
- {
- "id" : 159,
- "damage" : 6
- },
- {
- "id" : 220
- },
- {
- "id" : 228
- },
- {
- "id" : 227
- },
- {
- "id" : 235
- },
- {
- "id" : 232
- },
- {
- "id" : 234
- },
- {
- "id" : 221
- },
- {
- "id" : 224
- },
- {
- "id" : 225
- },
- {
- "id" : 233
- },
- {
- "id" : 229
- },
- {
- "id" : 223
- },
- {
- "id" : 231
- },
- {
- "id" : 219
- },
- {
- "id" : 222
- },
- {
- "id" : 226
- },
- {
- "id" : 201
- },
- {
- "id" : 201,
- "damage" : 2
- },
- {
- "id" : 3
- },
- {
- "id" : 3,
- "damage" : 1
- },
- {
- "id" : 2
- },
- {
- "id" : 243
- },
- {
- "id" : 110
- },
- {
- "id" : 1
- },
- {
- "id" : 15
- },
- {
- "id" : 14
- },
- {
- "id" : 56
- },
- {
- "id" : 21
- },
- {
- "id" : 73
- },
- {
- "id" : 16
- },
- {
- "id" : 129
- },
- {
- "id" : 153
- },
- {
- "id" : 13
- },
- {
- "id" : 1,
- "damage" : 1
- },
- {
- "id" : 1,
- "damage" : 3
- },
- {
- "id" : 1,
- "damage" : 5
- },
- {
- "id" : 1,
- "damage" : 2
- },
- {
- "id" : 1,
- "damage" : 4
- },
- {
- "id" : 1,
- "damage" : 6
- },
- {
- "id" : 12
- },
- {
- "id" : 12,
- "damage" : 1
- },
- {
- "id" : 81
- },
- {
- "id" : 17
- },
- {
- "id" : -10
- },
- {
- "id" : 17,
- "damage" : 1
- },
- {
- "id" : -5
- },
- {
- "id" : 17,
- "damage" : 2
- },
- {
- "id" : -6
- },
- {
- "id" : 17,
- "damage" : 3
- },
- {
- "id" : -7
- },
- {
- "id" : 162
- },
- {
- "id" : -8
- },
- {
- "id" : 162,
- "damage" : 1
- },
- {
- "id" : -9
- },
- {
- "id" : -212
- },
- {
- "id" : -212,
- "damage" : 8
- },
- {
- "id" : -212,
- "damage" : 1
- },
- {
- "id" : -212,
- "damage" : 9
- },
- {
- "id" : -212,
- "damage" : 2
- },
- {
- "id" : -212,
- "damage" : 10
- },
- {
- "id" : -212,
- "damage" : 3
- },
- {
- "id" : -212,
- "damage" : 11
- },
- {
- "id" : -212,
- "damage" : 4
- },
- {
- "id" : -212,
- "damage" : 12
- },
- {
- "id" : -212,
- "damage" : 5
- },
- {
- "id" : -212,
- "damage" : 13
- },
- {
- "id" : 18
- },
- {
- "id" : 18,
- "damage" : 1
- },
- {
- "id" : 18,
- "damage" : 2
- },
- {
- "id" : 18,
- "damage" : 3
- },
- {
- "id" : 161
- },
- {
- "id" : 161,
- "damage" : 1
- },
- {
- "id" : 6
- },
- {
- "id" : 6,
- "damage" : 1
- },
- {
- "id" : 6,
- "damage" : 2
- },
- {
- "id" : 6,
- "damage" : 3
- },
- {
- "id" : 6,
- "damage" : 4
- },
- {
- "id" : 6,
- "damage" : 5
- },
- {
- "id" : 295
- },
- {
- "id" : 361
- },
- {
- "id" : 362
- },
- {
- "id" : 458
- },
- {
- "id" : 296
- },
- {
- "id" : 457
- },
- {
- "id" : 392
- },
- {
- "id" : 394
- },
- {
- "id" : 391
- },
- {
- "id" : 396
- },
- {
- "id" : 260
- },
- {
- "id" : 322
- },
- {
- "id" : 466
- },
- {
- "id" : 103
- },
- {
- "id" : 360
- },
- {
- "id" : 382
- },
- {
- "id" : 477
- },
- {
- "id" : 86
- },
- {
- "id" : -155
- },
- {
- "id" : 91
- },
- {
- "id" : 31,
- "damage" : 2
- },
- {
- "id" : 175,
- "damage" : 3
- },
- {
- "id" : 31,
- "damage" : 1
- },
- {
- "id" : 175,
- "damage" : 2
- },
- {
- "id" : -131,
- "damage" : 3
- },
- {
- "id" : -131,
- "damage" : 1
- },
- {
- "id" : -131,
- "damage" : 2
- },
- {
- "id" : -131
- },
- {
- "id" : -131,
- "damage" : 4
- },
- {
- "id" : -133,
- "damage" : 3
- },
- {
- "id" : -133,
- "damage" : 1
- },
- {
- "id" : -133,
- "damage" : 2
- },
- {
- "id" : -133
- },
- {
- "id" : -133,
- "damage" : 4
- },
- {
- "id" : -134,
- "damage" : 3
- },
- {
- "id" : -134,
- "damage" : 1
- },
- {
- "id" : -134,
- "damage" : 2
- },
- {
- "id" : -134
- },
- {
- "id" : -134,
- "damage" : 4
- },
- {
- "id" : 335
- },
- {
- "id" : -130
- },
- {
- "id" : 37
- },
- {
- "id" : 38
- },
- {
- "id" : 38,
- "damage" : 1
- },
- {
- "id" : 38,
- "damage" : 2
- },
- {
- "id" : 38,
- "damage" : 3
- },
- {
- "id" : 38,
- "damage" : 4
- },
- {
- "id" : 38,
- "damage" : 5
- },
- {
- "id" : 38,
- "damage" : 6
- },
- {
- "id" : 38,
- "damage" : 7
- },
- {
- "id" : 38,
- "damage" : 8
- },
- {
- "id" : 38,
- "damage" : 9
- },
- {
- "id" : 38,
- "damage" : 10
- },
- {
- "id" : 175
- },
- {
- "id" : 175,
- "damage" : 1
- },
- {
- "id" : 175,
- "damage" : 4
- },
- {
- "id" : 175,
- "damage" : 5
- },
- {
- "id" : 351,
- "damage" : 19
- },
- {
- "id" : 351,
- "damage" : 7
- },
- {
- "id" : 351,
- "damage" : 8
- },
- {
- "id" : 351,
- "damage" : 16
- },
- {
- "id" : 351,
- "damage" : 17
- },
- {
- "id" : 351,
- "damage" : 1
- },
- {
- "id" : 351,
- "damage" : 14
- },
- {
- "id" : 351,
- "damage" : 11
- },
- {
- "id" : 351,
- "damage" : 10
- },
- {
- "id" : 351,
- "damage" : 2
- },
- {
- "id" : 351,
- "damage" : 6
- },
- {
- "id" : 351,
- "damage" : 12
- },
- {
- "id" : 351,
- "damage" : 18
- },
- {
- "id" : 351,
- "damage" : 5
- },
- {
- "id" : 351,
- "damage" : 13
- },
- {
- "id" : 351,
- "damage" : 9
- },
- {
- "id" : 351
- },
- {
- "id" : 351,
- "damage" : 3
- },
- {
- "id" : 351,
- "damage" : 4
- },
- {
- "id" : 351,
- "damage" : 15
- },
- {
- "id" : 106
- },
- {
- "id" : 111
- },
- {
- "id" : 32
- },
- {
- "id" : -163
- },
- {
- "id" : 80
- },
- {
- "id" : 79
- },
- {
- "id" : 174
- },
- {
- "id" : -11
- },
- {
- "id" : 78
- },
- {
- "id" : 365
- },
- {
- "id" : 319
- },
- {
- "id" : 363
- },
- {
- "id" : 423
- },
- {
- "id" : 411
- },
- {
- "id" : 349
- },
- {
- "id" : 460
- },
- {
- "id" : 461
- },
- {
- "id" : 462
- },
- {
- "id" : 39
- },
- {
- "id" : 40
- },
- {
- "id" : 99,
- "damage" : 14
- },
- {
- "id" : 100,
- "damage" : 14
- },
- {
- "id" : 99,
- "damage" : 15
- },
- {
- "id" : 99
- },
- {
- "id" : 344
- },
- {
- "id" : 338
- },
- {
- "id" : 353
- },
- {
- "id" : 367
- },
- {
- "id" : 352
- },
- {
- "id" : 30
- },
- {
- "id" : 375
- },
- {
- "id" : 52
- },
- {
- "id" : 97
- },
- {
- "id" : 97,
- "damage" : 1
- },
- {
- "id" : 97,
- "damage" : 2
- },
- {
- "id" : 97,
- "damage" : 3
- },
- {
- "id" : 97,
- "damage" : 4
- },
- {
- "id" : 97,
- "damage" : 5
- },
- {
- "id" : 122
- },
- {
- "id" : -159
- },
- {
- "id" : 383,
- "damage" : 10
- },
- {
- "id" : 383,
- "damage" : 11
- },
- {
- "id" : 383,
- "damage" : 12
- },
- {
- "id" : 383,
- "damage" : 13
- },
- {
- "id" : 383,
- "damage" : 14
- },
- {
- "id" : 383,
- "damage" : 28
- },
- {
- "id" : 383,
- "damage" : 22
- },
- {
- "id" : 383,
- "damage" : 75
- },
- {
- "id" : 383,
- "damage" : 16
- },
- {
- "id" : 383,
- "damage" : 19
- },
- {
- "id" : 383,
- "damage" : 30
- },
- {
- "id" : 383,
- "damage" : 18
- },
- {
- "id" : 383,
- "damage" : 29
- },
- {
- "id" : 383,
- "damage" : 23
- },
- {
- "id" : 383,
- "damage" : 24
- },
- {
- "id" : 383,
- "damage" : 25
- },
- {
- "id" : 383,
- "damage" : 26
- },
- {
- "id" : 383,
- "damage" : 27
- },
- {
- "id" : 383,
- "damage" : 111
- },
- {
- "id" : 383,
- "damage" : 112
- },
- {
- "id" : 383,
- "damage" : 108
- },
- {
- "id" : 383,
- "damage" : 109
- },
- {
- "id" : 383,
- "damage" : 31
- },
- {
- "id" : 383,
- "damage" : 74
- },
- {
- "id" : 383,
- "damage" : 113
- },
- {
- "id" : 383,
- "damage" : 33
- },
- {
- "id" : 383,
- "damage" : 38
- },
- {
- "id" : 383,
- "damage" : 39
- },
- {
- "id" : 383,
- "damage" : 34
- },
- {
- "id" : 383,
- "damage" : 48
- },
- {
- "id" : 383,
- "damage" : 46
- },
- {
- "id" : 383,
- "damage" : 37
- },
- {
- "id" : 383,
- "damage" : 35
- },
- {
- "id" : 383,
- "damage" : 32
- },
- {
- "id" : 383,
- "damage" : 36
- },
- {
- "id" : 383,
- "damage" : 47
- },
- {
- "id" : 383,
- "damage" : 110
- },
- {
- "id" : 383,
- "damage" : 17
- },
- {
- "id" : 383,
- "damage" : 40
- },
- {
- "id" : 383,
- "damage" : 45
- },
- {
- "id" : 383,
- "damage" : 49
- },
- {
- "id" : 383,
- "damage" : 50
- },
- {
- "id" : 383,
- "damage" : 55
- },
- {
- "id" : 383,
- "damage" : 42
- },
- {
- "id" : 383,
- "damage" : 41
- },
- {
- "id" : 383,
- "damage" : 43
- },
- {
- "id" : 383,
- "damage" : 54
- },
- {
- "id" : 383,
- "damage" : 57
- },
- {
- "id" : 383,
- "damage" : 104
- },
- {
- "id" : 383,
- "damage" : 105
- },
- {
- "id" : 383,
- "damage" : 115
- },
- {
- "id" : 383,
- "damage" : 118
- },
- {
- "id" : 383,
- "damage" : 116
- },
- {
- "id" : 383,
- "damage" : 58
- },
- {
- "id" : 383,
- "damage" : 114
- },
- {
- "id" : 383,
- "damage" : 59
- },
- {
- "id" : 49
- },
- {
- "id" : 7
- },
- {
- "id" : 88
- },
- {
- "id" : 87
- },
- {
- "id" : 213
- },
- {
- "id" : 372
- },
- {
- "id" : 121
- },
- {
- "id" : 200
- },
- {
- "id" : 240
- },
- {
- "id" : 432
- },
- {
- "id" : 433
- },
- {
- "id" : 19
- },
- {
- "id" : 19,
- "damage" : 1
- },
- {
- "id" : -132
- },
- {
- "id" : -132,
- "damage" : 1
- },
- {
- "id" : -132,
- "damage" : 2
- },
- {
- "id" : -132,
- "damage" : 3
- },
- {
- "id" : -132,
- "damage" : 4
- },
- {
- "id" : -132,
- "damage" : 8
- },
- {
- "id" : -132,
- "damage" : 9
- },
- {
- "id" : -132,
- "damage" : 10
- },
- {
- "id" : -132,
- "damage" : 11
- },
- {
- "id" : -132,
- "damage" : 12
- },
- {
- "id" : 298
- },
- {
- "id" : 302
- },
- {
- "id" : 306
- },
- {
- "id" : 314
- },
- {
- "id" : 310
- },
- {
- "id" : 299
- },
- {
- "id" : 303
- },
- {
- "id" : 307
- },
- {
- "id" : 315
- },
- {
- "id" : 311
- },
- {
- "id" : 300
- },
- {
- "id" : 304
- },
- {
- "id" : 308
- },
- {
- "id" : 316
- },
- {
- "id" : 312
- },
- {
- "id" : 301
- },
- {
- "id" : 305
- },
- {
- "id" : 309
- },
- {
- "id" : 317
- },
- {
- "id" : 313
- },
- {
- "id" : 268
- },
- {
- "id" : 272
- },
- {
- "id" : 267
- },
- {
- "id" : 283
- },
- {
- "id" : 276
- },
- {
- "id" : 271
- },
- {
- "id" : 275
- },
- {
- "id" : 258
- },
- {
- "id" : 286
- },
- {
- "id" : 279
- },
- {
- "id" : 270
- },
- {
- "id" : 274
- },
- {
- "id" : 257
- },
- {
- "id" : 285
- },
- {
- "id" : 278
- },
- {
- "id" : 269
- },
- {
- "id" : 273
- },
- {
- "id" : 256
- },
- {
- "id" : 284
- },
- {
- "id" : 277
- },
- {
- "id" : 290
- },
- {
- "id" : 291
- },
- {
- "id" : 292
- },
- {
- "id" : 294
- },
- {
- "id" : 293
- },
- {
- "id" : 261
- },
- {
- "id" : 471
- },
- {
- "id" : 262
- },
- {
- "id" : 262,
- "damage" : 6
- },
- {
- "id" : 262,
- "damage" : 7
- },
- {
- "id" : 262,
- "damage" : 8
- },
- {
- "id" : 262,
- "damage" : 9
- },
- {
- "id" : 262,
- "damage" : 10
- },
- {
- "id" : 262,
- "damage" : 11
- },
- {
- "id" : 262,
- "damage" : 12
- },
- {
- "id" : 262,
- "damage" : 13
- },
- {
- "id" : 262,
- "damage" : 14
- },
- {
- "id" : 262,
- "damage" : 15
- },
- {
- "id" : 262,
- "damage" : 16
- },
- {
- "id" : 262,
- "damage" : 17
- },
- {
- "id" : 262,
- "damage" : 18
- },
- {
- "id" : 262,
- "damage" : 19
- },
- {
- "id" : 262,
- "damage" : 20
- },
- {
- "id" : 262,
- "damage" : 21
- },
- {
- "id" : 262,
- "damage" : 22
- },
- {
- "id" : 262,
- "damage" : 23
- },
- {
- "id" : 262,
- "damage" : 24
- },
- {
- "id" : 262,
- "damage" : 25
- },
- {
- "id" : 262,
- "damage" : 26
- },
- {
- "id" : 262,
- "damage" : 27
- },
- {
- "id" : 262,
- "damage" : 28
- },
- {
- "id" : 262,
- "damage" : 29
- },
- {
- "id" : 262,
- "damage" : 30
- },
- {
- "id" : 262,
- "damage" : 31
- },
- {
- "id" : 262,
- "damage" : 32
- },
- {
- "id" : 262,
- "damage" : 33
- },
- {
- "id" : 262,
- "damage" : 34
- },
- {
- "id" : 262,
- "damage" : 35
- },
- {
- "id" : 262,
- "damage" : 36
- },
- {
- "id" : 262,
- "damage" : 37
- },
- {
- "id" : 262,
- "damage" : 38
- },
- {
- "id" : 262,
- "damage" : 39
- },
- {
- "id" : 262,
- "damage" : 40
- },
- {
- "id" : 262,
- "damage" : 41
- },
- {
- "id" : 262,
- "damage" : 42
- },
- {
- "id" : 513
- },
- {
- "id" : 366
- },
- {
- "id" : 320
- },
- {
- "id" : 364
- },
- {
- "id" : 424
- },
- {
- "id" : 412
- },
- {
- "id" : 350
- },
- {
- "id" : 463
- },
- {
- "id" : 297
- },
- {
- "id" : 282
- },
- {
- "id" : 459
- },
- {
- "id" : 413
- },
- {
- "id" : 393
- },
- {
- "id" : 357
- },
- {
- "id" : 400
- },
- {
- "id" : 354
- },
- {
- "id" : 464
- },
- {
- "id" : 346
- },
- {
- "id" : 398
- },
- {
- "id" : 332
- },
- {
- "id" : 359
- },
- {
- "id" : 259
- },
- {
- "id" : 420
- },
- {
- "id" : 347
- },
- {
- "id" : 345
- },
- {
- "id" : 395
- },
- {
- "id" : 395,
- "damage" : 2
- },
- {
- "id" : 329
- },
- {
- "id" : 416
- },
- {
- "id" : 417
- },
- {
- "id" : 418
- },
- {
- "id" : 419
- },
- {
- "id" : 455
- },
- {
- "id" : 469
- },
- {
- "id" : 444
- },
- {
- "id" : 450
- },
- {
- "id" : 374
- },
- {
- "id" : 384
- },
- {
- "id" : 373
- },
- {
- "id" : 373,
- "damage" : 1
- },
- {
- "id" : 373,
- "damage" : 2
- },
- {
- "id" : 373,
- "damage" : 3
- },
- {
- "id" : 373,
- "damage" : 4
- },
- {
- "id" : 373,
- "damage" : 5
- },
- {
- "id" : 373,
- "damage" : 6
- },
- {
- "id" : 373,
- "damage" : 7
- },
- {
- "id" : 373,
- "damage" : 8
- },
- {
- "id" : 373,
- "damage" : 9
- },
- {
- "id" : 373,
- "damage" : 10
- },
- {
- "id" : 373,
- "damage" : 11
- },
- {
- "id" : 373,
- "damage" : 12
- },
- {
- "id" : 373,
- "damage" : 13
- },
- {
- "id" : 373,
- "damage" : 14
- },
- {
- "id" : 373,
- "damage" : 15
- },
- {
- "id" : 373,
- "damage" : 16
- },
- {
- "id" : 373,
- "damage" : 17
- },
- {
- "id" : 373,
- "damage" : 18
- },
- {
- "id" : 373,
- "damage" : 19
- },
- {
- "id" : 373,
- "damage" : 20
- },
- {
- "id" : 373,
- "damage" : 21
- },
- {
- "id" : 373,
- "damage" : 22
- },
- {
- "id" : 373,
- "damage" : 23
- },
- {
- "id" : 373,
- "damage" : 24
- },
- {
- "id" : 373,
- "damage" : 25
- },
- {
- "id" : 373,
- "damage" : 26
- },
- {
- "id" : 373,
- "damage" : 27
- },
- {
- "id" : 373,
- "damage" : 28
- },
- {
- "id" : 373,
- "damage" : 29
- },
- {
- "id" : 373,
- "damage" : 30
- },
- {
- "id" : 373,
- "damage" : 31
- },
- {
- "id" : 373,
- "damage" : 32
- },
- {
- "id" : 373,
- "damage" : 33
- },
- {
- "id" : 373,
- "damage" : 34
- },
- {
- "id" : 373,
- "damage" : 35
- },
- {
- "id" : 373,
- "damage" : 36
- },
- {
- "id" : 373,
- "damage" : 37
- },
- {
- "id" : 373,
- "damage" : 38
- },
- {
- "id" : 373,
- "damage" : 39
- },
- {
- "id" : 373,
- "damage" : 40
- },
- {
- "id" : 373,
- "damage" : 41
- },
- {
- "id" : 438
- },
- {
- "id" : 438,
- "damage" : 1
- },
- {
- "id" : 438,
- "damage" : 2
- },
- {
- "id" : 438,
- "damage" : 3
- },
- {
- "id" : 438,
- "damage" : 4
- },
- {
- "id" : 438,
- "damage" : 5
- },
- {
- "id" : 438,
- "damage" : 6
- },
- {
- "id" : 438,
- "damage" : 7
- },
- {
- "id" : 438,
- "damage" : 8
- },
- {
- "id" : 438,
- "damage" : 9
- },
- {
- "id" : 438,
- "damage" : 10
- },
- {
- "id" : 438,
- "damage" : 11
- },
- {
- "id" : 438,
- "damage" : 12
- },
- {
- "id" : 438,
- "damage" : 13
- },
- {
- "id" : 438,
- "damage" : 14
- },
- {
- "id" : 438,
- "damage" : 15
- },
- {
- "id" : 438,
- "damage" : 16
- },
- {
- "id" : 438,
- "damage" : 17
- },
- {
- "id" : 438,
- "damage" : 18
- },
- {
- "id" : 438,
- "damage" : 19
- },
- {
- "id" : 438,
- "damage" : 20
- },
- {
- "id" : 438,
- "damage" : 21
- },
- {
- "id" : 438,
- "damage" : 22
- },
- {
- "id" : 438,
- "damage" : 23
- },
- {
- "id" : 438,
- "damage" : 24
- },
- {
- "id" : 438,
- "damage" : 25
- },
- {
- "id" : 438,
- "damage" : 26
- },
- {
- "id" : 438,
- "damage" : 27
- },
- {
- "id" : 438,
- "damage" : 28
- },
- {
- "id" : 438,
- "damage" : 29
- },
- {
- "id" : 438,
- "damage" : 30
- },
- {
- "id" : 438,
- "damage" : 31
- },
- {
- "id" : 438,
- "damage" : 32
- },
- {
- "id" : 438,
- "damage" : 33
- },
- {
- "id" : 438,
- "damage" : 34
- },
- {
- "id" : 438,
- "damage" : 35
- },
- {
- "id" : 438,
- "damage" : 36
- },
- {
- "id" : 438,
- "damage" : 37
- },
- {
- "id" : 438,
- "damage" : 38
- },
- {
- "id" : 438,
- "damage" : 39
- },
- {
- "id" : 438,
- "damage" : 40
- },
- {
- "id" : 438,
- "damage" : 41
- },
- {
- "id" : 441
- },
- {
- "id" : 441,
- "damage" : 1
- },
- {
- "id" : 441,
- "damage" : 2
- },
- {
- "id" : 441,
- "damage" : 3
- },
- {
- "id" : 441,
- "damage" : 4
- },
- {
- "id" : 441,
- "damage" : 5
- },
- {
- "id" : 441,
- "damage" : 6
- },
- {
- "id" : 441,
- "damage" : 7
- },
- {
- "id" : 441,
- "damage" : 8
- },
- {
- "id" : 441,
- "damage" : 9
- },
- {
- "id" : 441,
- "damage" : 10
- },
- {
- "id" : 441,
- "damage" : 11
- },
- {
- "id" : 441,
- "damage" : 12
- },
- {
- "id" : 441,
- "damage" : 13
- },
- {
- "id" : 441,
- "damage" : 14
- },
- {
- "id" : 441,
- "damage" : 15
- },
- {
- "id" : 441,
- "damage" : 16
- },
- {
- "id" : 441,
- "damage" : 17
- },
- {
- "id" : 441,
- "damage" : 18
- },
- {
- "id" : 441,
- "damage" : 19
- },
- {
- "id" : 441,
- "damage" : 20
- },
- {
- "id" : 441,
- "damage" : 21
- },
- {
- "id" : 441,
- "damage" : 22
- },
- {
- "id" : 441,
- "damage" : 23
- },
- {
- "id" : 441,
- "damage" : 24
- },
- {
- "id" : 441,
- "damage" : 25
- },
- {
- "id" : 441,
- "damage" : 26
- },
- {
- "id" : 441,
- "damage" : 27
- },
- {
- "id" : 441,
- "damage" : 28
- },
- {
- "id" : 441,
- "damage" : 29
- },
- {
- "id" : 441,
- "damage" : 30
- },
- {
- "id" : 441,
- "damage" : 31
- },
- {
- "id" : 441,
- "damage" : 32
- },
- {
- "id" : 441,
- "damage" : 33
- },
- {
- "id" : 441,
- "damage" : 34
- },
- {
- "id" : 441,
- "damage" : 35
- },
- {
- "id" : 441,
- "damage" : 36
- },
- {
- "id" : 441,
- "damage" : 37
- },
- {
- "id" : 441,
- "damage" : 38
- },
- {
- "id" : 441,
- "damage" : 39
- },
- {
- "id" : 441,
- "damage" : 40
- },
- {
- "id" : 441,
- "damage" : 41
- },
- {
- "id" : 280
- },
- {
- "id" : 355
- },
- {
- "id" : 355,
- "damage" : 8
- },
- {
- "id" : 355,
- "damage" : 7
- },
- {
- "id" : 355,
- "damage" : 15
- },
- {
- "id" : 355,
- "damage" : 12
- },
- {
- "id" : 355,
- "damage" : 14
- },
- {
- "id" : 355,
- "damage" : 1
- },
- {
- "id" : 355,
- "damage" : 4
- },
- {
- "id" : 355,
- "damage" : 5
- },
- {
- "id" : 355,
- "damage" : 13
- },
- {
- "id" : 355,
- "damage" : 9
- },
- {
- "id" : 355,
- "damage" : 3
- },
- {
- "id" : 355,
- "damage" : 11
- },
- {
- "id" : 355,
- "damage" : 10
- },
- {
- "id" : 355,
- "damage" : 2
- },
- {
- "id" : 355,
- "damage" : 6
- },
- {
- "id" : 50
- },
- {
- "id" : -156
- },
- {
- "id" : -208
- },
- {
- "id" : 58
- },
- {
- "id" : -200
- },
- {
- "id" : -201
- },
- {
- "id" : -202
- },
- {
- "id" : 720
- },
- {
- "id" : 61
- },
- {
- "id" : -196
- },
- {
- "id" : -198
- },
- {
- "id" : 379
- },
- {
- "id" : 145
- },
- {
- "id" : 145,
- "damage" : 4
- },
- {
- "id" : 145,
- "damage" : 8
- },
- {
- "id" : -195
- },
- {
- "id" : 116
- },
- {
- "id" : 47
- },
- {
- "id" : -194
- },
- {
- "id" : 380
- },
- {
- "id" : -213
- },
- {
- "id" : 54
- },
- {
- "id" : -203
- },
- {
- "id" : 146
- },
- {
- "id" : 130
- },
- {
- "id" : 205
- },
- {
- "id" : 218
- },
- {
- "id" : 218,
- "damage" : 8
- },
- {
- "id" : 218,
- "damage" : 7
- },
- {
- "id" : 218,
- "damage" : 15
- },
- {
- "id" : 218,
- "damage" : 12
- },
- {
- "id" : 218,
- "damage" : 14
- },
- {
- "id" : 218,
- "damage" : 1
- },
- {
- "id" : 218,
- "damage" : 4
- },
- {
- "id" : 218,
- "damage" : 5
- },
- {
- "id" : 218,
- "damage" : 13
- },
- {
- "id" : 218,
- "damage" : 9
- },
- {
- "id" : 218,
- "damage" : 3
- },
- {
- "id" : 218,
- "damage" : 11
- },
- {
- "id" : 218,
- "damage" : 10
- },
- {
- "id" : 218,
- "damage" : 2
- },
- {
- "id" : 218,
- "damage" : 6
- },
- {
- "id" : 425
- },
- {
- "id" : 25
- },
- {
- "id" : 84
- },
- {
- "id" : 500
- },
- {
- "id" : 501
- },
- {
- "id" : 502
- },
- {
- "id" : 503
- },
- {
- "id" : 504
- },
- {
- "id" : 505
- },
- {
- "id" : 506
- },
- {
- "id" : 507
- },
- {
- "id" : 508
- },
- {
- "id" : 509
- },
- {
- "id" : 510
- },
- {
- "id" : 511
- },
- {
- "id" : 348
- },
- {
- "id" : 89
- },
- {
- "id" : 123
- },
- {
- "id" : 169
- },
- {
- "id" : 323
- },
- {
- "id" : 472
- },
- {
- "id" : 473
- },
- {
- "id" : 474
- },
- {
- "id" : 475
- },
- {
- "id" : 476
- },
- {
- "id" : 321
- },
- {
- "id" : 389
- },
- {
- "id" : 390
- },
- {
- "id" : 281
- },
- {
- "id" : 325
- },
- {
- "id" : 325,
- "damage" : 1
- },
- {
- "id" : 325,
- "damage" : 8
- },
- {
- "id" : 325,
- "damage" : 10
- },
- {
- "id" : 325,
- "damage" : 2
- },
- {
- "id" : 325,
- "damage" : 3
- },
- {
- "id" : 325,
- "damage" : 4
- },
- {
- "id" : 325,
- "damage" : 5
- },
- {
- "id" : 397,
- "damage" : 3
- },
- {
- "id" : 397,
- "damage" : 2
- },
- {
- "id" : 397,
- "damage" : 4
- },
- {
- "id" : 397,
- "damage" : 5
- },
- {
- "id" : 397
- },
- {
- "id" : 397,
- "damage" : 1
- },
- {
- "id" : 138
- },
- {
- "id" : -206
- },
- {
- "id" : -157
- },
- {
- "id" : -197
- },
- {
- "id" : 120
- },
- {
- "id" : 263
- },
- {
- "id" : 263,
- "damage" : 1
- },
- {
- "id" : 264
- },
- {
- "id" : 452
- },
- {
- "id" : 265
- },
- {
- "id" : 371
- },
- {
- "id" : 266
- },
- {
- "id" : 388
- },
- {
- "id" : 406
- },
- {
- "id" : 337
- },
- {
- "id" : 336
- },
- {
- "id" : 405
- },
- {
- "id" : 409
- },
- {
- "id" : 422
- },
- {
- "id" : 465
- },
- {
- "id" : 467
- },
- {
- "id" : 468
- },
- {
- "id" : 470
- },
- {
- "id" : 287
- },
- {
- "id" : 288
- },
- {
- "id" : 318
- },
- {
- "id" : 289
- },
- {
- "id" : 334
- },
- {
- "id" : 415
- },
- {
- "id" : 414
- },
- {
- "id" : 385
- },
- {
- "id" : 369
- },
- {
- "id" : 377
- },
- {
- "id" : 378
- },
- {
- "id" : 376
- },
- {
- "id" : 437
- },
- {
- "id" : 445
- },
- {
- "id" : 370
- },
- {
- "id" : 341
- },
- {
- "id" : 368
- },
- {
- "id" : 381
- },
- {
- "id" : 399
- },
- {
- "id" : 208
- },
- {
- "id" : 426
- },
- {
- "id" : 339
- },
- {
- "id" : 340
- },
- {
- "id" : 386
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAAAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAAAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAAAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAAAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAQAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAQAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAQAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAQAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAUAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAUAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAUAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAYAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAYAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAYAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAcAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAcAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAcAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAgAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAoAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAoAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAoAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAoAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAoAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAsAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAsAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAsAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAsAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAsAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAwAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAwAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA4AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA4AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZA4AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZA8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZA8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZA8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBAAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZBMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZBMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBQAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBQAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBUAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBYAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBcAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBcAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBcAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBgAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBgAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBgAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBkAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBoAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZB0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZB0AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB4AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB4AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB4AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB8AAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCAAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCEAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZCIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZCIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZCIAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZCMAAAA="
- },
- {
- "id" : 403,
- "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZCMAAAA="
- },
- {
- "id" : 333
- },
- {
- "id" : 333,
- "damage" : 1
- },
- {
- "id" : 333,
- "damage" : 2
- },
- {
- "id" : 333,
- "damage" : 3
- },
- {
- "id" : 333,
- "damage" : 4
- },
- {
- "id" : 333,
- "damage" : 5
- },
- {
- "id" : 66
- },
- {
- "id" : 27
- },
- {
- "id" : 28
- },
- {
- "id" : 126
- },
- {
- "id" : 328
- },
- {
- "id" : 342
- },
- {
- "id" : 408
- },
- {
- "id" : 407
- },
- {
- "id" : 331
- },
- {
- "id" : 152
- },
- {
- "id" : 76
- },
- {
- "id" : 69
- },
- {
- "id" : 143,
- "damage" : 5
- },
- {
- "id" : -144,
- "damage" : 5
- },
- {
- "id" : -141,
- "damage" : 5
- },
- {
- "id" : -143,
- "damage" : 5
- },
- {
- "id" : -140,
- "damage" : 5
- },
- {
- "id" : -142,
- "damage" : 5
- },
- {
- "id" : 77,
- "damage" : 5
- },
- {
- "id" : 131
- },
- {
- "id" : 72
- },
- {
- "id" : -154
- },
- {
- "id" : -151
- },
- {
- "id" : -153
- },
- {
- "id" : -150
- },
- {
- "id" : -152
- },
- {
- "id" : 70
- },
- {
- "id" : 147
- },
- {
- "id" : 148
- },
- {
- "id" : 251
- },
- {
- "id" : 151
- },
- {
- "id" : 356
- },
- {
- "id" : 404
- },
- {
- "id" : 410
- },
- {
- "id" : 125,
- "damage" : 3
- },
- {
- "id" : 23,
- "damage" : 3
- },
- {
- "id" : 33,
- "damage" : 1
- },
- {
- "id" : 29,
- "damage" : 1
- },
- {
- "id" : 46
- },
- {
- "id" : 421
- },
- {
- "id" : -204
- },
- {
- "id" : 446
- },
- {
- "id" : 446,
- "damage" : 8
- },
- {
- "id" : 446,
- "damage" : 7
- },
- {
- "id" : 446,
- "damage" : 15
- },
- {
- "id" : 446,
- "damage" : 12
- },
- {
- "id" : 446,
- "damage" : 14
- },
- {
- "id" : 446,
- "damage" : 1
- },
- {
- "id" : 446,
- "damage" : 4
- },
- {
- "id" : 446,
- "damage" : 5
- },
- {
- "id" : 446,
- "damage" : 13
- },
- {
- "id" : 446,
- "damage" : 9
- },
- {
- "id" : 446,
- "damage" : 3
- },
- {
- "id" : 446,
- "damage" : 11
- },
- {
- "id" : 446,
- "damage" : 10
- },
- {
- "id" : 446,
- "damage" : 2
- },
- {
- "id" : 446,
- "damage" : 6
- },
- {
- "id" : 446,
- "damage" : 15,
- "nbt_b64" : "CgAAAwQAVHlwZQEAAAAA"
- },
- {
- "id" : 434
- },
- {
- "id" : 434,
- "damage" : 1
- },
- {
- "id" : 434,
- "damage" : 2
- },
- {
- "id" : 434,
- "damage" : 3
- },
- {
- "id" : 434,
- "damage" : 4
- },
- {
- "id" : 434,
- "damage" : 5
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMAAAAAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 401,
- "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
- },
- {
- "id" : 402,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IhHR3/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 8,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3JST0f/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 7,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KXnZ3/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 15,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Lw8PD/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 12,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Laszr/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 14,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IdgPn/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 1,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3ImLrD/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 4,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KqRDz/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 5,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3K4Mon/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 13,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3K9Tsf/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 9,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Kqi/P/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 3,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IyVIP/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 11,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3I92P7/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 10,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Ifx4D/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 2,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IWfF7/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- },
- {
- "id" : 402,
- "damage" : 6,
- "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KcnBb/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
- }
-] \ No newline at end of file
+{
+ "items" : [
+ {
+ "id" : 5
+ },
+ {
+ "id" : 5,
+ "damage" : 1
+ },
+ {
+ "id" : 5,
+ "damage" : 2
+ },
+ {
+ "id" : 5,
+ "damage" : 3
+ },
+ {
+ "id" : 5,
+ "damage" : 4
+ },
+ {
+ "id" : 5,
+ "damage" : 5
+ },
+ {
+ "id" : 139
+ },
+ {
+ "id" : 139,
+ "damage" : 1
+ },
+ {
+ "id" : 139,
+ "damage" : 2
+ },
+ {
+ "id" : 139,
+ "damage" : 3
+ },
+ {
+ "id" : 139,
+ "damage" : 4
+ },
+ {
+ "id" : 139,
+ "damage" : 5
+ },
+ {
+ "id" : 139,
+ "damage" : 12
+ },
+ {
+ "id" : 139,
+ "damage" : 7
+ },
+ {
+ "id" : 139,
+ "damage" : 8
+ },
+ {
+ "id" : 139,
+ "damage" : 6
+ },
+ {
+ "id" : 139,
+ "damage" : 9
+ },
+ {
+ "id" : 139,
+ "damage" : 13
+ },
+ {
+ "id" : 139,
+ "damage" : 10
+ },
+ {
+ "id" : 139,
+ "damage" : 11
+ },
+ {
+ "id" : 85
+ },
+ {
+ "id" : 85,
+ "damage" : 1
+ },
+ {
+ "id" : 85,
+ "damage" : 2
+ },
+ {
+ "id" : 85,
+ "damage" : 3
+ },
+ {
+ "id" : 85,
+ "damage" : 4
+ },
+ {
+ "id" : 85,
+ "damage" : 5
+ },
+ {
+ "id" : 113
+ },
+ {
+ "id" : 107
+ },
+ {
+ "id" : 183
+ },
+ {
+ "id" : 184
+ },
+ {
+ "id" : 185
+ },
+ {
+ "id" : 187
+ },
+ {
+ "id" : 186
+ },
+ {
+ "id" : -180
+ },
+ {
+ "id" : 67
+ },
+ {
+ "id" : -179
+ },
+ {
+ "id" : 53
+ },
+ {
+ "id" : 134
+ },
+ {
+ "id" : 135
+ },
+ {
+ "id" : 136
+ },
+ {
+ "id" : 163
+ },
+ {
+ "id" : 164
+ },
+ {
+ "id" : 109
+ },
+ {
+ "id" : -175
+ },
+ {
+ "id" : 128
+ },
+ {
+ "id" : -177
+ },
+ {
+ "id" : 180
+ },
+ {
+ "id" : -176
+ },
+ {
+ "id" : -169
+ },
+ {
+ "id" : -172
+ },
+ {
+ "id" : -170
+ },
+ {
+ "id" : -173
+ },
+ {
+ "id" : -171
+ },
+ {
+ "id" : -174
+ },
+ {
+ "id" : 108
+ },
+ {
+ "id" : 114
+ },
+ {
+ "id" : -184
+ },
+ {
+ "id" : -178
+ },
+ {
+ "id" : 156
+ },
+ {
+ "id" : -185
+ },
+ {
+ "id" : 203
+ },
+ {
+ "id" : -2
+ },
+ {
+ "id" : -3
+ },
+ {
+ "id" : -4
+ },
+ {
+ "id" : 324
+ },
+ {
+ "id" : 427
+ },
+ {
+ "id" : 428
+ },
+ {
+ "id" : 429
+ },
+ {
+ "id" : 430
+ },
+ {
+ "id" : 431
+ },
+ {
+ "id" : 330
+ },
+ {
+ "id" : 96
+ },
+ {
+ "id" : -149
+ },
+ {
+ "id" : -146
+ },
+ {
+ "id" : -148
+ },
+ {
+ "id" : -145
+ },
+ {
+ "id" : -147
+ },
+ {
+ "id" : 167
+ },
+ {
+ "id" : 101
+ },
+ {
+ "id" : 20
+ },
+ {
+ "id" : 241
+ },
+ {
+ "id" : 241,
+ "damage" : 8
+ },
+ {
+ "id" : 241,
+ "damage" : 7
+ },
+ {
+ "id" : 241,
+ "damage" : 15
+ },
+ {
+ "id" : 241,
+ "damage" : 12
+ },
+ {
+ "id" : 241,
+ "damage" : 14
+ },
+ {
+ "id" : 241,
+ "damage" : 1
+ },
+ {
+ "id" : 241,
+ "damage" : 4
+ },
+ {
+ "id" : 241,
+ "damage" : 5
+ },
+ {
+ "id" : 241,
+ "damage" : 13
+ },
+ {
+ "id" : 241,
+ "damage" : 9
+ },
+ {
+ "id" : 241,
+ "damage" : 3
+ },
+ {
+ "id" : 241,
+ "damage" : 11
+ },
+ {
+ "id" : 241,
+ "damage" : 10
+ },
+ {
+ "id" : 241,
+ "damage" : 2
+ },
+ {
+ "id" : 241,
+ "damage" : 6
+ },
+ {
+ "id" : 102
+ },
+ {
+ "id" : 160
+ },
+ {
+ "id" : 160,
+ "damage" : 8
+ },
+ {
+ "id" : 160,
+ "damage" : 7
+ },
+ {
+ "id" : 160,
+ "damage" : 15
+ },
+ {
+ "id" : 160,
+ "damage" : 12
+ },
+ {
+ "id" : 160,
+ "damage" : 14
+ },
+ {
+ "id" : 160,
+ "damage" : 1
+ },
+ {
+ "id" : 160,
+ "damage" : 4
+ },
+ {
+ "id" : 160,
+ "damage" : 5
+ },
+ {
+ "id" : 160,
+ "damage" : 13
+ },
+ {
+ "id" : 160,
+ "damage" : 9
+ },
+ {
+ "id" : 160,
+ "damage" : 3
+ },
+ {
+ "id" : 160,
+ "damage" : 11
+ },
+ {
+ "id" : 160,
+ "damage" : 10
+ },
+ {
+ "id" : 160,
+ "damage" : 2
+ },
+ {
+ "id" : 160,
+ "damage" : 6
+ },
+ {
+ "id" : 65
+ },
+ {
+ "id" : -165
+ },
+ {
+ "id" : 44
+ },
+ {
+ "id" : -166,
+ "damage" : 2
+ },
+ {
+ "id" : 44,
+ "damage" : 3
+ },
+ {
+ "id" : 182,
+ "damage" : 5
+ },
+ {
+ "id" : 158
+ },
+ {
+ "id" : 158,
+ "damage" : 1
+ },
+ {
+ "id" : 158,
+ "damage" : 2
+ },
+ {
+ "id" : 158,
+ "damage" : 3
+ },
+ {
+ "id" : 158,
+ "damage" : 4
+ },
+ {
+ "id" : 158,
+ "damage" : 5
+ },
+ {
+ "id" : 44,
+ "damage" : 5
+ },
+ {
+ "id" : -166
+ },
+ {
+ "id" : 44,
+ "damage" : 1
+ },
+ {
+ "id" : -166,
+ "damage" : 3
+ },
+ {
+ "id" : 182,
+ "damage" : 6
+ },
+ {
+ "id" : 182
+ },
+ {
+ "id" : -166,
+ "damage" : 4
+ },
+ {
+ "id" : -162,
+ "damage" : 1
+ },
+ {
+ "id" : -162,
+ "damage" : 6
+ },
+ {
+ "id" : -162,
+ "damage" : 7
+ },
+ {
+ "id" : -162,
+ "damage" : 4
+ },
+ {
+ "id" : -162,
+ "damage" : 5
+ },
+ {
+ "id" : -162,
+ "damage" : 3
+ },
+ {
+ "id" : -162,
+ "damage" : 2
+ },
+ {
+ "id" : 44,
+ "damage" : 4
+ },
+ {
+ "id" : 44,
+ "damage" : 7
+ },
+ {
+ "id" : 182,
+ "damage" : 7
+ },
+ {
+ "id" : -162
+ },
+ {
+ "id" : 44,
+ "damage" : 6
+ },
+ {
+ "id" : -166,
+ "damage" : 1
+ },
+ {
+ "id" : 182,
+ "damage" : 1
+ },
+ {
+ "id" : 182,
+ "damage" : 2
+ },
+ {
+ "id" : 182,
+ "damage" : 3
+ },
+ {
+ "id" : 182,
+ "damage" : 4
+ },
+ {
+ "id" : 45
+ },
+ {
+ "id" : 98
+ },
+ {
+ "id" : 98,
+ "damage" : 1
+ },
+ {
+ "id" : 98,
+ "damage" : 2
+ },
+ {
+ "id" : 98,
+ "damage" : 3
+ },
+ {
+ "id" : 206
+ },
+ {
+ "id" : 168,
+ "damage" : 2
+ },
+ {
+ "id" : 4
+ },
+ {
+ "id" : 48
+ },
+ {
+ "id" : -183
+ },
+ {
+ "id" : 24
+ },
+ {
+ "id" : 24,
+ "damage" : 1
+ },
+ {
+ "id" : 24,
+ "damage" : 2
+ },
+ {
+ "id" : 24,
+ "damage" : 3
+ },
+ {
+ "id" : 179
+ },
+ {
+ "id" : 179,
+ "damage" : 1
+ },
+ {
+ "id" : 179,
+ "damage" : 2
+ },
+ {
+ "id" : 179,
+ "damage" : 3
+ },
+ {
+ "id" : 173
+ },
+ {
+ "id" : -139
+ },
+ {
+ "id" : 41
+ },
+ {
+ "id" : 42
+ },
+ {
+ "id" : 133
+ },
+ {
+ "id" : 57
+ },
+ {
+ "id" : 22
+ },
+ {
+ "id" : 155
+ },
+ {
+ "id" : 155,
+ "damage" : 2
+ },
+ {
+ "id" : 155,
+ "damage" : 1
+ },
+ {
+ "id" : 155,
+ "damage" : 3
+ },
+ {
+ "id" : 168
+ },
+ {
+ "id" : 168,
+ "damage" : 1
+ },
+ {
+ "id" : 165
+ },
+ {
+ "id" : -220
+ },
+ {
+ "id" : -221
+ },
+ {
+ "id" : 170
+ },
+ {
+ "id" : 216
+ },
+ {
+ "id" : 214
+ },
+ {
+ "id" : 112
+ },
+ {
+ "id" : 215
+ },
+ {
+ "id" : 35
+ },
+ {
+ "id" : 35,
+ "damage" : 8
+ },
+ {
+ "id" : 35,
+ "damage" : 7
+ },
+ {
+ "id" : 35,
+ "damage" : 15
+ },
+ {
+ "id" : 35,
+ "damage" : 12
+ },
+ {
+ "id" : 35,
+ "damage" : 14
+ },
+ {
+ "id" : 35,
+ "damage" : 1
+ },
+ {
+ "id" : 35,
+ "damage" : 4
+ },
+ {
+ "id" : 35,
+ "damage" : 5
+ },
+ {
+ "id" : 35,
+ "damage" : 13
+ },
+ {
+ "id" : 35,
+ "damage" : 9
+ },
+ {
+ "id" : 35,
+ "damage" : 3
+ },
+ {
+ "id" : 35,
+ "damage" : 11
+ },
+ {
+ "id" : 35,
+ "damage" : 10
+ },
+ {
+ "id" : 35,
+ "damage" : 2
+ },
+ {
+ "id" : 35,
+ "damage" : 6
+ },
+ {
+ "id" : 171
+ },
+ {
+ "id" : 171,
+ "damage" : 8
+ },
+ {
+ "id" : 171,
+ "damage" : 7
+ },
+ {
+ "id" : 171,
+ "damage" : 15
+ },
+ {
+ "id" : 171,
+ "damage" : 12
+ },
+ {
+ "id" : 171,
+ "damage" : 14
+ },
+ {
+ "id" : 171,
+ "damage" : 1
+ },
+ {
+ "id" : 171,
+ "damage" : 4
+ },
+ {
+ "id" : 171,
+ "damage" : 5
+ },
+ {
+ "id" : 171,
+ "damage" : 13
+ },
+ {
+ "id" : 171,
+ "damage" : 9
+ },
+ {
+ "id" : 171,
+ "damage" : 3
+ },
+ {
+ "id" : 171,
+ "damage" : 11
+ },
+ {
+ "id" : 171,
+ "damage" : 10
+ },
+ {
+ "id" : 171,
+ "damage" : 2
+ },
+ {
+ "id" : 171,
+ "damage" : 6
+ },
+ {
+ "id" : 237
+ },
+ {
+ "id" : 237,
+ "damage" : 8
+ },
+ {
+ "id" : 237,
+ "damage" : 7
+ },
+ {
+ "id" : 237,
+ "damage" : 15
+ },
+ {
+ "id" : 237,
+ "damage" : 12
+ },
+ {
+ "id" : 237,
+ "damage" : 14
+ },
+ {
+ "id" : 237,
+ "damage" : 1
+ },
+ {
+ "id" : 237,
+ "damage" : 4
+ },
+ {
+ "id" : 237,
+ "damage" : 5
+ },
+ {
+ "id" : 237,
+ "damage" : 13
+ },
+ {
+ "id" : 237,
+ "damage" : 9
+ },
+ {
+ "id" : 237,
+ "damage" : 3
+ },
+ {
+ "id" : 237,
+ "damage" : 11
+ },
+ {
+ "id" : 237,
+ "damage" : 10
+ },
+ {
+ "id" : 237,
+ "damage" : 2
+ },
+ {
+ "id" : 237,
+ "damage" : 6
+ },
+ {
+ "id" : 236
+ },
+ {
+ "id" : 236,
+ "damage" : 8
+ },
+ {
+ "id" : 236,
+ "damage" : 7
+ },
+ {
+ "id" : 236,
+ "damage" : 15
+ },
+ {
+ "id" : 236,
+ "damage" : 12
+ },
+ {
+ "id" : 236,
+ "damage" : 14
+ },
+ {
+ "id" : 236,
+ "damage" : 1
+ },
+ {
+ "id" : 236,
+ "damage" : 4
+ },
+ {
+ "id" : 236,
+ "damage" : 5
+ },
+ {
+ "id" : 236,
+ "damage" : 13
+ },
+ {
+ "id" : 236,
+ "damage" : 9
+ },
+ {
+ "id" : 236,
+ "damage" : 3
+ },
+ {
+ "id" : 236,
+ "damage" : 11
+ },
+ {
+ "id" : 236,
+ "damage" : 10
+ },
+ {
+ "id" : 236,
+ "damage" : 2
+ },
+ {
+ "id" : 236,
+ "damage" : 6
+ },
+ {
+ "id" : 82
+ },
+ {
+ "id" : 172
+ },
+ {
+ "id" : 159
+ },
+ {
+ "id" : 159,
+ "damage" : 8
+ },
+ {
+ "id" : 159,
+ "damage" : 7
+ },
+ {
+ "id" : 159,
+ "damage" : 15
+ },
+ {
+ "id" : 159,
+ "damage" : 12
+ },
+ {
+ "id" : 159,
+ "damage" : 14
+ },
+ {
+ "id" : 159,
+ "damage" : 1
+ },
+ {
+ "id" : 159,
+ "damage" : 4
+ },
+ {
+ "id" : 159,
+ "damage" : 5
+ },
+ {
+ "id" : 159,
+ "damage" : 13
+ },
+ {
+ "id" : 159,
+ "damage" : 9
+ },
+ {
+ "id" : 159,
+ "damage" : 3
+ },
+ {
+ "id" : 159,
+ "damage" : 11
+ },
+ {
+ "id" : 159,
+ "damage" : 10
+ },
+ {
+ "id" : 159,
+ "damage" : 2
+ },
+ {
+ "id" : 159,
+ "damage" : 6
+ },
+ {
+ "id" : 220
+ },
+ {
+ "id" : 228
+ },
+ {
+ "id" : 227
+ },
+ {
+ "id" : 235
+ },
+ {
+ "id" : 232
+ },
+ {
+ "id" : 234
+ },
+ {
+ "id" : 221
+ },
+ {
+ "id" : 224
+ },
+ {
+ "id" : 225
+ },
+ {
+ "id" : 233
+ },
+ {
+ "id" : 229
+ },
+ {
+ "id" : 223
+ },
+ {
+ "id" : 231
+ },
+ {
+ "id" : 219
+ },
+ {
+ "id" : 222
+ },
+ {
+ "id" : 226
+ },
+ {
+ "id" : 201
+ },
+ {
+ "id" : 201,
+ "damage" : 2
+ },
+ {
+ "id" : 3
+ },
+ {
+ "id" : 3,
+ "damage" : 1
+ },
+ {
+ "id" : 2
+ },
+ {
+ "id" : 198
+ },
+ {
+ "id" : 243
+ },
+ {
+ "id" : 110
+ },
+ {
+ "id" : 1
+ },
+ {
+ "id" : 15
+ },
+ {
+ "id" : 14
+ },
+ {
+ "id" : 56
+ },
+ {
+ "id" : 21
+ },
+ {
+ "id" : 73
+ },
+ {
+ "id" : 16
+ },
+ {
+ "id" : 129
+ },
+ {
+ "id" : 153
+ },
+ {
+ "id" : 13
+ },
+ {
+ "id" : 1,
+ "damage" : 1
+ },
+ {
+ "id" : 1,
+ "damage" : 3
+ },
+ {
+ "id" : 1,
+ "damage" : 5
+ },
+ {
+ "id" : 1,
+ "damage" : 2
+ },
+ {
+ "id" : 1,
+ "damage" : 4
+ },
+ {
+ "id" : 1,
+ "damage" : 6
+ },
+ {
+ "id" : 12
+ },
+ {
+ "id" : 12,
+ "damage" : 1
+ },
+ {
+ "id" : 81
+ },
+ {
+ "id" : 17
+ },
+ {
+ "id" : -10
+ },
+ {
+ "id" : 17,
+ "damage" : 1
+ },
+ {
+ "id" : -5
+ },
+ {
+ "id" : 17,
+ "damage" : 2
+ },
+ {
+ "id" : -6
+ },
+ {
+ "id" : 17,
+ "damage" : 3
+ },
+ {
+ "id" : -7
+ },
+ {
+ "id" : 162
+ },
+ {
+ "id" : -8
+ },
+ {
+ "id" : 162,
+ "damage" : 1
+ },
+ {
+ "id" : -9
+ },
+ {
+ "id" : -212
+ },
+ {
+ "id" : -212,
+ "damage" : 8
+ },
+ {
+ "id" : -212,
+ "damage" : 1
+ },
+ {
+ "id" : -212,
+ "damage" : 9
+ },
+ {
+ "id" : -212,
+ "damage" : 2
+ },
+ {
+ "id" : -212,
+ "damage" : 10
+ },
+ {
+ "id" : -212,
+ "damage" : 3
+ },
+ {
+ "id" : -212,
+ "damage" : 11
+ },
+ {
+ "id" : -212,
+ "damage" : 4
+ },
+ {
+ "id" : -212,
+ "damage" : 12
+ },
+ {
+ "id" : -212,
+ "damage" : 5
+ },
+ {
+ "id" : -212,
+ "damage" : 13
+ },
+ {
+ "id" : 18
+ },
+ {
+ "id" : 18,
+ "damage" : 1
+ },
+ {
+ "id" : 18,
+ "damage" : 2
+ },
+ {
+ "id" : 18,
+ "damage" : 3
+ },
+ {
+ "id" : 161
+ },
+ {
+ "id" : 161,
+ "damage" : 1
+ },
+ {
+ "id" : 6
+ },
+ {
+ "id" : 6,
+ "damage" : 1
+ },
+ {
+ "id" : 6,
+ "damage" : 2
+ },
+ {
+ "id" : 6,
+ "damage" : 3
+ },
+ {
+ "id" : 6,
+ "damage" : 4
+ },
+ {
+ "id" : 6,
+ "damage" : 5
+ },
+ {
+ "id" : -218
+ },
+ {
+ "id" : 295
+ },
+ {
+ "id" : 361
+ },
+ {
+ "id" : 362
+ },
+ {
+ "id" : 458
+ },
+ {
+ "id" : 296
+ },
+ {
+ "id" : 457
+ },
+ {
+ "id" : 392
+ },
+ {
+ "id" : 394
+ },
+ {
+ "id" : 391
+ },
+ {
+ "id" : 396
+ },
+ {
+ "id" : 260
+ },
+ {
+ "id" : 322
+ },
+ {
+ "id" : 466
+ },
+ {
+ "id" : 103
+ },
+ {
+ "id" : 360
+ },
+ {
+ "id" : 382
+ },
+ {
+ "id" : 477
+ },
+ {
+ "id" : 86
+ },
+ {
+ "id" : -155
+ },
+ {
+ "id" : 91
+ },
+ {
+ "id" : 736
+ },
+ {
+ "id" : 31,
+ "damage" : 2
+ },
+ {
+ "id" : 175,
+ "damage" : 3
+ },
+ {
+ "id" : 31,
+ "damage" : 1
+ },
+ {
+ "id" : 175,
+ "damage" : 2
+ },
+ {
+ "id" : -131,
+ "damage" : 3
+ },
+ {
+ "id" : -131,
+ "damage" : 1
+ },
+ {
+ "id" : -131,
+ "damage" : 2
+ },
+ {
+ "id" : -131
+ },
+ {
+ "id" : -131,
+ "damage" : 4
+ },
+ {
+ "id" : -131,
+ "damage" : 11
+ },
+ {
+ "id" : -131,
+ "damage" : 9
+ },
+ {
+ "id" : -131,
+ "damage" : 10
+ },
+ {
+ "id" : -131,
+ "damage" : 8
+ },
+ {
+ "id" : -131,
+ "damage" : 12
+ },
+ {
+ "id" : -133,
+ "damage" : 3
+ },
+ {
+ "id" : -133,
+ "damage" : 1
+ },
+ {
+ "id" : -133,
+ "damage" : 2
+ },
+ {
+ "id" : -133
+ },
+ {
+ "id" : -133,
+ "damage" : 4
+ },
+ {
+ "id" : -134,
+ "damage" : 3
+ },
+ {
+ "id" : -134,
+ "damage" : 1
+ },
+ {
+ "id" : -134,
+ "damage" : 2
+ },
+ {
+ "id" : -134
+ },
+ {
+ "id" : -134,
+ "damage" : 4
+ },
+ {
+ "id" : 335
+ },
+ {
+ "id" : -130
+ },
+ {
+ "id" : 37
+ },
+ {
+ "id" : 38
+ },
+ {
+ "id" : 38,
+ "damage" : 1
+ },
+ {
+ "id" : 38,
+ "damage" : 2
+ },
+ {
+ "id" : 38,
+ "damage" : 3
+ },
+ {
+ "id" : 38,
+ "damage" : 4
+ },
+ {
+ "id" : 38,
+ "damage" : 5
+ },
+ {
+ "id" : 38,
+ "damage" : 6
+ },
+ {
+ "id" : 38,
+ "damage" : 7
+ },
+ {
+ "id" : 38,
+ "damage" : 8
+ },
+ {
+ "id" : 38,
+ "damage" : 9
+ },
+ {
+ "id" : 38,
+ "damage" : 10
+ },
+ {
+ "id" : 175
+ },
+ {
+ "id" : 175,
+ "damage" : 1
+ },
+ {
+ "id" : 175,
+ "damage" : 4
+ },
+ {
+ "id" : 175,
+ "damage" : 5
+ },
+ {
+ "id" : -216
+ },
+ {
+ "id" : 351,
+ "damage" : 19
+ },
+ {
+ "id" : 351,
+ "damage" : 7
+ },
+ {
+ "id" : 351,
+ "damage" : 8
+ },
+ {
+ "id" : 351,
+ "damage" : 16
+ },
+ {
+ "id" : 351,
+ "damage" : 17
+ },
+ {
+ "id" : 351,
+ "damage" : 1
+ },
+ {
+ "id" : 351,
+ "damage" : 14
+ },
+ {
+ "id" : 351,
+ "damage" : 11
+ },
+ {
+ "id" : 351,
+ "damage" : 10
+ },
+ {
+ "id" : 351,
+ "damage" : 2
+ },
+ {
+ "id" : 351,
+ "damage" : 6
+ },
+ {
+ "id" : 351,
+ "damage" : 12
+ },
+ {
+ "id" : 351,
+ "damage" : 18
+ },
+ {
+ "id" : 351,
+ "damage" : 5
+ },
+ {
+ "id" : 351,
+ "damage" : 13
+ },
+ {
+ "id" : 351,
+ "damage" : 9
+ },
+ {
+ "id" : 351
+ },
+ {
+ "id" : 351,
+ "damage" : 3
+ },
+ {
+ "id" : 351,
+ "damage" : 4
+ },
+ {
+ "id" : 351,
+ "damage" : 15
+ },
+ {
+ "id" : 106
+ },
+ {
+ "id" : 111
+ },
+ {
+ "id" : 32
+ },
+ {
+ "id" : -163
+ },
+ {
+ "id" : 80
+ },
+ {
+ "id" : 79
+ },
+ {
+ "id" : 174
+ },
+ {
+ "id" : -11
+ },
+ {
+ "id" : 78
+ },
+ {
+ "id" : 365
+ },
+ {
+ "id" : 319
+ },
+ {
+ "id" : 363
+ },
+ {
+ "id" : 423
+ },
+ {
+ "id" : 411
+ },
+ {
+ "id" : 349
+ },
+ {
+ "id" : 460
+ },
+ {
+ "id" : 461
+ },
+ {
+ "id" : 462
+ },
+ {
+ "id" : 39
+ },
+ {
+ "id" : 40
+ },
+ {
+ "id" : 99,
+ "damage" : 14
+ },
+ {
+ "id" : 100,
+ "damage" : 14
+ },
+ {
+ "id" : 99,
+ "damage" : 15
+ },
+ {
+ "id" : 99
+ },
+ {
+ "id" : 344
+ },
+ {
+ "id" : 338
+ },
+ {
+ "id" : 353
+ },
+ {
+ "id" : 367
+ },
+ {
+ "id" : 352
+ },
+ {
+ "id" : 30
+ },
+ {
+ "id" : 375
+ },
+ {
+ "id" : 52
+ },
+ {
+ "id" : 97
+ },
+ {
+ "id" : 97,
+ "damage" : 1
+ },
+ {
+ "id" : 97,
+ "damage" : 2
+ },
+ {
+ "id" : 97,
+ "damage" : 3
+ },
+ {
+ "id" : 97,
+ "damage" : 4
+ },
+ {
+ "id" : 97,
+ "damage" : 5
+ },
+ {
+ "id" : 122
+ },
+ {
+ "id" : -159
+ },
+ {
+ "id" : 383,
+ "damage" : 10
+ },
+ {
+ "id" : 383,
+ "damage" : 122
+ },
+ {
+ "id" : 383,
+ "damage" : 11
+ },
+ {
+ "id" : 383,
+ "damage" : 12
+ },
+ {
+ "id" : 383,
+ "damage" : 13
+ },
+ {
+ "id" : 383,
+ "damage" : 14
+ },
+ {
+ "id" : 383,
+ "damage" : 28
+ },
+ {
+ "id" : 383,
+ "damage" : 22
+ },
+ {
+ "id" : 383,
+ "damage" : 75
+ },
+ {
+ "id" : 383,
+ "damage" : 16
+ },
+ {
+ "id" : 383,
+ "damage" : 19
+ },
+ {
+ "id" : 383,
+ "damage" : 30
+ },
+ {
+ "id" : 383,
+ "damage" : 18
+ },
+ {
+ "id" : 383,
+ "damage" : 29
+ },
+ {
+ "id" : 383,
+ "damage" : 23
+ },
+ {
+ "id" : 383,
+ "damage" : 24
+ },
+ {
+ "id" : 383,
+ "damage" : 25
+ },
+ {
+ "id" : 383,
+ "damage" : 26
+ },
+ {
+ "id" : 383,
+ "damage" : 27
+ },
+ {
+ "id" : 383,
+ "damage" : 111
+ },
+ {
+ "id" : 383,
+ "damage" : 112
+ },
+ {
+ "id" : 383,
+ "damage" : 108
+ },
+ {
+ "id" : 383,
+ "damage" : 109
+ },
+ {
+ "id" : 383,
+ "damage" : 31
+ },
+ {
+ "id" : 383,
+ "damage" : 74
+ },
+ {
+ "id" : 383,
+ "damage" : 113
+ },
+ {
+ "id" : 383,
+ "damage" : 121
+ },
+ {
+ "id" : 383,
+ "damage" : 33
+ },
+ {
+ "id" : 383,
+ "damage" : 38
+ },
+ {
+ "id" : 383,
+ "damage" : 39
+ },
+ {
+ "id" : 383,
+ "damage" : 34
+ },
+ {
+ "id" : 383,
+ "damage" : 48
+ },
+ {
+ "id" : 383,
+ "damage" : 46
+ },
+ {
+ "id" : 383,
+ "damage" : 37
+ },
+ {
+ "id" : 383,
+ "damage" : 35
+ },
+ {
+ "id" : 383,
+ "damage" : 32
+ },
+ {
+ "id" : 383,
+ "damage" : 36
+ },
+ {
+ "id" : 383,
+ "damage" : 47
+ },
+ {
+ "id" : 383,
+ "damage" : 110
+ },
+ {
+ "id" : 383,
+ "damage" : 17
+ },
+ {
+ "id" : 383,
+ "damage" : 40
+ },
+ {
+ "id" : 383,
+ "damage" : 45
+ },
+ {
+ "id" : 383,
+ "damage" : 49
+ },
+ {
+ "id" : 383,
+ "damage" : 50
+ },
+ {
+ "id" : 383,
+ "damage" : 55
+ },
+ {
+ "id" : 383,
+ "damage" : 42
+ },
+ {
+ "id" : 383,
+ "damage" : 41
+ },
+ {
+ "id" : 383,
+ "damage" : 43
+ },
+ {
+ "id" : 383,
+ "damage" : 54
+ },
+ {
+ "id" : 383,
+ "damage" : 57
+ },
+ {
+ "id" : 383,
+ "damage" : 104
+ },
+ {
+ "id" : 383,
+ "damage" : 105
+ },
+ {
+ "id" : 383,
+ "damage" : 115
+ },
+ {
+ "id" : 383,
+ "damage" : 118
+ },
+ {
+ "id" : 383,
+ "damage" : 116
+ },
+ {
+ "id" : 383,
+ "damage" : 58
+ },
+ {
+ "id" : 383,
+ "damage" : 114
+ },
+ {
+ "id" : 383,
+ "damage" : 59
+ },
+ {
+ "id" : 49
+ },
+ {
+ "id" : 7
+ },
+ {
+ "id" : 88
+ },
+ {
+ "id" : 87
+ },
+ {
+ "id" : 213
+ },
+ {
+ "id" : 372
+ },
+ {
+ "id" : 121
+ },
+ {
+ "id" : 200
+ },
+ {
+ "id" : 240
+ },
+ {
+ "id" : 432
+ },
+ {
+ "id" : 433
+ },
+ {
+ "id" : 19
+ },
+ {
+ "id" : 19,
+ "damage" : 1
+ },
+ {
+ "id" : -132
+ },
+ {
+ "id" : -132,
+ "damage" : 1
+ },
+ {
+ "id" : -132,
+ "damage" : 2
+ },
+ {
+ "id" : -132,
+ "damage" : 3
+ },
+ {
+ "id" : -132,
+ "damage" : 4
+ },
+ {
+ "id" : -132,
+ "damage" : 8
+ },
+ {
+ "id" : -132,
+ "damage" : 9
+ },
+ {
+ "id" : -132,
+ "damage" : 10
+ },
+ {
+ "id" : -132,
+ "damage" : 11
+ },
+ {
+ "id" : -132,
+ "damage" : 12
+ },
+ {
+ "id" : 298
+ },
+ {
+ "id" : 302
+ },
+ {
+ "id" : 306
+ },
+ {
+ "id" : 314
+ },
+ {
+ "id" : 310
+ },
+ {
+ "id" : 299
+ },
+ {
+ "id" : 303
+ },
+ {
+ "id" : 307
+ },
+ {
+ "id" : 315
+ },
+ {
+ "id" : 311
+ },
+ {
+ "id" : 300
+ },
+ {
+ "id" : 304
+ },
+ {
+ "id" : 308
+ },
+ {
+ "id" : 316
+ },
+ {
+ "id" : 312
+ },
+ {
+ "id" : 301
+ },
+ {
+ "id" : 305
+ },
+ {
+ "id" : 309
+ },
+ {
+ "id" : 317
+ },
+ {
+ "id" : 313
+ },
+ {
+ "id" : 268
+ },
+ {
+ "id" : 272
+ },
+ {
+ "id" : 267
+ },
+ {
+ "id" : 283
+ },
+ {
+ "id" : 276
+ },
+ {
+ "id" : 271
+ },
+ {
+ "id" : 275
+ },
+ {
+ "id" : 258
+ },
+ {
+ "id" : 286
+ },
+ {
+ "id" : 279
+ },
+ {
+ "id" : 270
+ },
+ {
+ "id" : 274
+ },
+ {
+ "id" : 257
+ },
+ {
+ "id" : 285
+ },
+ {
+ "id" : 278
+ },
+ {
+ "id" : 269
+ },
+ {
+ "id" : 273
+ },
+ {
+ "id" : 256
+ },
+ {
+ "id" : 284
+ },
+ {
+ "id" : 277
+ },
+ {
+ "id" : 290
+ },
+ {
+ "id" : 291
+ },
+ {
+ "id" : 292
+ },
+ {
+ "id" : 294
+ },
+ {
+ "id" : 293
+ },
+ {
+ "id" : 261
+ },
+ {
+ "id" : 471
+ },
+ {
+ "id" : 262
+ },
+ {
+ "id" : 262,
+ "damage" : 6
+ },
+ {
+ "id" : 262,
+ "damage" : 7
+ },
+ {
+ "id" : 262,
+ "damage" : 8
+ },
+ {
+ "id" : 262,
+ "damage" : 9
+ },
+ {
+ "id" : 262,
+ "damage" : 10
+ },
+ {
+ "id" : 262,
+ "damage" : 11
+ },
+ {
+ "id" : 262,
+ "damage" : 12
+ },
+ {
+ "id" : 262,
+ "damage" : 13
+ },
+ {
+ "id" : 262,
+ "damage" : 14
+ },
+ {
+ "id" : 262,
+ "damage" : 15
+ },
+ {
+ "id" : 262,
+ "damage" : 16
+ },
+ {
+ "id" : 262,
+ "damage" : 17
+ },
+ {
+ "id" : 262,
+ "damage" : 18
+ },
+ {
+ "id" : 262,
+ "damage" : 19
+ },
+ {
+ "id" : 262,
+ "damage" : 20
+ },
+ {
+ "id" : 262,
+ "damage" : 21
+ },
+ {
+ "id" : 262,
+ "damage" : 22
+ },
+ {
+ "id" : 262,
+ "damage" : 23
+ },
+ {
+ "id" : 262,
+ "damage" : 24
+ },
+ {
+ "id" : 262,
+ "damage" : 25
+ },
+ {
+ "id" : 262,
+ "damage" : 26
+ },
+ {
+ "id" : 262,
+ "damage" : 27
+ },
+ {
+ "id" : 262,
+ "damage" : 28
+ },
+ {
+ "id" : 262,
+ "damage" : 29
+ },
+ {
+ "id" : 262,
+ "damage" : 30
+ },
+ {
+ "id" : 262,
+ "damage" : 31
+ },
+ {
+ "id" : 262,
+ "damage" : 32
+ },
+ {
+ "id" : 262,
+ "damage" : 33
+ },
+ {
+ "id" : 262,
+ "damage" : 34
+ },
+ {
+ "id" : 262,
+ "damage" : 35
+ },
+ {
+ "id" : 262,
+ "damage" : 36
+ },
+ {
+ "id" : 262,
+ "damage" : 37
+ },
+ {
+ "id" : 262,
+ "damage" : 38
+ },
+ {
+ "id" : 262,
+ "damage" : 39
+ },
+ {
+ "id" : 262,
+ "damage" : 40
+ },
+ {
+ "id" : 262,
+ "damage" : 41
+ },
+ {
+ "id" : 262,
+ "damage" : 42
+ },
+ {
+ "id" : 513
+ },
+ {
+ "id" : 366
+ },
+ {
+ "id" : 320
+ },
+ {
+ "id" : 364
+ },
+ {
+ "id" : 424
+ },
+ {
+ "id" : 412
+ },
+ {
+ "id" : 350
+ },
+ {
+ "id" : 463
+ },
+ {
+ "id" : 297
+ },
+ {
+ "id" : 282
+ },
+ {
+ "id" : 459
+ },
+ {
+ "id" : 413
+ },
+ {
+ "id" : 393
+ },
+ {
+ "id" : 357
+ },
+ {
+ "id" : 400
+ },
+ {
+ "id" : 354
+ },
+ {
+ "id" : 464
+ },
+ {
+ "id" : 346
+ },
+ {
+ "id" : 398
+ },
+ {
+ "id" : 332
+ },
+ {
+ "id" : 359
+ },
+ {
+ "id" : 259
+ },
+ {
+ "id" : 420
+ },
+ {
+ "id" : 347
+ },
+ {
+ "id" : 345
+ },
+ {
+ "id" : 395
+ },
+ {
+ "id" : 395,
+ "damage" : 2
+ },
+ {
+ "id" : 329
+ },
+ {
+ "id" : 416
+ },
+ {
+ "id" : 417
+ },
+ {
+ "id" : 418
+ },
+ {
+ "id" : 419
+ },
+ {
+ "id" : 455
+ },
+ {
+ "id" : 469
+ },
+ {
+ "id" : 444
+ },
+ {
+ "id" : 450
+ },
+ {
+ "id" : 374
+ },
+ {
+ "id" : 384
+ },
+ {
+ "id" : 373
+ },
+ {
+ "id" : 373,
+ "damage" : 1
+ },
+ {
+ "id" : 373,
+ "damage" : 2
+ },
+ {
+ "id" : 373,
+ "damage" : 3
+ },
+ {
+ "id" : 373,
+ "damage" : 4
+ },
+ {
+ "id" : 373,
+ "damage" : 5
+ },
+ {
+ "id" : 373,
+ "damage" : 6
+ },
+ {
+ "id" : 373,
+ "damage" : 7
+ },
+ {
+ "id" : 373,
+ "damage" : 8
+ },
+ {
+ "id" : 373,
+ "damage" : 9
+ },
+ {
+ "id" : 373,
+ "damage" : 10
+ },
+ {
+ "id" : 373,
+ "damage" : 11
+ },
+ {
+ "id" : 373,
+ "damage" : 12
+ },
+ {
+ "id" : 373,
+ "damage" : 13
+ },
+ {
+ "id" : 373,
+ "damage" : 14
+ },
+ {
+ "id" : 373,
+ "damage" : 15
+ },
+ {
+ "id" : 373,
+ "damage" : 16
+ },
+ {
+ "id" : 373,
+ "damage" : 17
+ },
+ {
+ "id" : 373,
+ "damage" : 18
+ },
+ {
+ "id" : 373,
+ "damage" : 19
+ },
+ {
+ "id" : 373,
+ "damage" : 20
+ },
+ {
+ "id" : 373,
+ "damage" : 21
+ },
+ {
+ "id" : 373,
+ "damage" : 22
+ },
+ {
+ "id" : 373,
+ "damage" : 23
+ },
+ {
+ "id" : 373,
+ "damage" : 24
+ },
+ {
+ "id" : 373,
+ "damage" : 25
+ },
+ {
+ "id" : 373,
+ "damage" : 26
+ },
+ {
+ "id" : 373,
+ "damage" : 27
+ },
+ {
+ "id" : 373,
+ "damage" : 28
+ },
+ {
+ "id" : 373,
+ "damage" : 29
+ },
+ {
+ "id" : 373,
+ "damage" : 30
+ },
+ {
+ "id" : 373,
+ "damage" : 31
+ },
+ {
+ "id" : 373,
+ "damage" : 32
+ },
+ {
+ "id" : 373,
+ "damage" : 33
+ },
+ {
+ "id" : 373,
+ "damage" : 34
+ },
+ {
+ "id" : 373,
+ "damage" : 35
+ },
+ {
+ "id" : 373,
+ "damage" : 36
+ },
+ {
+ "id" : 373,
+ "damage" : 37
+ },
+ {
+ "id" : 373,
+ "damage" : 38
+ },
+ {
+ "id" : 373,
+ "damage" : 39
+ },
+ {
+ "id" : 373,
+ "damage" : 40
+ },
+ {
+ "id" : 373,
+ "damage" : 41
+ },
+ {
+ "id" : 438
+ },
+ {
+ "id" : 438,
+ "damage" : 1
+ },
+ {
+ "id" : 438,
+ "damage" : 2
+ },
+ {
+ "id" : 438,
+ "damage" : 3
+ },
+ {
+ "id" : 438,
+ "damage" : 4
+ },
+ {
+ "id" : 438,
+ "damage" : 5
+ },
+ {
+ "id" : 438,
+ "damage" : 6
+ },
+ {
+ "id" : 438,
+ "damage" : 7
+ },
+ {
+ "id" : 438,
+ "damage" : 8
+ },
+ {
+ "id" : 438,
+ "damage" : 9
+ },
+ {
+ "id" : 438,
+ "damage" : 10
+ },
+ {
+ "id" : 438,
+ "damage" : 11
+ },
+ {
+ "id" : 438,
+ "damage" : 12
+ },
+ {
+ "id" : 438,
+ "damage" : 13
+ },
+ {
+ "id" : 438,
+ "damage" : 14
+ },
+ {
+ "id" : 438,
+ "damage" : 15
+ },
+ {
+ "id" : 438,
+ "damage" : 16
+ },
+ {
+ "id" : 438,
+ "damage" : 17
+ },
+ {
+ "id" : 438,
+ "damage" : 18
+ },
+ {
+ "id" : 438,
+ "damage" : 19
+ },
+ {
+ "id" : 438,
+ "damage" : 20
+ },
+ {
+ "id" : 438,
+ "damage" : 21
+ },
+ {
+ "id" : 438,
+ "damage" : 22
+ },
+ {
+ "id" : 438,
+ "damage" : 23
+ },
+ {
+ "id" : 438,
+ "damage" : 24
+ },
+ {
+ "id" : 438,
+ "damage" : 25
+ },
+ {
+ "id" : 438,
+ "damage" : 26
+ },
+ {
+ "id" : 438,
+ "damage" : 27
+ },
+ {
+ "id" : 438,
+ "damage" : 28
+ },
+ {
+ "id" : 438,
+ "damage" : 29
+ },
+ {
+ "id" : 438,
+ "damage" : 30
+ },
+ {
+ "id" : 438,
+ "damage" : 31
+ },
+ {
+ "id" : 438,
+ "damage" : 32
+ },
+ {
+ "id" : 438,
+ "damage" : 33
+ },
+ {
+ "id" : 438,
+ "damage" : 34
+ },
+ {
+ "id" : 438,
+ "damage" : 35
+ },
+ {
+ "id" : 438,
+ "damage" : 36
+ },
+ {
+ "id" : 438,
+ "damage" : 37
+ },
+ {
+ "id" : 438,
+ "damage" : 38
+ },
+ {
+ "id" : 438,
+ "damage" : 39
+ },
+ {
+ "id" : 438,
+ "damage" : 40
+ },
+ {
+ "id" : 438,
+ "damage" : 41
+ },
+ {
+ "id" : 441
+ },
+ {
+ "id" : 441,
+ "damage" : 1
+ },
+ {
+ "id" : 441,
+ "damage" : 2
+ },
+ {
+ "id" : 441,
+ "damage" : 3
+ },
+ {
+ "id" : 441,
+ "damage" : 4
+ },
+ {
+ "id" : 441,
+ "damage" : 5
+ },
+ {
+ "id" : 441,
+ "damage" : 6
+ },
+ {
+ "id" : 441,
+ "damage" : 7
+ },
+ {
+ "id" : 441,
+ "damage" : 8
+ },
+ {
+ "id" : 441,
+ "damage" : 9
+ },
+ {
+ "id" : 441,
+ "damage" : 10
+ },
+ {
+ "id" : 441,
+ "damage" : 11
+ },
+ {
+ "id" : 441,
+ "damage" : 12
+ },
+ {
+ "id" : 441,
+ "damage" : 13
+ },
+ {
+ "id" : 441,
+ "damage" : 14
+ },
+ {
+ "id" : 441,
+ "damage" : 15
+ },
+ {
+ "id" : 441,
+ "damage" : 16
+ },
+ {
+ "id" : 441,
+ "damage" : 17
+ },
+ {
+ "id" : 441,
+ "damage" : 18
+ },
+ {
+ "id" : 441,
+ "damage" : 19
+ },
+ {
+ "id" : 441,
+ "damage" : 20
+ },
+ {
+ "id" : 441,
+ "damage" : 21
+ },
+ {
+ "id" : 441,
+ "damage" : 22
+ },
+ {
+ "id" : 441,
+ "damage" : 23
+ },
+ {
+ "id" : 441,
+ "damage" : 24
+ },
+ {
+ "id" : 441,
+ "damage" : 25
+ },
+ {
+ "id" : 441,
+ "damage" : 26
+ },
+ {
+ "id" : 441,
+ "damage" : 27
+ },
+ {
+ "id" : 441,
+ "damage" : 28
+ },
+ {
+ "id" : 441,
+ "damage" : 29
+ },
+ {
+ "id" : 441,
+ "damage" : 30
+ },
+ {
+ "id" : 441,
+ "damage" : 31
+ },
+ {
+ "id" : 441,
+ "damage" : 32
+ },
+ {
+ "id" : 441,
+ "damage" : 33
+ },
+ {
+ "id" : 441,
+ "damage" : 34
+ },
+ {
+ "id" : 441,
+ "damage" : 35
+ },
+ {
+ "id" : 441,
+ "damage" : 36
+ },
+ {
+ "id" : 441,
+ "damage" : 37
+ },
+ {
+ "id" : 441,
+ "damage" : 38
+ },
+ {
+ "id" : 441,
+ "damage" : 39
+ },
+ {
+ "id" : 441,
+ "damage" : 40
+ },
+ {
+ "id" : 441,
+ "damage" : 41
+ },
+ {
+ "id" : 280
+ },
+ {
+ "id" : 355
+ },
+ {
+ "id" : 355,
+ "damage" : 8
+ },
+ {
+ "id" : 355,
+ "damage" : 7
+ },
+ {
+ "id" : 355,
+ "damage" : 15
+ },
+ {
+ "id" : 355,
+ "damage" : 12
+ },
+ {
+ "id" : 355,
+ "damage" : 14
+ },
+ {
+ "id" : 355,
+ "damage" : 1
+ },
+ {
+ "id" : 355,
+ "damage" : 4
+ },
+ {
+ "id" : 355,
+ "damage" : 5
+ },
+ {
+ "id" : 355,
+ "damage" : 13
+ },
+ {
+ "id" : 355,
+ "damage" : 9
+ },
+ {
+ "id" : 355,
+ "damage" : 3
+ },
+ {
+ "id" : 355,
+ "damage" : 11
+ },
+ {
+ "id" : 355,
+ "damage" : 10
+ },
+ {
+ "id" : 355,
+ "damage" : 2
+ },
+ {
+ "id" : 355,
+ "damage" : 6
+ },
+ {
+ "id" : 50
+ },
+ {
+ "id" : -156
+ },
+ {
+ "id" : -208
+ },
+ {
+ "id" : 58
+ },
+ {
+ "id" : -200
+ },
+ {
+ "id" : -201
+ },
+ {
+ "id" : -202
+ },
+ {
+ "id" : -219
+ },
+ {
+ "id" : 720
+ },
+ {
+ "id" : 61
+ },
+ {
+ "id" : -196
+ },
+ {
+ "id" : -198
+ },
+ {
+ "id" : 379
+ },
+ {
+ "id" : 145
+ },
+ {
+ "id" : 145,
+ "damage" : 4
+ },
+ {
+ "id" : 145,
+ "damage" : 8
+ },
+ {
+ "id" : -195
+ },
+ {
+ "id" : 116
+ },
+ {
+ "id" : 47
+ },
+ {
+ "id" : -194
+ },
+ {
+ "id" : 380
+ },
+ {
+ "id" : -213
+ },
+ {
+ "id" : 54
+ },
+ {
+ "id" : 146
+ },
+ {
+ "id" : 130
+ },
+ {
+ "id" : -203
+ },
+ {
+ "id" : 205
+ },
+ {
+ "id" : 218
+ },
+ {
+ "id" : 218,
+ "damage" : 8
+ },
+ {
+ "id" : 218,
+ "damage" : 7
+ },
+ {
+ "id" : 218,
+ "damage" : 15
+ },
+ {
+ "id" : 218,
+ "damage" : 12
+ },
+ {
+ "id" : 218,
+ "damage" : 14
+ },
+ {
+ "id" : 218,
+ "damage" : 1
+ },
+ {
+ "id" : 218,
+ "damage" : 4
+ },
+ {
+ "id" : 218,
+ "damage" : 5
+ },
+ {
+ "id" : 218,
+ "damage" : 13
+ },
+ {
+ "id" : 218,
+ "damage" : 9
+ },
+ {
+ "id" : 218,
+ "damage" : 3
+ },
+ {
+ "id" : 218,
+ "damage" : 11
+ },
+ {
+ "id" : 218,
+ "damage" : 10
+ },
+ {
+ "id" : 218,
+ "damage" : 2
+ },
+ {
+ "id" : 218,
+ "damage" : 6
+ },
+ {
+ "id" : 425
+ },
+ {
+ "id" : 25
+ },
+ {
+ "id" : 84
+ },
+ {
+ "id" : 500
+ },
+ {
+ "id" : 501
+ },
+ {
+ "id" : 502
+ },
+ {
+ "id" : 503
+ },
+ {
+ "id" : 504
+ },
+ {
+ "id" : 505
+ },
+ {
+ "id" : 506
+ },
+ {
+ "id" : 507
+ },
+ {
+ "id" : 508
+ },
+ {
+ "id" : 509
+ },
+ {
+ "id" : 510
+ },
+ {
+ "id" : 511
+ },
+ {
+ "id" : 348
+ },
+ {
+ "id" : 89
+ },
+ {
+ "id" : 123
+ },
+ {
+ "id" : 169
+ },
+ {
+ "id" : 323
+ },
+ {
+ "id" : 472
+ },
+ {
+ "id" : 473
+ },
+ {
+ "id" : 474
+ },
+ {
+ "id" : 475
+ },
+ {
+ "id" : 476
+ },
+ {
+ "id" : 321
+ },
+ {
+ "id" : 389
+ },
+ {
+ "id" : 737
+ },
+ {
+ "id" : 390
+ },
+ {
+ "id" : 281
+ },
+ {
+ "id" : 325
+ },
+ {
+ "id" : 325,
+ "damage" : 1
+ },
+ {
+ "id" : 325,
+ "damage" : 8
+ },
+ {
+ "id" : 325,
+ "damage" : 10
+ },
+ {
+ "id" : 325,
+ "damage" : 2
+ },
+ {
+ "id" : 325,
+ "damage" : 3
+ },
+ {
+ "id" : 325,
+ "damage" : 4
+ },
+ {
+ "id" : 325,
+ "damage" : 5
+ },
+ {
+ "id" : 397,
+ "damage" : 3
+ },
+ {
+ "id" : 397,
+ "damage" : 2
+ },
+ {
+ "id" : 397,
+ "damage" : 4
+ },
+ {
+ "id" : 397,
+ "damage" : 5
+ },
+ {
+ "id" : 397
+ },
+ {
+ "id" : 397,
+ "damage" : 1
+ },
+ {
+ "id" : 138
+ },
+ {
+ "id" : -206
+ },
+ {
+ "id" : -157
+ },
+ {
+ "id" : -197
+ },
+ {
+ "id" : 120
+ },
+ {
+ "id" : 263
+ },
+ {
+ "id" : 263,
+ "damage" : 1
+ },
+ {
+ "id" : 264
+ },
+ {
+ "id" : 452
+ },
+ {
+ "id" : 265
+ },
+ {
+ "id" : 371
+ },
+ {
+ "id" : 266
+ },
+ {
+ "id" : 388
+ },
+ {
+ "id" : 406
+ },
+ {
+ "id" : 337
+ },
+ {
+ "id" : 336
+ },
+ {
+ "id" : 405
+ },
+ {
+ "id" : 409
+ },
+ {
+ "id" : 422
+ },
+ {
+ "id" : 465
+ },
+ {
+ "id" : 467
+ },
+ {
+ "id" : 468
+ },
+ {
+ "id" : 470
+ },
+ {
+ "id" : 287
+ },
+ {
+ "id" : 288
+ },
+ {
+ "id" : 318
+ },
+ {
+ "id" : 289
+ },
+ {
+ "id" : 334
+ },
+ {
+ "id" : 415
+ },
+ {
+ "id" : 414
+ },
+ {
+ "id" : 385
+ },
+ {
+ "id" : 369
+ },
+ {
+ "id" : 377
+ },
+ {
+ "id" : 378
+ },
+ {
+ "id" : 376
+ },
+ {
+ "id" : 437
+ },
+ {
+ "id" : 445
+ },
+ {
+ "id" : 370
+ },
+ {
+ "id" : 341
+ },
+ {
+ "id" : 368
+ },
+ {
+ "id" : 381
+ },
+ {
+ "id" : 399
+ },
+ {
+ "id" : 208
+ },
+ {
+ "id" : 426
+ },
+ {
+ "id" : 339
+ },
+ {
+ "id" : 340
+ },
+ {
+ "id" : 386
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAAAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAAAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAAAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAAAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAQAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAQAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAQAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAQAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAUAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAUAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAUAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAYAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAYAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAYAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAcAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAcAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAcAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAgAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAoAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAoAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAoAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAoAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAoAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAsAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAsAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAsAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAsAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAsAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAwAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAwAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA4AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA4AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZA4AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZA8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZA8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZA8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBAAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZBMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZBMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBQAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBQAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBUAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBYAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBcAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBcAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBcAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBgAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBgAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBgAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBkAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBoAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZB0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZB0AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB4AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB4AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB4AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB8AAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCAAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCEAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZCIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZCIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZCIAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZCMAAAA="
+ },
+ {
+ "id" : 403,
+ "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZCMAAAA="
+ },
+ {
+ "id" : 333
+ },
+ {
+ "id" : 333,
+ "damage" : 1
+ },
+ {
+ "id" : 333,
+ "damage" : 2
+ },
+ {
+ "id" : 333,
+ "damage" : 3
+ },
+ {
+ "id" : 333,
+ "damage" : 4
+ },
+ {
+ "id" : 333,
+ "damage" : 5
+ },
+ {
+ "id" : 66
+ },
+ {
+ "id" : 27
+ },
+ {
+ "id" : 28
+ },
+ {
+ "id" : 126
+ },
+ {
+ "id" : 328
+ },
+ {
+ "id" : 342
+ },
+ {
+ "id" : 408
+ },
+ {
+ "id" : 407
+ },
+ {
+ "id" : 331
+ },
+ {
+ "id" : 152
+ },
+ {
+ "id" : 76
+ },
+ {
+ "id" : 69
+ },
+ {
+ "id" : 143
+ },
+ {
+ "id" : -144
+ },
+ {
+ "id" : -141
+ },
+ {
+ "id" : -143
+ },
+ {
+ "id" : -140
+ },
+ {
+ "id" : -142
+ },
+ {
+ "id" : 77
+ },
+ {
+ "id" : 131
+ },
+ {
+ "id" : 72
+ },
+ {
+ "id" : -154
+ },
+ {
+ "id" : -151
+ },
+ {
+ "id" : -153
+ },
+ {
+ "id" : -150
+ },
+ {
+ "id" : -152
+ },
+ {
+ "id" : 70
+ },
+ {
+ "id" : 147
+ },
+ {
+ "id" : 148
+ },
+ {
+ "id" : 251
+ },
+ {
+ "id" : 151
+ },
+ {
+ "id" : 356
+ },
+ {
+ "id" : 404
+ },
+ {
+ "id" : 410
+ },
+ {
+ "id" : 125,
+ "damage" : 3
+ },
+ {
+ "id" : 23,
+ "damage" : 3
+ },
+ {
+ "id" : 33,
+ "damage" : 1
+ },
+ {
+ "id" : 29,
+ "damage" : 1
+ },
+ {
+ "id" : 46
+ },
+ {
+ "id" : 421
+ },
+ {
+ "id" : -204
+ },
+ {
+ "id" : 446
+ },
+ {
+ "id" : 446,
+ "damage" : 8
+ },
+ {
+ "id" : 446,
+ "damage" : 7
+ },
+ {
+ "id" : 446,
+ "damage" : 15
+ },
+ {
+ "id" : 446,
+ "damage" : 12
+ },
+ {
+ "id" : 446,
+ "damage" : 14
+ },
+ {
+ "id" : 446,
+ "damage" : 1
+ },
+ {
+ "id" : 446,
+ "damage" : 4
+ },
+ {
+ "id" : 446,
+ "damage" : 5
+ },
+ {
+ "id" : 446,
+ "damage" : 13
+ },
+ {
+ "id" : 446,
+ "damage" : 9
+ },
+ {
+ "id" : 446,
+ "damage" : 3
+ },
+ {
+ "id" : 446,
+ "damage" : 11
+ },
+ {
+ "id" : 446,
+ "damage" : 10
+ },
+ {
+ "id" : 446,
+ "damage" : 2
+ },
+ {
+ "id" : 446,
+ "damage" : 6
+ },
+ {
+ "id" : 446,
+ "damage" : 15,
+ "nbt_b64" : "CgAAAwQAVHlwZQEAAAAA"
+ },
+ {
+ "id" : 434
+ },
+ {
+ "id" : 434,
+ "damage" : 1
+ },
+ {
+ "id" : 434,
+ "damage" : 2
+ },
+ {
+ "id" : 434,
+ "damage" : 3
+ },
+ {
+ "id" : 434,
+ "damage" : 4
+ },
+ {
+ "id" : 434,
+ "damage" : 5
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMAAAAAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 401,
+ "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA"
+ },
+ {
+ "id" : 402,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IhHR3/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 8,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3JST0f/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 7,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KXnZ3/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 15,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Lw8PD/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 12,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Laszr/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 14,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IdgPn/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 1,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3ImLrD/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 4,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KqRDz/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 5,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3K4Mon/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 13,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3K9Tsf/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 9,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Kqi/P/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 3,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IyVIP/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 11,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3I92P7/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 10,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Ifx4D/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 2,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IWfF7/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ },
+ {
+ "id" : 402,
+ "damage" : 6,
+ "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KcnBb/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA="
+ }
+ ]
+} \ No newline at end of file
diff --git a/serverlist-server/src/main/resources/tables/entity_identifiers.dat b/serverlist-server/src/main/resources/tables/entity_identifiers.dat
index c4f1524..c9477ba 100644
--- a/serverlist-server/src/main/resources/tables/entity_identifiers.dat
+++ b/serverlist-server/src/main/resources/tables/entity_identifiers.dat
Binary files differ
diff --git a/serverlist-server/src/main/resources/tables/runtime_block_states.dat b/serverlist-server/src/main/resources/tables/runtime_block_states.dat
index 0c79ab2..feeeda6 100644
--- a/serverlist-server/src/main/resources/tables/runtime_block_states.dat
+++ b/serverlist-server/src/main/resources/tables/runtime_block_states.dat
Binary files differ