mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
[1.19] Added Entity, Block, Material and Item palettes, Enabled Entity and Inventory handling + Fixed few bugs.
[1.19] Added Entity, Block, Material and Item palettes, Enabled Entity and Inventory handling + Fixed few bugs.
This commit is contained in:
commit
19059414e8
20 changed files with 3759 additions and 810 deletions
|
|
@ -335,7 +335,7 @@ namespace MinecraftClient.Inventory.ItemPalettes
|
|||
mappings[319] = ItemType.AcaciaStairs;
|
||||
mappings[320] = ItemType.DarkOakStairs;
|
||||
mappings[321] = ItemType.SlimeBlock;
|
||||
mappings[322] = ItemType.GrassPath;
|
||||
mappings[322] = ItemType.DirtPath;
|
||||
mappings[323] = ItemType.Sunflower;
|
||||
mappings[324] = ItemType.Lilac;
|
||||
mappings[325] = ItemType.RoseBush;
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ namespace MinecraftClient.Inventory.ItemPalettes
|
|||
mappings[369] = ItemType.AcaciaStairs;
|
||||
mappings[370] = ItemType.DarkOakStairs;
|
||||
mappings[371] = ItemType.SlimeBlock;
|
||||
mappings[372] = ItemType.GrassPath;
|
||||
mappings[372] = ItemType.DirtPath;
|
||||
mappings[373] = ItemType.Sunflower;
|
||||
mappings[374] = ItemType.Lilac;
|
||||
mappings[375] = ItemType.RoseBush;
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ namespace MinecraftClient.Inventory.ItemPalettes
|
|||
mappings[369] = ItemType.AcaciaStairs;
|
||||
mappings[370] = ItemType.DarkOakStairs;
|
||||
mappings[371] = ItemType.SlimeBlock;
|
||||
mappings[372] = ItemType.GrassPath;
|
||||
mappings[372] = ItemType.DirtPath;
|
||||
mappings[373] = ItemType.Sunflower;
|
||||
mappings[374] = ItemType.Lilac;
|
||||
mappings[375] = ItemType.RoseBush;
|
||||
|
|
|
|||
|
|
@ -402,7 +402,7 @@ namespace MinecraftClient.Inventory.ItemPalettes
|
|||
mappings[390] = ItemType.PackedIce;
|
||||
mappings[391] = ItemType.AcaciaStairs;
|
||||
mappings[392] = ItemType.DarkOakStairs;
|
||||
mappings[393] = ItemType.GrassPath;
|
||||
mappings[393] = ItemType.DirtPath;
|
||||
mappings[394] = ItemType.Sunflower;
|
||||
mappings[395] = ItemType.Lilac;
|
||||
mappings[396] = ItemType.RoseBush;
|
||||
|
|
|
|||
|
|
@ -402,7 +402,7 @@ namespace MinecraftClient.Inventory.ItemPalettes
|
|||
mappings[390] = ItemType.PackedIce;
|
||||
mappings[391] = ItemType.AcaciaStairs;
|
||||
mappings[392] = ItemType.DarkOakStairs;
|
||||
mappings[393] = ItemType.GrassPath;
|
||||
mappings[393] = ItemType.DirtPath;
|
||||
mappings[394] = ItemType.Sunflower;
|
||||
mappings[395] = ItemType.Lilac;
|
||||
mappings[396] = ItemType.RoseBush;
|
||||
|
|
|
|||
1171
MinecraftClient/Inventory/ItemPalettes/ItemPalette119.cs
Normal file
1171
MinecraftClient/Inventory/ItemPalettes/ItemPalette119.cs
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,10 @@
|
|||
namespace MinecraftClient.Inventory
|
||||
{
|
||||
/// <summary>
|
||||
/// For MC version 1.16.2.
|
||||
/// Generated using ItemPaletteGenerator.
|
||||
/// Generated using the --generator flag on the client
|
||||
/// Typical steps to handle new item IDs for newer Minecraft versions:
|
||||
/// 1. Generate registries.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators)
|
||||
/// 2. Generate temporary ItemTypeXXX.cs and ItemPaletteXXX.cs using ItemPaletteGenerator.cs
|
||||
/// 1. Generate registries.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators) or download it from: https://github.com/PixiGeko/Minecraft-generated-data
|
||||
/// 2. Generate temporary ItemTypeXXX.cs and ItemPaletteXXX.cs using the --generator flag on the client
|
||||
/// 3. Perform a diff with existing versions, add missing entries in ItemType.cs and ItemTypeExtensions.cs
|
||||
/// 4. If existing entity IDs were not randomized by Mojang, simply add missing entries to the latest existing ItemPaletteXXX.cs
|
||||
/// 5. If existing entity IDs were randomized, add a new palette as ItemPaletteXXX.cs into the codebase
|
||||
|
|
@ -17,6 +16,7 @@ namespace MinecraftClient.Inventory
|
|||
|
||||
AcaciaBoat,
|
||||
AcaciaButton,
|
||||
AcaciaChestBoat,
|
||||
AcaciaDoor,
|
||||
AcaciaFence,
|
||||
AcaciaFenceGate,
|
||||
|
|
@ -32,6 +32,7 @@ namespace MinecraftClient.Inventory
|
|||
AcaciaWood,
|
||||
ActivatorRail,
|
||||
Air,
|
||||
AllaySpawnEgg,
|
||||
Allium,
|
||||
AmethystBlock,
|
||||
AmethystCluster,
|
||||
|
|
@ -69,6 +70,7 @@ namespace MinecraftClient.Inventory
|
|||
BigDripleaf,
|
||||
BirchBoat,
|
||||
BirchButton,
|
||||
BirchChestBoat,
|
||||
BirchDoor,
|
||||
BirchFence,
|
||||
BirchFenceGate,
|
||||
|
|
@ -279,6 +281,7 @@ namespace MinecraftClient.Inventory
|
|||
Dandelion,
|
||||
DarkOakBoat,
|
||||
DarkOakButton,
|
||||
DarkOakChestBoat,
|
||||
DarkOakDoor,
|
||||
DarkOakFence,
|
||||
DarkOakFenceGate,
|
||||
|
|
@ -349,6 +352,8 @@ namespace MinecraftClient.Inventory
|
|||
DioriteStairs,
|
||||
DioriteWall,
|
||||
Dirt,
|
||||
DirtPath,
|
||||
DiscFragment5,
|
||||
Dispenser,
|
||||
DolphinSpawnEgg,
|
||||
DonkeySpawnEgg,
|
||||
|
|
@ -360,6 +365,7 @@ namespace MinecraftClient.Inventory
|
|||
DripstoneBlock,
|
||||
Dropper,
|
||||
DrownedSpawnEgg,
|
||||
EchoShard,
|
||||
Egg,
|
||||
ElderGuardianSpawnEgg,
|
||||
Elytra,
|
||||
|
|
@ -408,6 +414,8 @@ namespace MinecraftClient.Inventory
|
|||
FloweringAzalea,
|
||||
FloweringAzaleaLeaves,
|
||||
FoxSpawnEgg,
|
||||
FrogSpawnEgg,
|
||||
Frogspawn,
|
||||
Furnace,
|
||||
FurnaceMinecart,
|
||||
GhastSpawnEgg,
|
||||
|
|
@ -425,6 +433,7 @@ namespace MinecraftClient.Inventory
|
|||
GlowSquidSpawnEgg,
|
||||
Glowstone,
|
||||
GlowstoneDust,
|
||||
GoatHorn,
|
||||
GoatSpawnEgg,
|
||||
GoldBlock,
|
||||
GoldIngot,
|
||||
|
|
@ -448,7 +457,6 @@ namespace MinecraftClient.Inventory
|
|||
GraniteWall,
|
||||
Grass,
|
||||
GrassBlock,
|
||||
GrassPath,
|
||||
Gravel,
|
||||
GrayBanner,
|
||||
GrayBed,
|
||||
|
|
@ -527,6 +535,7 @@ namespace MinecraftClient.Inventory
|
|||
Jukebox,
|
||||
JungleBoat,
|
||||
JungleButton,
|
||||
JungleChestBoat,
|
||||
JungleDoor,
|
||||
JungleFence,
|
||||
JungleFenceGate,
|
||||
|
|
@ -624,6 +633,23 @@ namespace MinecraftClient.Inventory
|
|||
MagmaBlock,
|
||||
MagmaCream,
|
||||
MagmaCubeSpawnEgg,
|
||||
MangroveBoat,
|
||||
MangroveButton,
|
||||
MangroveChestBoat,
|
||||
MangroveDoor,
|
||||
MangroveFence,
|
||||
MangroveFenceGate,
|
||||
MangroveLeaves,
|
||||
MangroveLog,
|
||||
MangrovePlanks,
|
||||
MangrovePressurePlate,
|
||||
MangrovePropagule,
|
||||
MangroveRoots,
|
||||
MangroveSign,
|
||||
MangroveSlab,
|
||||
MangroveStairs,
|
||||
MangroveTrapdoor,
|
||||
MangroveWood,
|
||||
Map,
|
||||
MediumAmethystBud,
|
||||
Melon,
|
||||
|
|
@ -643,11 +669,18 @@ namespace MinecraftClient.Inventory
|
|||
MossyStoneBrickStairs,
|
||||
MossyStoneBrickWall,
|
||||
MossyStoneBricks,
|
||||
Mud,
|
||||
MudBrickSlab,
|
||||
MudBrickStairs,
|
||||
MudBrickWall,
|
||||
MudBricks,
|
||||
MuddyMangroveRoots,
|
||||
MuleSpawnEgg,
|
||||
MushroomStem,
|
||||
MushroomStew,
|
||||
MusicDisc11,
|
||||
MusicDisc13,
|
||||
MusicDisc5,
|
||||
MusicDiscBlocks,
|
||||
MusicDiscCat,
|
||||
MusicDiscChirp,
|
||||
|
|
@ -692,6 +725,7 @@ namespace MinecraftClient.Inventory
|
|||
NoteBlock,
|
||||
OakBoat,
|
||||
OakButton,
|
||||
OakChestBoat,
|
||||
OakDoor,
|
||||
OakFence,
|
||||
OakFenceGate,
|
||||
|
|
@ -708,6 +742,7 @@ namespace MinecraftClient.Inventory
|
|||
Observer,
|
||||
Obsidian,
|
||||
OcelotSpawnEgg,
|
||||
OchreFroglight,
|
||||
OrangeBanner,
|
||||
OrangeBed,
|
||||
OrangeCandle,
|
||||
|
|
@ -728,10 +763,12 @@ namespace MinecraftClient.Inventory
|
|||
OxidizedCutCopperSlab,
|
||||
OxidizedCutCopperStairs,
|
||||
PackedIce,
|
||||
PackedMud,
|
||||
Painting,
|
||||
PandaSpawnEgg,
|
||||
Paper,
|
||||
ParrotSpawnEgg,
|
||||
PearlescentFroglight,
|
||||
Peony,
|
||||
PetrifiedOakSlab,
|
||||
PhantomMembrane,
|
||||
|
|
@ -843,6 +880,7 @@ namespace MinecraftClient.Inventory
|
|||
RawGoldBlock,
|
||||
RawIron,
|
||||
RawIronBlock,
|
||||
RecoveryCompass,
|
||||
RedBanner,
|
||||
RedBed,
|
||||
RedCandle,
|
||||
|
|
@ -873,6 +911,7 @@ namespace MinecraftClient.Inventory
|
|||
RedstoneLamp,
|
||||
RedstoneOre,
|
||||
RedstoneTorch,
|
||||
ReinforcedDeepslate,
|
||||
Repeater,
|
||||
RepeatingCommandBlock,
|
||||
RespawnAnchor,
|
||||
|
|
@ -889,7 +928,11 @@ namespace MinecraftClient.Inventory
|
|||
SandstoneStairs,
|
||||
SandstoneWall,
|
||||
Scaffolding,
|
||||
Sculk,
|
||||
SculkCatalyst,
|
||||
SculkSensor,
|
||||
SculkShrieker,
|
||||
SculkVein,
|
||||
Scute,
|
||||
SeaLantern,
|
||||
SeaPickle,
|
||||
|
|
@ -942,6 +985,7 @@ namespace MinecraftClient.Inventory
|
|||
SporeBlossom,
|
||||
SpruceBoat,
|
||||
SpruceButton,
|
||||
SpruceChestBoat,
|
||||
SpruceDoor,
|
||||
SpruceFence,
|
||||
SpruceFenceGate,
|
||||
|
|
@ -987,6 +1031,8 @@ namespace MinecraftClient.Inventory
|
|||
StrippedDarkOakWood,
|
||||
StrippedJungleLog,
|
||||
StrippedJungleWood,
|
||||
StrippedMangroveLog,
|
||||
StrippedMangroveWood,
|
||||
StrippedOakLog,
|
||||
StrippedOakWood,
|
||||
StrippedSpruceLog,
|
||||
|
|
@ -1000,6 +1046,8 @@ namespace MinecraftClient.Inventory
|
|||
Sunflower,
|
||||
SuspiciousStew,
|
||||
SweetBerries,
|
||||
TadpoleBucket,
|
||||
TadpoleSpawnEgg,
|
||||
TallGrass,
|
||||
Target,
|
||||
Terracotta,
|
||||
|
|
@ -1024,11 +1072,13 @@ namespace MinecraftClient.Inventory
|
|||
TurtleHelmet,
|
||||
TurtleSpawnEgg,
|
||||
TwistingVines,
|
||||
VerdantFroglight,
|
||||
VexSpawnEgg,
|
||||
VillagerSpawnEgg,
|
||||
VindicatorSpawnEgg,
|
||||
Vine,
|
||||
WanderingTraderSpawnEgg,
|
||||
WardenSpawnEgg,
|
||||
WarpedButton,
|
||||
WarpedDoor,
|
||||
WarpedFence,
|
||||
|
|
|
|||
|
|
@ -760,7 +760,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
|
|||
materials[8158] = Material.EndStoneBricks;
|
||||
for (int i = 8159; i <= 8162; i++)
|
||||
materials[i] = Material.Beetroots;
|
||||
materials[8163] = Material.GrassPath;
|
||||
materials[8163] = Material.DirtPath;
|
||||
materials[8164] = Material.EndGateway;
|
||||
for (int i = 8165; i <= 8176; i++)
|
||||
materials[i] = Material.RepeatingCommandBlock;
|
||||
|
|
|
|||
|
|
@ -792,7 +792,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
|
|||
materials[8682] = Material.EndStoneBricks;
|
||||
for (int i = 8683; i <= 8686; i++)
|
||||
materials[i] = Material.Beetroots;
|
||||
materials[8687] = Material.GrassPath;
|
||||
materials[8687] = Material.DirtPath;
|
||||
materials[8688] = Material.EndGateway;
|
||||
for (int i = 8689; i <= 8700; i++)
|
||||
materials[i] = Material.RepeatingCommandBlock;
|
||||
|
|
|
|||
|
|
@ -792,7 +792,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
|
|||
materials[8682] = Material.EndStoneBricks;
|
||||
for (int i = 8683; i <= 8686; i++)
|
||||
materials[i] = Material.Beetroots;
|
||||
materials[8687] = Material.GrassPath;
|
||||
materials[8687] = Material.DirtPath;
|
||||
materials[8688] = Material.EndGateway;
|
||||
for (int i = 8689; i <= 8700; i++)
|
||||
materials[i] = Material.RepeatingCommandBlock;
|
||||
|
|
|
|||
|
|
@ -800,7 +800,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
|
|||
materials[9222] = Material.EndStoneBricks;
|
||||
for (int i = 9223; i <= 9226; i++)
|
||||
materials[i] = Material.Beetroots;
|
||||
materials[9227] = Material.GrassPath;
|
||||
materials[9227] = Material.DirtPath;
|
||||
materials[9228] = Material.EndGateway;
|
||||
for (int i = 9229; i <= 9240; i++)
|
||||
materials[i] = Material.RepeatingCommandBlock;
|
||||
|
|
|
|||
|
|
@ -820,7 +820,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
|
|||
materials[9468] = Material.EndStoneBricks;
|
||||
for (int i = 9469; i <= 9472; i++)
|
||||
materials[i] = Material.Beetroots;
|
||||
materials[9473] = Material.GrassPath;
|
||||
materials[9473] = Material.DirtPath;
|
||||
materials[9474] = Material.EndGateway;
|
||||
for (int i = 9475; i <= 9486; i++)
|
||||
materials[i] = Material.RepeatingCommandBlock;
|
||||
|
|
|
|||
1530
MinecraftClient/Mapping/BlockPalettes/Palette119.cs
Normal file
1530
MinecraftClient/Mapping/BlockPalettes/Palette119.cs
Normal file
File diff suppressed because it is too large
Load diff
137
MinecraftClient/Mapping/EntityPalettes/EntityPalette119.cs
Normal file
137
MinecraftClient/Mapping/EntityPalettes/EntityPalette119.cs
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityPalettes
|
||||
{
|
||||
public class EntityPalette119 : EntityPalette
|
||||
{
|
||||
private static Dictionary<int, EntityType> mappings = new Dictionary<int, EntityType>();
|
||||
|
||||
static EntityPalette119()
|
||||
{
|
||||
mappings[0] = EntityType.Allay;
|
||||
mappings[1] = EntityType.AreaEffectCloud;
|
||||
mappings[2] = EntityType.ArmorStand;
|
||||
mappings[3] = EntityType.Arrow;
|
||||
mappings[4] = EntityType.Axolotl;
|
||||
mappings[5] = EntityType.Bat;
|
||||
mappings[6] = EntityType.Bee;
|
||||
mappings[7] = EntityType.Blaze;
|
||||
mappings[8] = EntityType.Boat;
|
||||
mappings[10] = EntityType.Cat;
|
||||
mappings[11] = EntityType.CaveSpider;
|
||||
mappings[9] = EntityType.ChestBoat;
|
||||
mappings[54] = EntityType.ChestMinecart;
|
||||
mappings[12] = EntityType.Chicken;
|
||||
mappings[13] = EntityType.Cod;
|
||||
mappings[55] = EntityType.CommandBlockMinecart;
|
||||
mappings[14] = EntityType.Cow;
|
||||
mappings[15] = EntityType.Creeper;
|
||||
mappings[16] = EntityType.Dolphin;
|
||||
mappings[17] = EntityType.Donkey;
|
||||
mappings[18] = EntityType.DragonFireball;
|
||||
mappings[19] = EntityType.Drowned;
|
||||
mappings[93] = EntityType.Egg;
|
||||
mappings[20] = EntityType.ElderGuardian;
|
||||
mappings[21] = EntityType.EndCrystal;
|
||||
mappings[22] = EntityType.EnderDragon;
|
||||
mappings[94] = EntityType.EnderPearl;
|
||||
mappings[23] = EntityType.Enderman;
|
||||
mappings[24] = EntityType.Endermite;
|
||||
mappings[25] = EntityType.Evoker;
|
||||
mappings[26] = EntityType.EvokerFangs;
|
||||
mappings[95] = EntityType.ExperienceBottle;
|
||||
mappings[27] = EntityType.ExperienceOrb;
|
||||
mappings[28] = EntityType.EyeOfEnder;
|
||||
mappings[29] = EntityType.FallingBlock;
|
||||
mappings[46] = EntityType.Fireball;
|
||||
mappings[30] = EntityType.FireworkRocket;
|
||||
mappings[117] = EntityType.FishingBobber;
|
||||
mappings[31] = EntityType.Fox;
|
||||
mappings[32] = EntityType.Frog;
|
||||
mappings[56] = EntityType.FurnaceMinecart;
|
||||
mappings[33] = EntityType.Ghast;
|
||||
mappings[34] = EntityType.Giant;
|
||||
mappings[35] = EntityType.GlowItemFrame;
|
||||
mappings[36] = EntityType.GlowSquid;
|
||||
mappings[37] = EntityType.Goat;
|
||||
mappings[38] = EntityType.Guardian;
|
||||
mappings[39] = EntityType.Hoglin;
|
||||
mappings[57] = EntityType.HopperMinecart;
|
||||
mappings[40] = EntityType.Horse;
|
||||
mappings[41] = EntityType.Husk;
|
||||
mappings[42] = EntityType.Illusioner;
|
||||
mappings[43] = EntityType.IronGolem;
|
||||
mappings[44] = EntityType.Item;
|
||||
mappings[45] = EntityType.ItemFrame;
|
||||
mappings[47] = EntityType.LeashKnot;
|
||||
mappings[48] = EntityType.LightningBolt;
|
||||
mappings[49] = EntityType.Llama;
|
||||
mappings[50] = EntityType.LlamaSpit;
|
||||
mappings[51] = EntityType.MagmaCube;
|
||||
mappings[52] = EntityType.Marker;
|
||||
mappings[53] = EntityType.Minecart;
|
||||
mappings[61] = EntityType.Mooshroom;
|
||||
mappings[60] = EntityType.Mule;
|
||||
mappings[62] = EntityType.Ocelot;
|
||||
mappings[63] = EntityType.Painting;
|
||||
mappings[64] = EntityType.Panda;
|
||||
mappings[65] = EntityType.Parrot;
|
||||
mappings[66] = EntityType.Phantom;
|
||||
mappings[67] = EntityType.Pig;
|
||||
mappings[68] = EntityType.Piglin;
|
||||
mappings[69] = EntityType.PiglinBrute;
|
||||
mappings[70] = EntityType.Pillager;
|
||||
mappings[116] = EntityType.Player;
|
||||
mappings[71] = EntityType.PolarBear;
|
||||
mappings[96] = EntityType.Potion;
|
||||
mappings[73] = EntityType.Pufferfish;
|
||||
mappings[74] = EntityType.Rabbit;
|
||||
mappings[75] = EntityType.Ravager;
|
||||
mappings[76] = EntityType.Salmon;
|
||||
mappings[77] = EntityType.Sheep;
|
||||
mappings[78] = EntityType.Shulker;
|
||||
mappings[79] = EntityType.ShulkerBullet;
|
||||
mappings[80] = EntityType.Silverfish;
|
||||
mappings[81] = EntityType.Skeleton;
|
||||
mappings[82] = EntityType.SkeletonHorse;
|
||||
mappings[83] = EntityType.Slime;
|
||||
mappings[84] = EntityType.SmallFireball;
|
||||
mappings[85] = EntityType.SnowGolem;
|
||||
mappings[86] = EntityType.Snowball;
|
||||
mappings[58] = EntityType.SpawnerMinecart;
|
||||
mappings[87] = EntityType.SpectralArrow;
|
||||
mappings[88] = EntityType.Spider;
|
||||
mappings[89] = EntityType.Squid;
|
||||
mappings[90] = EntityType.Stray;
|
||||
mappings[91] = EntityType.Strider;
|
||||
mappings[92] = EntityType.Tadpole;
|
||||
mappings[72] = EntityType.Tnt;
|
||||
mappings[59] = EntityType.TntMinecart;
|
||||
mappings[98] = EntityType.TraderLlama;
|
||||
mappings[97] = EntityType.Trident;
|
||||
mappings[99] = EntityType.TropicalFish;
|
||||
mappings[100] = EntityType.Turtle;
|
||||
mappings[101] = EntityType.Vex;
|
||||
mappings[102] = EntityType.Villager;
|
||||
mappings[103] = EntityType.Vindicator;
|
||||
mappings[104] = EntityType.WanderingTrader;
|
||||
mappings[105] = EntityType.Warden;
|
||||
mappings[106] = EntityType.Witch;
|
||||
mappings[107] = EntityType.Wither;
|
||||
mappings[108] = EntityType.WitherSkeleton;
|
||||
mappings[109] = EntityType.WitherSkull;
|
||||
mappings[110] = EntityType.Wolf;
|
||||
mappings[111] = EntityType.Zoglin;
|
||||
mappings[112] = EntityType.Zombie;
|
||||
mappings[113] = EntityType.ZombieHorse;
|
||||
mappings[114] = EntityType.ZombieVillager;
|
||||
mappings[115] = EntityType.ZombifiedPiglin;
|
||||
}
|
||||
|
||||
protected override Dictionary<int, EntityType> GetDict()
|
||||
{
|
||||
return mappings;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,16 +4,17 @@ namespace MinecraftClient.Mapping
|
|||
/// Represents Minecraft Entity Types
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Generated from registries.json using EntityPaletteGenerator.cs.
|
||||
/// Generated from registries.json using the --generator flag on the client
|
||||
/// Typical steps to handle new entity IDs for newer Minecraft versions:
|
||||
/// 1. Generate registries.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators)
|
||||
/// 2. Generate temporary EntityTypeXXX.cs and EntityPaletteXXX.cs using EntityPaletteGenerator.cs
|
||||
/// 1. Generate registries.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators) or download it from: https://github.com/PixiGeko/Minecraft-generated-data
|
||||
/// 2. Generate temporary EntityTypeXXX.cs and EntityPaletteXXX.cs using the --generator flag on the client
|
||||
/// 3. Perform a diff with existing versions, add missing entries in EntityType.cs and EntityTypeExtensions.cs
|
||||
/// 4. If existing entity IDs were not randomized by Mojang, simply add missing entries to the latest existing EntityPaletteXXX.cs
|
||||
/// 5. If existing entity IDs were randomized, add a new palette as EntityPaletteXXX.cs into the codebase (worst case)
|
||||
/// </remarks>
|
||||
public enum EntityType
|
||||
{
|
||||
Allay,
|
||||
AreaEffectCloud,
|
||||
ArmorStand,
|
||||
Arrow,
|
||||
|
|
@ -24,6 +25,7 @@ namespace MinecraftClient.Mapping
|
|||
Boat,
|
||||
Cat,
|
||||
CaveSpider,
|
||||
ChestBoat,
|
||||
ChestMinecart,
|
||||
Chicken,
|
||||
Cod,
|
||||
|
|
@ -38,9 +40,9 @@ namespace MinecraftClient.Mapping
|
|||
ElderGuardian,
|
||||
EndCrystal,
|
||||
EnderDragon,
|
||||
EnderPearl,
|
||||
Enderman,
|
||||
Endermite,
|
||||
EnderPearl,
|
||||
Evoker,
|
||||
EvokerFangs,
|
||||
ExperienceBottle,
|
||||
|
|
@ -51,6 +53,7 @@ namespace MinecraftClient.Mapping
|
|||
FireworkRocket,
|
||||
FishingBobber,
|
||||
Fox,
|
||||
Frog,
|
||||
FurnaceMinecart,
|
||||
Ghast,
|
||||
Giant,
|
||||
|
|
@ -99,14 +102,15 @@ namespace MinecraftClient.Mapping
|
|||
SkeletonHorse,
|
||||
Slime,
|
||||
SmallFireball,
|
||||
Snowball,
|
||||
SnowGolem,
|
||||
Snowball,
|
||||
SpawnerMinecart,
|
||||
SpectralArrow,
|
||||
Spider,
|
||||
Squid,
|
||||
Stray,
|
||||
Strider,
|
||||
Tadpole,
|
||||
Tnt,
|
||||
TntMinecart,
|
||||
TraderLlama,
|
||||
|
|
@ -117,6 +121,7 @@ namespace MinecraftClient.Mapping
|
|||
Villager,
|
||||
Vindicator,
|
||||
WanderingTrader,
|
||||
Warden,
|
||||
Witch,
|
||||
Wither,
|
||||
WitherSkeleton,
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
/// Represents Minecraft Materials
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Generated from blocks.json using BlockPaletteGenerator.cs.
|
||||
/// Generated from blocks.json using the --generator flag on the client
|
||||
/// Typical steps to handle new blocks for newer Minecraft versions:
|
||||
/// 1. Generate blocks.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators)
|
||||
/// 2. Generate temporary MaterialXXX.cs and PaletteXXX.cs using BlockPaletteGenerator.cs
|
||||
/// 1. Generate blocks.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators) or download it from: https://github.com/PixiGeko/Minecraft-generated-data
|
||||
/// 2. Generate temporary MaterialXXX.cs and PaletteXXX.cs using the --generator flag on the client
|
||||
/// 3. Perform a diff with existing versions, add missing entries in Material.cs and MaterialExtensions.cs
|
||||
/// 4. If existing state IDs were not randomized by Mojang, simply add missing state entries to Palette113.cs
|
||||
/// 5. If existing state IDs were randomized, add a new palette as PaletteXXX.cs into the codebase (worst case)
|
||||
|
|
@ -52,8 +52,8 @@
|
|||
Basalt,
|
||||
Beacon,
|
||||
Bedrock,
|
||||
Beehive,
|
||||
BeeNest,
|
||||
Beehive,
|
||||
Beetroots,
|
||||
Bell,
|
||||
BigDripleaf,
|
||||
|
|
@ -84,13 +84,13 @@
|
|||
BlackShulkerBox,
|
||||
BlackStainedGlass,
|
||||
BlackStainedGlassPane,
|
||||
BlackTerracotta,
|
||||
BlackWallBanner,
|
||||
BlackWool,
|
||||
Blackstone,
|
||||
BlackstoneSlab,
|
||||
BlackstoneStairs,
|
||||
BlackstoneWall,
|
||||
BlackTerracotta,
|
||||
BlackWallBanner,
|
||||
BlackWool,
|
||||
BlastFurnace,
|
||||
BlueBanner,
|
||||
BlueBed,
|
||||
|
|
@ -115,10 +115,10 @@
|
|||
BrainCoralFan,
|
||||
BrainCoralWallFan,
|
||||
BrewingStand,
|
||||
Bricks,
|
||||
BrickSlab,
|
||||
BrickStairs,
|
||||
BrickWall,
|
||||
Bricks,
|
||||
BrownBanner,
|
||||
BrownBed,
|
||||
BrownCandle,
|
||||
|
|
@ -277,10 +277,10 @@
|
|||
DeadTubeCoralFan,
|
||||
DeadTubeCoralWallFan,
|
||||
Deepslate,
|
||||
DeepslateBricks,
|
||||
DeepslateBrickSlab,
|
||||
DeepslateBrickStairs,
|
||||
DeepslateBrickWall,
|
||||
DeepslateBricks,
|
||||
DeepslateCoalOre,
|
||||
DeepslateCopperOre,
|
||||
DeepslateDiamondOre,
|
||||
|
|
@ -289,10 +289,10 @@
|
|||
DeepslateIronOre,
|
||||
DeepslateLapisOre,
|
||||
DeepslateRedstoneOre,
|
||||
DeepslateTiles,
|
||||
DeepslateTileSlab,
|
||||
DeepslateTileStairs,
|
||||
DeepslateTileWall,
|
||||
DeepslateTiles,
|
||||
DetectorRail,
|
||||
DiamondBlock,
|
||||
DiamondOre,
|
||||
|
|
@ -301,6 +301,7 @@
|
|||
DioriteStairs,
|
||||
DioriteWall,
|
||||
Dirt,
|
||||
DirtPath,
|
||||
Dispenser,
|
||||
DragonEgg,
|
||||
DragonHead,
|
||||
|
|
@ -311,16 +312,16 @@
|
|||
EmeraldBlock,
|
||||
EmeraldOre,
|
||||
EnchantingTable,
|
||||
EnderChest,
|
||||
EndGateway,
|
||||
EndPortal,
|
||||
EndPortalFrame,
|
||||
EndRod,
|
||||
EndStone,
|
||||
EndStoneBricks,
|
||||
EndStoneBrickSlab,
|
||||
EndStoneBrickStairs,
|
||||
EndStoneBrickWall,
|
||||
EndStoneBricks,
|
||||
EnderChest,
|
||||
ExposedCopper,
|
||||
ExposedCutCopper,
|
||||
ExposedCutCopperSlab,
|
||||
|
|
@ -333,9 +334,10 @@
|
|||
FireCoralFan,
|
||||
FireCoralWallFan,
|
||||
FletchingTable,
|
||||
FlowerPot,
|
||||
FloweringAzalea,
|
||||
FloweringAzaleaLeaves,
|
||||
FlowerPot,
|
||||
Frogspawn,
|
||||
FrostedIce,
|
||||
Furnace,
|
||||
GildedBlackstone,
|
||||
|
|
@ -351,7 +353,6 @@
|
|||
GraniteWall,
|
||||
Grass,
|
||||
GrassBlock,
|
||||
GrassPath,
|
||||
Gravel,
|
||||
GrayBanner,
|
||||
GrayBed,
|
||||
|
|
@ -464,8 +465,8 @@
|
|||
LightGrayTerracotta,
|
||||
LightGrayWallBanner,
|
||||
LightGrayWool,
|
||||
LightningRod,
|
||||
LightWeightedPressurePlate,
|
||||
LightningRod,
|
||||
Lilac,
|
||||
LilyOfTheValley,
|
||||
LilyPad,
|
||||
|
|
@ -500,6 +501,22 @@
|
|||
MagentaWallBanner,
|
||||
MagentaWool,
|
||||
MagmaBlock,
|
||||
MangroveButton,
|
||||
MangroveDoor,
|
||||
MangroveFence,
|
||||
MangroveFenceGate,
|
||||
MangroveLeaves,
|
||||
MangroveLog,
|
||||
MangrovePlanks,
|
||||
MangrovePressurePlate,
|
||||
MangrovePropagule,
|
||||
MangroveRoots,
|
||||
MangroveSign,
|
||||
MangroveSlab,
|
||||
MangroveStairs,
|
||||
MangroveTrapdoor,
|
||||
MangroveWallSign,
|
||||
MangroveWood,
|
||||
MediumAmethystBud,
|
||||
Melon,
|
||||
MelonStem,
|
||||
|
|
@ -509,26 +526,32 @@
|
|||
MossyCobblestoneSlab,
|
||||
MossyCobblestoneStairs,
|
||||
MossyCobblestoneWall,
|
||||
MossyStoneBricks,
|
||||
MossyStoneBrickSlab,
|
||||
MossyStoneBrickStairs,
|
||||
MossyStoneBrickWall,
|
||||
MossyStoneBricks,
|
||||
MovingPiston,
|
||||
Mud,
|
||||
MudBrickSlab,
|
||||
MudBrickStairs,
|
||||
MudBrickWall,
|
||||
MudBricks,
|
||||
MuddyMangroveRoots,
|
||||
MushroomStem,
|
||||
Mycelium,
|
||||
NetherBrickFence,
|
||||
NetherBricks,
|
||||
NetherBrickSlab,
|
||||
NetherBrickStairs,
|
||||
NetherBrickWall,
|
||||
NetherBricks,
|
||||
NetherGoldOre,
|
||||
NetheriteBlock,
|
||||
NetherPortal,
|
||||
NetherQuartzOre,
|
||||
Netherrack,
|
||||
NetherSprouts,
|
||||
NetherWart,
|
||||
NetherWartBlock,
|
||||
NetheriteBlock,
|
||||
Netherrack,
|
||||
NoteBlock,
|
||||
OakButton,
|
||||
OakDoor,
|
||||
|
|
@ -547,6 +570,7 @@
|
|||
OakWood,
|
||||
Observer,
|
||||
Obsidian,
|
||||
OchreFroglight,
|
||||
OrangeBanner,
|
||||
OrangeBed,
|
||||
OrangeCandle,
|
||||
|
|
@ -568,6 +592,8 @@
|
|||
OxidizedCutCopperSlab,
|
||||
OxidizedCutCopperStairs,
|
||||
PackedIce,
|
||||
PackedMud,
|
||||
PearlescentFroglight,
|
||||
Peony,
|
||||
PetrifiedOakSlab,
|
||||
PinkBanner,
|
||||
|
|
@ -596,10 +622,10 @@
|
|||
PolishedAndesiteStairs,
|
||||
PolishedBasalt,
|
||||
PolishedBlackstone,
|
||||
PolishedBlackstoneBricks,
|
||||
PolishedBlackstoneBrickSlab,
|
||||
PolishedBlackstoneBrickStairs,
|
||||
PolishedBlackstoneBrickWall,
|
||||
PolishedBlackstoneBricks,
|
||||
PolishedBlackstoneButton,
|
||||
PolishedBlackstonePressurePlate,
|
||||
PolishedBlackstoneSlab,
|
||||
|
|
@ -636,6 +662,7 @@
|
|||
PottedFloweringAzaleaBush,
|
||||
PottedJungleSapling,
|
||||
PottedLilyOfTheValley,
|
||||
PottedMangrovePropagule,
|
||||
PottedOakSapling,
|
||||
PottedOrangeTulip,
|
||||
PottedOxeyeDaisy,
|
||||
|
|
@ -652,9 +679,9 @@
|
|||
PowderSnowCauldron,
|
||||
PoweredRail,
|
||||
Prismarine,
|
||||
PrismarineBricks,
|
||||
PrismarineBrickSlab,
|
||||
PrismarineBrickStairs,
|
||||
PrismarineBricks,
|
||||
PrismarineSlab,
|
||||
PrismarineStairs,
|
||||
PrismarineWall,
|
||||
|
|
@ -697,10 +724,10 @@
|
|||
RedGlazedTerracotta,
|
||||
RedMushroom,
|
||||
RedMushroomBlock,
|
||||
RedNetherBricks,
|
||||
RedNetherBrickSlab,
|
||||
RedNetherBrickStairs,
|
||||
RedNetherBrickWall,
|
||||
RedNetherBricks,
|
||||
RedSand,
|
||||
RedSandstone,
|
||||
RedSandstoneSlab,
|
||||
|
|
@ -709,16 +736,17 @@
|
|||
RedShulkerBox,
|
||||
RedStainedGlass,
|
||||
RedStainedGlassPane,
|
||||
RedTerracotta,
|
||||
RedTulip,
|
||||
RedWallBanner,
|
||||
RedWool,
|
||||
RedstoneBlock,
|
||||
RedstoneLamp,
|
||||
RedstoneOre,
|
||||
RedstoneTorch,
|
||||
RedstoneWallTorch,
|
||||
RedstoneWire,
|
||||
RedTerracotta,
|
||||
RedTulip,
|
||||
RedWallBanner,
|
||||
RedWool,
|
||||
ReinforcedDeepslate,
|
||||
Repeater,
|
||||
RepeatingCommandBlock,
|
||||
RespawnAnchor,
|
||||
|
|
@ -730,10 +758,14 @@
|
|||
SandstoneStairs,
|
||||
SandstoneWall,
|
||||
Scaffolding,
|
||||
Sculk,
|
||||
SculkCatalyst,
|
||||
SculkSensor,
|
||||
Seagrass,
|
||||
SculkShrieker,
|
||||
SculkVein,
|
||||
SeaLantern,
|
||||
SeaPickle,
|
||||
Seagrass,
|
||||
Shroomlight,
|
||||
ShulkerBox,
|
||||
SkeletonSkull,
|
||||
|
|
@ -784,15 +816,15 @@
|
|||
SpruceWood,
|
||||
StickyPiston,
|
||||
Stone,
|
||||
StoneBricks,
|
||||
StoneBrickSlab,
|
||||
StoneBrickStairs,
|
||||
StoneBrickWall,
|
||||
StoneBricks,
|
||||
StoneButton,
|
||||
Stonecutter,
|
||||
StonePressurePlate,
|
||||
StoneSlab,
|
||||
StoneStairs,
|
||||
Stonecutter,
|
||||
StrippedAcaciaLog,
|
||||
StrippedAcaciaWood,
|
||||
StrippedBirchLog,
|
||||
|
|
@ -803,6 +835,8 @@
|
|||
StrippedDarkOakWood,
|
||||
StrippedJungleLog,
|
||||
StrippedJungleWood,
|
||||
StrippedMangroveLog,
|
||||
StrippedMangroveWood,
|
||||
StrippedOakLog,
|
||||
StrippedOakWood,
|
||||
StrippedSpruceLog,
|
||||
|
|
@ -832,6 +866,7 @@
|
|||
TurtleEgg,
|
||||
TwistingVines,
|
||||
TwistingVinesPlant,
|
||||
VerdantFroglight,
|
||||
Vine,
|
||||
VoidAir,
|
||||
WallTorch,
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ namespace MinecraftClient.Mapping
|
|||
Material.Farmland,
|
||||
Material.Grass,
|
||||
Material.GrassBlock,
|
||||
Material.GrassPath,
|
||||
Material.DirtPath,
|
||||
Material.Gravel,
|
||||
Material.GrayConcretePowder,
|
||||
Material.GreenConcretePowder,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -403,13 +403,13 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
Double entityX = ReadNextDouble(cache);
|
||||
Double entityY = ReadNextDouble(cache);
|
||||
Double entityZ = ReadNextDouble(cache);
|
||||
byte entityYaw = ReadNextByte(cache);
|
||||
byte entityPitch = ReadNextByte(cache);
|
||||
byte entityYaw = ReadNextByte(cache);
|
||||
|
||||
int metadata = -1;
|
||||
if (living)
|
||||
{
|
||||
if (protocolversion >= Protocol18Handler.MC_1_18_2_Version)
|
||||
if (protocolversion == Protocol18Handler.MC_1_18_2_Version)
|
||||
entityYaw = ReadNextByte(cache);
|
||||
else
|
||||
entityPitch = ReadNextByte(cache);
|
||||
|
|
@ -418,15 +418,17 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
if (protocolversion >= Protocol18Handler.MC_1_19_Version)
|
||||
{
|
||||
metadata = ReadNextVarInt(cache);
|
||||
entityYaw = ReadNextByte(cache);
|
||||
metadata = ReadNextVarInt(cache);
|
||||
}
|
||||
else
|
||||
metadata = ReadNextInt(cache);
|
||||
}
|
||||
|
||||
short velocityX = ReadNextShort(cache);
|
||||
short velocityY = ReadNextShort(cache);
|
||||
short velocityZ = ReadNextShort(cache);
|
||||
|
||||
return new Entity(entityID, entityType, new Location(entityX, entityY, entityZ), entityYaw, entityPitch, metadata);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ using System.Text.RegularExpressions;
|
|||
namespace MinecraftClient.Protocol.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
/// Implementation for Minecraft 1.7.X+ Protocols
|
||||
/// Implementation for Minecraft 1.8.X+ Protocols
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Typical update steps for implementing protocol changes for a new Minecraft version:
|
||||
|
|
@ -62,7 +62,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
private readonly List<string> autocomplete_result = new List<string>();
|
||||
private readonly Dictionary<int, short> window_actions = new Dictionary<int, short>();
|
||||
private bool login_phase = true;
|
||||
private int protocolversion;
|
||||
private int protocolVersion;
|
||||
private int currentDimension;
|
||||
|
||||
Protocol18Forge pForge;
|
||||
|
|
@ -83,7 +83,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
ChatParser.InitTranslations();
|
||||
this.socketWrapper = new SocketWrapper(Client);
|
||||
this.dataTypes = new DataTypes(protocolVersion);
|
||||
this.protocolversion = protocolVersion;
|
||||
this.protocolVersion = protocolVersion;
|
||||
this.handler = handler;
|
||||
this.pForge = new Protocol18Forge(forgeInfo, protocolVersion, dataTypes, this, handler);
|
||||
this.pTerrain = new Protocol18Terrain(protocolVersion, dataTypes, handler);
|
||||
|
|
@ -91,73 +91,81 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
this.log = handler.GetLogger();
|
||||
this.randomGen = RandomNumberGenerator.Create();
|
||||
|
||||
if (handler.GetTerrainEnabled() && protocolversion > MC_1_18_2_Version)
|
||||
if (handler.GetTerrainEnabled() && protocolVersion > MC_1_18_2_Version)
|
||||
{
|
||||
log.Error(Translations.Get("extra.terrainandmovement_disabled"));
|
||||
handler.SetTerrainEnabled(false);
|
||||
}
|
||||
|
||||
if (handler.GetInventoryEnabled() && (protocolversion < MC_1_10_Version || protocolversion > MC_1_18_2_Version))
|
||||
if (handler.GetInventoryEnabled() && (protocolVersion < MC_1_10_Version || protocolVersion > MC_1_19_Version))
|
||||
{
|
||||
log.Error(Translations.Get("extra.inventory_disabled"));
|
||||
handler.SetInventoryEnabled(false);
|
||||
}
|
||||
|
||||
if (handler.GetEntityHandlingEnabled() && (protocolversion < MC_1_10_Version || protocolversion > MC_1_18_2_Version))
|
||||
if (handler.GetEntityHandlingEnabled() && (protocolVersion < MC_1_10_Version || protocolVersion > MC_1_19_Version))
|
||||
{
|
||||
log.Error(Translations.Get("extra.entity_disabled"));
|
||||
handler.SetEntityHandlingEnabled(false);
|
||||
}
|
||||
|
||||
// Block palette
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
if (protocolVersion > MC_1_18_2_Version && handler.GetTerrainEnabled())
|
||||
if (protocolVersion > MC_1_19_Version && handler.GetTerrainEnabled())
|
||||
throw new NotImplementedException(Translations.Get("exception.palette.block"));
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
|
||||
if (protocolVersion == MC_1_19_Version)
|
||||
Block.Palette = new Palette119();
|
||||
else if (protocolVersion >= MC_1_17_Version)
|
||||
Block.Palette = new Palette117();
|
||||
else if (protocolVersion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
Block.Palette = new Palette116();
|
||||
else if (protocolVersion >= MC_1_15_Version)
|
||||
Block.Palette = new Palette115();
|
||||
else if (protocolVersion >= MC_1_14_Version)
|
||||
Block.Palette = new Palette114();
|
||||
else Block.Palette = new Palette113();
|
||||
Block.Palette = new Palette116();
|
||||
else if (protocolVersion >= MC_1_15_Version)
|
||||
Block.Palette = new Palette115();
|
||||
else if (protocolVersion >= MC_1_14_Version)
|
||||
Block.Palette = new Palette114();
|
||||
else Block.Palette = new Palette113();
|
||||
|
||||
}
|
||||
else Block.Palette = new Palette112();
|
||||
|
||||
// Entity palette
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
if (protocolversion > MC_1_18_2_Version && handler.GetEntityHandlingEnabled())
|
||||
if (protocolVersion > MC_1_19_Version && handler.GetEntityHandlingEnabled())
|
||||
throw new NotImplementedException(Translations.Get("exception.palette.entity"));
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
|
||||
if (protocolVersion == MC_1_19_Version)
|
||||
entityPalette = new EntityPalette119();
|
||||
else if (protocolVersion >= MC_1_17_Version)
|
||||
entityPalette = new EntityPalette117();
|
||||
else if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
entityPalette = new EntityPalette1162();
|
||||
else if (protocolversion >= MC_1_16_Version)
|
||||
entityPalette = new EntityPalette1161();
|
||||
else if (protocolversion >= MC_1_15_Version)
|
||||
entityPalette = new EntityPalette115();
|
||||
else if (protocolVersion >= MC_1_14_Version)
|
||||
entityPalette = new EntityPalette114();
|
||||
else entityPalette = new EntityPalette113();
|
||||
else if (protocolVersion >= MC_1_16_2_Version)
|
||||
entityPalette = new EntityPalette1162();
|
||||
else if (protocolVersion >= MC_1_16_Version)
|
||||
entityPalette = new EntityPalette1161();
|
||||
else if (protocolVersion >= MC_1_15_Version)
|
||||
entityPalette = new EntityPalette115();
|
||||
else if (protocolVersion >= MC_1_14_Version)
|
||||
entityPalette = new EntityPalette114();
|
||||
else entityPalette = new EntityPalette113();
|
||||
}
|
||||
else entityPalette = new EntityPalette112();
|
||||
|
||||
// Item palette
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
{
|
||||
if (protocolversion > MC_1_18_2_Version && handler.GetInventoryEnabled())
|
||||
if (protocolVersion > MC_1_19_Version && handler.GetInventoryEnabled())
|
||||
throw new NotImplementedException(Translations.Get("exception.palette.item"));
|
||||
if (protocolversion >= MC_1_18_1_Version)
|
||||
|
||||
if (protocolVersion == MC_1_19_Version)
|
||||
itemPalette = new ItemPalette119();
|
||||
else if (protocolVersion >= MC_1_18_1_Version)
|
||||
itemPalette = new ItemPalette118();
|
||||
else if (protocolversion >= MC_1_17_Version)
|
||||
else if (protocolVersion >= MC_1_17_Version)
|
||||
itemPalette = new ItemPalette117();
|
||||
else if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
else if (protocolVersion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
itemPalette = new ItemPalette1162();
|
||||
else itemPalette = new ItemPalette1161();
|
||||
}
|
||||
|
|
@ -244,7 +252,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
packetData.Enqueue(rawpacket[i]);
|
||||
|
||||
//Handle packet decompression
|
||||
if (protocolversion >= MC_1_8_Version
|
||||
if (protocolVersion >= MC_1_8_Version
|
||||
&& compression_treshold > 0)
|
||||
{
|
||||
int sizeUncompressed = dataTypes.ReadNextVarInt(packetData);
|
||||
|
|
@ -282,7 +290,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
switch (packetID) //Packet IDs are different while logging in
|
||||
{
|
||||
case 0x03:
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
compression_treshold = dataTypes.ReadNextVarInt(packetData);
|
||||
break;
|
||||
case 0x04:
|
||||
|
|
@ -309,12 +317,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
int playerEntityID = dataTypes.ReadNextInt(packetData);
|
||||
handler.OnReceivePlayerEntityID(playerEntityID);
|
||||
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
dataTypes.ReadNextBool(packetData); // Is hardcore - 1.16.2 and above
|
||||
|
||||
handler.OnGamemodeUpdate(Guid.Empty, dataTypes.ReadNextByte(packetData));
|
||||
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
{
|
||||
dataTypes.ReadNextByte(packetData); // Previous Gamemode - 1.16 and above
|
||||
int worldCount = dataTypes.ReadNextVarInt(packetData); // Dimension Count (World Count) - 1.16 and above
|
||||
|
|
@ -331,55 +339,55 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// String identifier: 1.16 and 1.16.1
|
||||
// varInt: [1.9.1 to 1.15.2]
|
||||
// byte: below 1.9.1
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
{
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
dataTypes.ReadNextString(packetData); // Dimension Type: Identifier
|
||||
currentDimensionType = new Dictionary<string, object>();
|
||||
}
|
||||
else if (protocolversion >= MC_1_16_2_Version)
|
||||
else if (protocolVersion >= MC_1_16_2_Version)
|
||||
currentDimensionType = dataTypes.ReadNextNbt(packetData); // Dimension Type: NBT Tag Compound
|
||||
else
|
||||
dataTypes.ReadNextString(packetData);
|
||||
this.currentDimension = 0;
|
||||
}
|
||||
else if (protocolversion >= MC_1_9_1_Version)
|
||||
else if (protocolVersion >= MC_1_9_1_Version)
|
||||
this.currentDimension = dataTypes.ReadNextInt(packetData);
|
||||
else
|
||||
this.currentDimension = (sbyte)dataTypes.ReadNextByte(packetData);
|
||||
|
||||
if (protocolversion < MC_1_14_Version)
|
||||
if (protocolVersion < MC_1_14_Version)
|
||||
dataTypes.ReadNextByte(packetData); // Difficulty - 1.13 and below
|
||||
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
currentDimensionName = dataTypes.ReadNextString(packetData); // Dimension Name (World Name) - 1.16 and above
|
||||
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
World.SetDimension(currentDimensionName, currentDimensionType);
|
||||
|
||||
if (protocolversion >= MC_1_15_Version)
|
||||
if (protocolVersion >= MC_1_15_Version)
|
||||
dataTypes.ReadNextLong(packetData); // Hashed world seed - 1.15 and above
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
dataTypes.ReadNextVarInt(packetData); // Max Players - 1.16.2 and above
|
||||
else
|
||||
dataTypes.ReadNextByte(packetData); // Max Players - 1.16.1 and below
|
||||
if (protocolversion < MC_1_16_Version)
|
||||
if (protocolVersion < MC_1_16_Version)
|
||||
dataTypes.ReadNextString(packetData); // Level Type - 1.15 and below
|
||||
if (protocolversion >= MC_1_14_Version)
|
||||
if (protocolVersion >= MC_1_14_Version)
|
||||
dataTypes.ReadNextVarInt(packetData); // View distance - 1.14 and above
|
||||
if (protocolversion >= MC_1_18_1_Version)
|
||||
if (protocolVersion >= MC_1_18_1_Version)
|
||||
dataTypes.ReadNextVarInt(packetData); // Simulation Distance - 1.18 and above
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
dataTypes.ReadNextBool(packetData); // Reduced debug info - 1.8 and above
|
||||
if (protocolversion >= MC_1_15_Version)
|
||||
if (protocolVersion >= MC_1_15_Version)
|
||||
dataTypes.ReadNextBool(packetData); // Enable respawn screen - 1.15 and above
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
{
|
||||
dataTypes.ReadNextBool(packetData); // Is Debug - 1.16 and above
|
||||
dataTypes.ReadNextBool(packetData); // Is Flat - 1.16 and above
|
||||
}
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
bool hasDeathLocation = dataTypes.ReadNextBool(packetData); // Has death location
|
||||
if (hasDeathLocation)
|
||||
|
|
@ -392,12 +400,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.ChatMessage:
|
||||
int messageType = 0;
|
||||
|
||||
if (protocolversion <= MC_1_18_2_Version) // 1.18 and bellow
|
||||
if (protocolVersion <= MC_1_18_2_Version) // 1.18 and bellow
|
||||
{
|
||||
string message = dataTypes.ReadNextString(packetData);
|
||||
|
||||
Guid senderUUID;
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
{
|
||||
//Hide system messages or xp bar messages?
|
||||
messageType = dataTypes.ReadNextByte(packetData);
|
||||
|
|
@ -405,7 +413,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|| (messageType == 2 && !Settings.DisplayXPBarMessages))
|
||||
break;
|
||||
|
||||
if (protocolversion >= MC_1_16_5_Version)
|
||||
if (protocolVersion >= MC_1_16_5_Version)
|
||||
senderUUID = dataTypes.ReadNextUUID(packetData);
|
||||
else senderUUID = Guid.Empty;
|
||||
}
|
||||
|
|
@ -447,14 +455,14 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.Respawn:
|
||||
string? dimensionNameInRespawn = null;
|
||||
Dictionary<string, object> dimensionTypeInRespawn = null;
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
{
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
dataTypes.ReadNextString(packetData); // Dimension Type: Identifier
|
||||
dimensionTypeInRespawn = new Dictionary<string, object>();
|
||||
}
|
||||
else if (protocolversion >= MC_1_16_2_Version)
|
||||
else if (protocolVersion >= MC_1_16_2_Version)
|
||||
dimensionTypeInRespawn = dataTypes.ReadNextNbt(packetData); // Dimension Type: NBT Tag Compound
|
||||
else
|
||||
dataTypes.ReadNextString(packetData);
|
||||
|
|
@ -465,28 +473,28 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// 1.15 and below
|
||||
this.currentDimension = dataTypes.ReadNextInt(packetData);
|
||||
}
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
dimensionNameInRespawn = dataTypes.ReadNextString(packetData); // Dimension Name (World Name) - 1.16 and above
|
||||
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
World.SetDimension(dimensionNameInRespawn, dimensionTypeInRespawn);
|
||||
|
||||
if (protocolversion < MC_1_14_Version)
|
||||
if (protocolVersion < MC_1_14_Version)
|
||||
dataTypes.ReadNextByte(packetData); // Difficulty - 1.13 and below
|
||||
if (protocolversion >= MC_1_15_Version)
|
||||
if (protocolVersion >= MC_1_15_Version)
|
||||
dataTypes.ReadNextLong(packetData); // Hashed world seed - 1.15 and above
|
||||
dataTypes.ReadNextByte(packetData); // Gamemode
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
dataTypes.ReadNextByte(packetData); // Previous Game mode - 1.16 and above
|
||||
if (protocolversion < MC_1_16_Version)
|
||||
if (protocolVersion < MC_1_16_Version)
|
||||
dataTypes.ReadNextString(packetData); // Level Type - 1.15 and below
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
{
|
||||
dataTypes.ReadNextBool(packetData); // Is Debug - 1.16 and above
|
||||
dataTypes.ReadNextBool(packetData); // Is Flat - 1.16 and above
|
||||
dataTypes.ReadNextBool(packetData); // Copy metadata - 1.16 and above
|
||||
}
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
bool hasDeathLocation = dataTypes.ReadNextBool(packetData); // Has death location
|
||||
if (hasDeathLocation)
|
||||
|
|
@ -509,7 +517,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// entity handling require player pos for distance calculating
|
||||
if (handler.GetTerrainEnabled() || handler.GetEntityHandlingEnabled())
|
||||
{
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
{
|
||||
Location location = handler.GetCurrentLocation();
|
||||
location.X = (locMask & 1 << 0) != 0 ? location.X + x : x;
|
||||
|
|
@ -520,14 +528,14 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
else handler.UpdateLocation(new Location(x, y, z), yaw, pitch);
|
||||
}
|
||||
|
||||
if (protocolversion >= MC_1_9_Version)
|
||||
if (protocolVersion >= MC_1_9_Version)
|
||||
{
|
||||
int teleportID = dataTypes.ReadNextVarInt(packetData);
|
||||
// Teleport confirm packet
|
||||
SendPacket(PacketTypesOut.TeleportConfirm, dataTypes.GetVarInt(teleportID));
|
||||
}
|
||||
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
dataTypes.ReadNextBool(packetData); // Dismount Vehicle - 1.17 and above
|
||||
break;
|
||||
case PacketTypesIn.ChunkData:
|
||||
|
|
@ -535,16 +543,16 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
int chunkX = dataTypes.ReadNextInt(packetData);
|
||||
int chunkZ = dataTypes.ReadNextInt(packetData);
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
{
|
||||
ulong[]? verticalStripBitmask = null;
|
||||
|
||||
if (protocolversion == MC_1_17_Version || protocolversion == MC_1_17_1_Version)
|
||||
if (protocolVersion == MC_1_17_Version || protocolVersion == MC_1_17_1_Version)
|
||||
verticalStripBitmask = dataTypes.ReadNextULongArray(packetData); // Bit Mask Le:ngth and Primary Bit Mask
|
||||
|
||||
dataTypes.ReadNextNbt(packetData); // Heightmaps
|
||||
|
||||
if (protocolversion == MC_1_17_Version || protocolversion == MC_1_17_1_Version)
|
||||
if (protocolVersion == MC_1_17_Version || protocolVersion == MC_1_17_1_Version)
|
||||
{
|
||||
int biomesLength = dataTypes.ReadNextVarInt(packetData); // Biomes length
|
||||
for (int i = 0; i < biomesLength; i++)
|
||||
|
|
@ -566,12 +574,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
else
|
||||
{
|
||||
bool chunksContinuous = dataTypes.ReadNextBool(packetData);
|
||||
if (protocolversion >= MC_1_16_Version && protocolversion <= MC_1_16_1_Version)
|
||||
if (protocolVersion >= MC_1_16_Version && protocolVersion <= MC_1_16_1_Version)
|
||||
dataTypes.ReadNextBool(packetData); // Ignore old data - 1.16 to 1.16.1 only
|
||||
ushort chunkMask = protocolversion >= MC_1_9_Version
|
||||
ushort chunkMask = protocolVersion >= MC_1_9_Version
|
||||
? (ushort)dataTypes.ReadNextVarInt(packetData)
|
||||
: dataTypes.ReadNextUShort(packetData);
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
ushort addBitmap = dataTypes.ReadNextUShort(packetData);
|
||||
int compressedDataSize = dataTypes.ReadNextInt(packetData);
|
||||
|
|
@ -584,15 +592,15 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
}
|
||||
else
|
||||
{
|
||||
if (protocolversion >= MC_1_14_Version)
|
||||
if (protocolVersion >= MC_1_14_Version)
|
||||
dataTypes.ReadNextNbt(packetData); // Heightmaps - 1.14 and above
|
||||
int biomesLength = 0;
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
if (chunksContinuous)
|
||||
biomesLength = dataTypes.ReadNextVarInt(packetData); // Biomes length - 1.16.2 and above
|
||||
if (protocolversion >= MC_1_15_Version && chunksContinuous)
|
||||
if (protocolVersion >= MC_1_15_Version && chunksContinuous)
|
||||
{
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
{
|
||||
for (int i = 0; i < biomesLength; i++)
|
||||
{
|
||||
|
|
@ -615,13 +623,13 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.MapData:
|
||||
int mapid = dataTypes.ReadNextVarInt(packetData);
|
||||
byte scale = dataTypes.ReadNextByte(packetData);
|
||||
bool trackingposition = protocolversion >= MC_1_17_Version ? false : dataTypes.ReadNextBool(packetData);
|
||||
bool trackingposition = protocolVersion >= MC_1_17_Version ? false : dataTypes.ReadNextBool(packetData);
|
||||
bool locked = false;
|
||||
if (protocolversion >= MC_1_14_Version)
|
||||
if (protocolVersion >= MC_1_14_Version)
|
||||
{
|
||||
locked = dataTypes.ReadNextBool(packetData);
|
||||
}
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
{
|
||||
trackingposition = dataTypes.ReadNextBool(packetData);
|
||||
}
|
||||
|
|
@ -629,7 +637,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
handler.OnMapData(mapid, scale, trackingposition, locked, iconcount);
|
||||
break;
|
||||
case PacketTypesIn.TradeList:
|
||||
if ((protocolversion >= MC_1_14_Version) && (handler.GetInventoryEnabled()))
|
||||
if ((protocolVersion >= MC_1_14_Version) && (handler.GetInventoryEnabled()))
|
||||
{
|
||||
// MC 1.14 or greater
|
||||
int windowID = dataTypes.ReadNextVarInt(packetData);
|
||||
|
|
@ -651,7 +659,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
}
|
||||
break;
|
||||
case PacketTypesIn.Title:
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
{
|
||||
int action2 = dataTypes.ReadNextVarInt(packetData);
|
||||
string titletext = String.Empty;
|
||||
|
|
@ -661,7 +669,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
int fadein = -1;
|
||||
int stay = -1;
|
||||
int fadeout = -1;
|
||||
if (protocolversion >= MC_1_10_Version)
|
||||
if (protocolVersion >= MC_1_10_Version)
|
||||
{
|
||||
if (action2 == 0)
|
||||
{
|
||||
|
|
@ -710,7 +718,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.MultiBlockChange:
|
||||
if (handler.GetTerrainEnabled())
|
||||
{
|
||||
if (protocolversion >= MC_1_16_2_Version)
|
||||
if (protocolVersion >= MC_1_16_2_Version)
|
||||
{
|
||||
long chunkSection = dataTypes.ReadNextLong(packetData);
|
||||
int sectionX = (int)(chunkSection >> 42);
|
||||
|
|
@ -738,7 +746,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
int chunkX = dataTypes.ReadNextInt(packetData);
|
||||
int chunkZ = dataTypes.ReadNextInt(packetData);
|
||||
int recordCount = protocolversion < MC_1_8_Version
|
||||
int recordCount = protocolVersion < MC_1_8_Version
|
||||
? (int)dataTypes.ReadNextShort(packetData)
|
||||
: dataTypes.ReadNextVarInt(packetData);
|
||||
|
||||
|
|
@ -748,7 +756,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
ushort blockIdMeta;
|
||||
int blockY;
|
||||
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
blockIdMeta = dataTypes.ReadNextUShort(packetData);
|
||||
blockY = (ushort)dataTypes.ReadNextByte(packetData);
|
||||
|
|
@ -787,7 +795,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.BlockChange:
|
||||
if (handler.GetTerrainEnabled())
|
||||
{
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
int blockX = dataTypes.ReadNextInt(packetData);
|
||||
int blockY = dataTypes.ReadNextByte(packetData);
|
||||
|
|
@ -823,14 +831,14 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
break;
|
||||
case PacketTypesIn.MapChunkBulk:
|
||||
if (protocolversion < MC_1_9_Version && handler.GetTerrainEnabled())
|
||||
if (protocolVersion < MC_1_9_Version && handler.GetTerrainEnabled())
|
||||
{
|
||||
int chunkCount;
|
||||
bool hasSkyLight;
|
||||
Queue<byte> chunkData = packetData;
|
||||
|
||||
//Read global fields
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
chunkCount = dataTypes.ReadNextShort(packetData);
|
||||
int compressedDataSize = dataTypes.ReadNextInt(packetData);
|
||||
|
|
@ -855,7 +863,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
chunkXs[chunkColumnNo] = dataTypes.ReadNextInt(packetData);
|
||||
chunkZs[chunkColumnNo] = dataTypes.ReadNextInt(packetData);
|
||||
chunkMasks[chunkColumnNo] = dataTypes.ReadNextUShort(packetData);
|
||||
addBitmaps[chunkColumnNo] = protocolversion < MC_1_8_Version
|
||||
addBitmaps[chunkColumnNo] = protocolVersion < MC_1_8_Version
|
||||
? dataTypes.ReadNextUShort(packetData)
|
||||
: (ushort)0;
|
||||
}
|
||||
|
|
@ -866,7 +874,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
}
|
||||
break;
|
||||
case PacketTypesIn.UnloadChunk:
|
||||
if (protocolversion >= MC_1_9_Version && handler.GetTerrainEnabled())
|
||||
if (protocolVersion >= MC_1_9_Version && handler.GetTerrainEnabled())
|
||||
{
|
||||
int chunkX = dataTypes.ReadNextInt(packetData);
|
||||
int chunkZ = dataTypes.ReadNextInt(packetData);
|
||||
|
|
@ -881,7 +889,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
}
|
||||
break;
|
||||
case PacketTypesIn.PlayerInfo:
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
{
|
||||
int action = dataTypes.ReadNextVarInt(packetData); // Action Name
|
||||
int numberOfPlayers = dataTypes.ReadNextVarInt(packetData); // Number Of Players
|
||||
|
|
@ -918,7 +926,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// 1.19 Additions
|
||||
long? keyExpiration = null;
|
||||
byte[]? publicKey = null, signature = null;
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
if (dataTypes.ReadNextBool(packetData)) // Has Sig Data (if true, red the following fields)
|
||||
{
|
||||
|
|
@ -968,7 +976,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
}
|
||||
break;
|
||||
case PacketTypesIn.TabComplete:
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
autocomplete_transaction_id = dataTypes.ReadNextVarInt(packetData);
|
||||
dataTypes.ReadNextVarInt(packetData); // Start of text to replace
|
||||
|
|
@ -981,7 +989,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
for (int i = 0; i < autocomplete_count; i++)
|
||||
{
|
||||
autocomplete_result.Add(dataTypes.ReadNextString(packetData));
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
// Skip optional tooltip for each tab-complete result
|
||||
if (dataTypes.ReadNextBool(packetData))
|
||||
|
|
@ -994,7 +1002,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.PluginMessage:
|
||||
String channel = dataTypes.ReadNextString(packetData);
|
||||
// Length is unneeded as the whole remaining packetData is the entire payload of the packet.
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
pForge.ReadNextVarShort(packetData);
|
||||
handler.OnPluginChannelMessage(channel, packetData.ToArray());
|
||||
return pForge.HandlePluginMessage(channel, packetData, ref currentDimension);
|
||||
|
|
@ -1002,13 +1010,13 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
handler.OnConnectionLost(ChatBot.DisconnectReason.InGameKick, ChatParser.ParseText(dataTypes.ReadNextString(packetData)));
|
||||
return false;
|
||||
case PacketTypesIn.SetCompression:
|
||||
if (protocolversion >= MC_1_8_Version && protocolversion < MC_1_9_Version)
|
||||
if (protocolVersion >= MC_1_8_Version && protocolVersion < MC_1_9_Version)
|
||||
compression_treshold = dataTypes.ReadNextVarInt(packetData);
|
||||
break;
|
||||
case PacketTypesIn.OpenWindow:
|
||||
if (handler.GetInventoryEnabled())
|
||||
{
|
||||
if (protocolversion < MC_1_14_Version)
|
||||
if (protocolVersion < MC_1_14_Version)
|
||||
{
|
||||
// MC 1.13 or lower
|
||||
byte windowID = dataTypes.ReadNextByte(packetData);
|
||||
|
|
@ -1045,7 +1053,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
int stateId = -1;
|
||||
int elements = 0;
|
||||
|
||||
if (protocolversion >= MC_1_17_1_Version)
|
||||
if (protocolVersion >= MC_1_17_1_Version)
|
||||
{
|
||||
// State ID and Elements as VarInt - 1.17.1 and above
|
||||
stateId = dataTypes.ReadNextVarInt(packetData);
|
||||
|
|
@ -1065,7 +1073,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
inventorySlots[slotId] = item;
|
||||
}
|
||||
|
||||
if (protocolversion >= MC_1_17_1_Version) // Carried Item - 1.17.1 and above
|
||||
if (protocolVersion >= MC_1_17_1_Version) // Carried Item - 1.17.1 and above
|
||||
dataTypes.ReadNextItemSlot(packetData, itemPalette);
|
||||
|
||||
handler.OnWindowItems(windowId, inventorySlots, stateId);
|
||||
|
|
@ -1076,7 +1084,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
byte windowID = dataTypes.ReadNextByte(packetData);
|
||||
int stateId = -1;
|
||||
if (protocolversion >= MC_1_17_1_Version)
|
||||
if (protocolVersion >= MC_1_17_1_Version)
|
||||
stateId = dataTypes.ReadNextVarInt(packetData); // State ID - 1.17.1 and above
|
||||
short slotID = dataTypes.ReadNextShort(packetData);
|
||||
Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette);
|
||||
|
|
@ -1099,7 +1107,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
string url = dataTypes.ReadNextString(packetData);
|
||||
string hash = dataTypes.ReadNextString(packetData);
|
||||
bool forced = true; // Assume forced for MC 1.16 and below
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
{
|
||||
forced = dataTypes.ReadNextBool(packetData);
|
||||
string forcedMessage = ChatParser.ParseText(dataTypes.ReadNextString(packetData));
|
||||
|
|
@ -1111,7 +1119,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
break;
|
||||
//Send back "accepted" and "successfully loaded" responses for plugins or server config making use of resource pack mandatory
|
||||
byte[] responseHeader = new byte[0];
|
||||
if (protocolversion < MC_1_10_Version) //MC 1.10 does not include resource pack hash in responses
|
||||
if (protocolVersion < MC_1_10_Version) //MC 1.10 does not include resource pack hash in responses
|
||||
responseHeader = dataTypes.ConcatBytes(dataTypes.GetVarInt(hash.Length), Encoding.UTF8.GetBytes(hash));
|
||||
SendPacket(PacketTypesOut.ResourcePackStatus, dataTypes.ConcatBytes(responseHeader, dataTypes.GetVarInt(3))); //Accepted pack
|
||||
SendPacket(PacketTypesOut.ResourcePackStatus, dataTypes.ConcatBytes(responseHeader, dataTypes.GetVarInt(0))); //Successfully loaded
|
||||
|
|
@ -1127,7 +1135,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
if (handler.GetEntityHandlingEnabled())
|
||||
{
|
||||
int entityid = dataTypes.ReadNextVarInt(packetData);
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
{
|
||||
bool hasNext;
|
||||
do
|
||||
|
|
@ -1188,7 +1196,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
bool hasFactorData = false;
|
||||
Dictionary<string, object>? factorCodec = null;
|
||||
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
hasFactorData = dataTypes.ReadNextBool(packetData);
|
||||
factorCodec = dataTypes.ReadNextNbt(packetData);
|
||||
|
|
@ -1202,7 +1210,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
if (handler.GetEntityHandlingEnabled())
|
||||
{
|
||||
int entityCount = 1; // 1.17.0 has only one entity per packet
|
||||
if (protocolversion != MC_1_17_Version)
|
||||
if (protocolVersion != MC_1_17_Version)
|
||||
entityCount = dataTypes.ReadNextVarInt(packetData); // All other versions have a "count" field
|
||||
int[] entityList = new int[entityCount];
|
||||
for (int i = 0; i < entityCount; i++)
|
||||
|
|
@ -1246,7 +1254,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
if (handler.GetEntityHandlingEnabled())
|
||||
{
|
||||
int EntityID = dataTypes.ReadNextVarInt(packetData);
|
||||
int NumberOfProperties = protocolversion >= MC_1_17_Version ? dataTypes.ReadNextVarInt(packetData) : dataTypes.ReadNextInt(packetData);
|
||||
int NumberOfProperties = protocolVersion >= MC_1_17_Version ? dataTypes.ReadNextVarInt(packetData) : dataTypes.ReadNextInt(packetData);
|
||||
Dictionary<string, Double> keys = new Dictionary<string, Double>();
|
||||
for (int i = 0; i < NumberOfProperties; i++)
|
||||
{
|
||||
|
|
@ -1285,11 +1293,11 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
// See https://wiki.vg/Entity_metadata#Living_Entity
|
||||
int healthField = 7; // From 1.10 to 1.13.2
|
||||
if (protocolversion >= MC_1_14_Version)
|
||||
if (protocolVersion >= MC_1_14_Version)
|
||||
healthField = 8; // 1.14 and above
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
healthField = 9; // 1.17 and above
|
||||
if (protocolversion > MC_1_18_2_Version)
|
||||
if (protocolVersion > MC_1_19_Version)
|
||||
throw new NotImplementedException(Translations.Get("exception.palette.healthfield"));
|
||||
|
||||
if (metadata.ContainsKey(healthField) && metadata[healthField] != null && metadata[healthField].GetType() == typeof(float))
|
||||
|
|
@ -1333,7 +1341,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketTypesIn.UpdateHealth:
|
||||
float health = dataTypes.ReadNextFloat(packetData);
|
||||
int food;
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
food = dataTypes.ReadNextVarInt(packetData);
|
||||
else
|
||||
food = dataTypes.ReadNextShort(packetData);
|
||||
|
|
@ -1348,12 +1356,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
break;
|
||||
case PacketTypesIn.Explosion:
|
||||
Location explosionLocation;
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
explosionLocation = new(dataTypes.ReadNextDouble(packetData), dataTypes.ReadNextDouble(packetData), dataTypes.ReadNextDouble(packetData));
|
||||
else
|
||||
explosionLocation = new(dataTypes.ReadNextFloat(packetData), dataTypes.ReadNextFloat(packetData), dataTypes.ReadNextFloat(packetData));
|
||||
float explosionStrength = dataTypes.ReadNextFloat(packetData);
|
||||
int explosionBlockCount = protocolversion >= MC_1_17_Version
|
||||
int explosionBlockCount = protocolVersion >= MC_1_17_Version
|
||||
? dataTypes.ReadNextVarInt(packetData)
|
||||
: dataTypes.ReadNextInt(packetData);
|
||||
// Ignoring additional fields (records, pushback)
|
||||
|
|
@ -1377,12 +1385,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
break;
|
||||
case PacketTypesIn.UpdateScore:
|
||||
string entityname = dataTypes.ReadNextString(packetData);
|
||||
int action3 = protocolversion >= MC_1_18_2_Version
|
||||
int action3 = protocolVersion >= MC_1_18_2_Version
|
||||
? dataTypes.ReadNextVarInt(packetData)
|
||||
: dataTypes.ReadNextByte(packetData);
|
||||
string objectivename2 = string.Empty;
|
||||
int value = -1;
|
||||
if (action3 != 1 || protocolversion >= MC_1_8_Version)
|
||||
if (action3 != 1 || protocolVersion >= MC_1_8_Version)
|
||||
objectivename2 = dataTypes.ReadNextString(packetData);
|
||||
if (action3 != 1)
|
||||
value = dataTypes.ReadNextVarInt(packetData);
|
||||
|
|
@ -1421,7 +1429,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
Translations.Get("exception.packet_process",
|
||||
packetPalette.GetIncommingTypeById(packetID),
|
||||
packetID,
|
||||
protocolversion,
|
||||
protocolVersion,
|
||||
login_phase,
|
||||
innerException.GetType()),
|
||||
innerException);
|
||||
|
|
@ -1515,7 +1523,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
/// <returns>True if login successful</returns>
|
||||
public bool Login(PlayerKeyPair? playerKeyPair)
|
||||
{
|
||||
byte[] protocol_version = dataTypes.GetVarInt(protocolversion);
|
||||
byte[] protocol_version = dataTypes.GetVarInt(protocolVersion);
|
||||
string server_address = pForge.GetServerAddress(handler.GetServerHost());
|
||||
byte[] server_port = dataTypes.GetUShort((ushort)handler.GetServerPort());
|
||||
byte[] next_state = dataTypes.GetVarInt(2);
|
||||
|
|
@ -1524,7 +1532,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
List<byte> fullLoginPacket = new List<byte>();
|
||||
fullLoginPacket.AddRange(dataTypes.GetString(handler.GetUsername())); // Username
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
if (playerKeyPair == null)
|
||||
fullLoginPacket.AddRange(dataTypes.GetBool(false)); // Has Sig Data
|
||||
|
|
@ -1598,7 +1606,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// Encryption Response packet
|
||||
List<byte> encryptionResponse = new();
|
||||
encryptionResponse.AddRange(dataTypes.GetArray(RSAService.Encrypt(secretKey, false))); // Shared Secret
|
||||
if (protocolversion >= Protocol18Handler.MC_1_19_Version)
|
||||
if (protocolVersion >= Protocol18Handler.MC_1_19_Version)
|
||||
{
|
||||
if (playerKeyPair == null)
|
||||
{
|
||||
|
|
@ -1646,7 +1654,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
Guid uuidReceived = dataTypes.ReadNextUUID(packetData);
|
||||
string userName = dataTypes.ReadNextString(packetData);
|
||||
Tuple<string, string, string>[]? playerProperty = null;
|
||||
if (protocolversion >= Protocol18Handler.MC_1_19_Version)
|
||||
if (protocolVersion >= Protocol18Handler.MC_1_19_Version)
|
||||
{
|
||||
int count = dataTypes.ReadNextVarInt(packetData); // Number Of Properties
|
||||
playerProperty = new Tuple<string, string, string>[count];
|
||||
|
|
@ -1701,9 +1709,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
byte[] tabcomplete_packet = new byte[] { };
|
||||
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
{
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
tabcomplete_packet = dataTypes.ConcatBytes(tabcomplete_packet, transaction_id);
|
||||
tabcomplete_packet = dataTypes.ConcatBytes(tabcomplete_packet, dataTypes.GetString(BehindCursor));
|
||||
|
|
@ -1712,7 +1720,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
tabcomplete_packet = dataTypes.ConcatBytes(tabcomplete_packet, dataTypes.GetString(BehindCursor));
|
||||
|
||||
if (protocolversion >= MC_1_9_Version)
|
||||
if (protocolVersion >= MC_1_9_Version)
|
||||
{
|
||||
tabcomplete_packet = dataTypes.ConcatBytes(tabcomplete_packet, assume_command);
|
||||
}
|
||||
|
|
@ -1745,7 +1753,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
/// Ping a Minecraft server to get information about the server
|
||||
/// </summary>
|
||||
/// <returns>True if ping was successful</returns>
|
||||
public static bool doPing(string host, int port, ref int protocolversion, ref ForgeInfo? forgeInfo)
|
||||
public static bool doPing(string host, int port, ref int protocolVersion, ref ForgeInfo? forgeInfo)
|
||||
{
|
||||
string version = "";
|
||||
TcpClient tcp = ProxyHandler.newTcpClient(host, port);
|
||||
|
|
@ -1797,12 +1805,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
//Retrieve protocol version number for handling this server
|
||||
if (versionData.Properties.ContainsKey("protocol"))
|
||||
protocolversion = int.Parse(versionData.Properties["protocol"].StringValue);
|
||||
protocolVersion = int.Parse(versionData.Properties["protocol"].StringValue);
|
||||
|
||||
// Check for forge on the server.
|
||||
Protocol18Forge.ServerInfoCheckForge(jsonData, ref forgeInfo);
|
||||
|
||||
ConsoleIO.WriteLineFormatted(Translations.Get("mcc.server_protocol", version, protocolversion + (forgeInfo != null ? Translations.Get("mcc.with_forge") : "")));
|
||||
ConsoleIO.WriteLineFormatted(Translations.Get("mcc.server_protocol", version, protocolVersion + (forgeInfo != null ? Translations.Get("mcc.with_forge") : "")));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1818,7 +1826,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
/// <returns>Max length, in characters</returns>
|
||||
public int GetMaxChatMessageLength()
|
||||
{
|
||||
return protocolversion > MC_1_10_Version
|
||||
return protocolVersion > MC_1_10_Version
|
||||
? 256
|
||||
: 100;
|
||||
}
|
||||
|
|
@ -1832,7 +1840,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
/// <returns>Minecraft Protocol version number</returns>
|
||||
public int GetProtocolVersion()
|
||||
{
|
||||
return protocolversion;
|
||||
return protocolVersion;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1953,7 +1961,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
return true;
|
||||
|
||||
// Process Chat Command - 1.19 and above
|
||||
if (protocolversion >= MC_1_19_Version && message.StartsWith('/'))
|
||||
if (protocolVersion >= MC_1_19_Version && message.StartsWith('/'))
|
||||
return SendChatCommand(message[1..], playerKeyPair);
|
||||
|
||||
try
|
||||
|
|
@ -1963,7 +1971,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// Message: String (up to 256 chars)
|
||||
fields.AddRange(dataTypes.GetString(message));
|
||||
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
{
|
||||
// Timestamp: Instant(Long)
|
||||
DateTimeOffset timeNow = DateTimeOffset.UtcNow;
|
||||
|
|
@ -2041,7 +2049,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
return false;
|
||||
// Plugin channels were significantly changed between Minecraft 1.12 and 1.13
|
||||
// https://wiki.vg/index.php?title=Pre-release_protocol&oldid=14132#Plugin_Channels
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
return SendPluginChannelPacket("minecraft:brand", dataTypes.GetString(brandInfo));
|
||||
}
|
||||
|
|
@ -2069,26 +2077,26 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
List<byte> fields = new List<byte>();
|
||||
fields.AddRange(dataTypes.GetString(language));
|
||||
fields.Add(viewDistance);
|
||||
fields.AddRange(protocolversion >= MC_1_9_Version
|
||||
fields.AddRange(protocolVersion >= MC_1_9_Version
|
||||
? dataTypes.GetVarInt(chatMode)
|
||||
: new byte[] { chatMode });
|
||||
fields.Add(chatColors ? (byte)1 : (byte)0);
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
fields.Add(difficulty);
|
||||
fields.Add((byte)(skinParts & 0x1)); //show cape
|
||||
}
|
||||
else fields.Add(skinParts);
|
||||
if (protocolversion >= MC_1_9_Version)
|
||||
if (protocolVersion >= MC_1_9_Version)
|
||||
fields.AddRange(dataTypes.GetVarInt(mainHand));
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
{
|
||||
if (protocolversion >= MC_1_18_1_Version)
|
||||
if (protocolVersion >= MC_1_18_1_Version)
|
||||
fields.Add(0); // 1.18 and above - Enable text filtering. (Always false)
|
||||
else
|
||||
fields.Add(1); // 1.17 and 1.17.1 - Disable text filtering. (Always true)
|
||||
}
|
||||
if (protocolversion >= MC_1_18_1_Version)
|
||||
if (protocolVersion >= MC_1_18_1_Version)
|
||||
fields.Add(1); // 1.18 and above - Allow server listings
|
||||
SendPacket(PacketTypesOut.ClientSettings, fields);
|
||||
}
|
||||
|
|
@ -2124,7 +2132,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
SendPacket(packetType, dataTypes.ConcatBytes(
|
||||
dataTypes.GetDouble(location.X),
|
||||
dataTypes.GetDouble(location.Y),
|
||||
protocolversion < MC_1_8_Version
|
||||
protocolVersion < MC_1_8_Version
|
||||
? dataTypes.GetDouble(location.Y + 1.62)
|
||||
: new byte[0],
|
||||
dataTypes.GetDouble(location.Z),
|
||||
|
|
@ -2150,7 +2158,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
// In 1.7, length needs to be included.
|
||||
// In 1.8, it must not be.
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
byte[] length = BitConverter.GetBytes((short)data.Length);
|
||||
Array.Reverse(length);
|
||||
|
|
@ -2205,7 +2213,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// Is player Sneaking (Only 1.16 and above)
|
||||
// Currently hardcoded to false
|
||||
// TODO: Update to reflect the real player state
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
fields.AddRange(dataTypes.GetBool(false));
|
||||
|
||||
SendPacket(PacketTypesOut.InteractEntity, fields);
|
||||
|
|
@ -2231,7 +2239,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// Is player Sneaking (Only 1.16 and above)
|
||||
// Currently hardcoded to false
|
||||
// TODO: Update to reflect the real player state
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
fields.AddRange(dataTypes.GetBool(false));
|
||||
SendPacket(PacketTypesOut.InteractEntity, fields);
|
||||
return true;
|
||||
|
|
@ -2251,7 +2259,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
// Is player Sneaking (Only 1.16 and above)
|
||||
// Currently hardcoded to false
|
||||
// TODO: Update to reflect the real player state
|
||||
if (protocolversion >= MC_1_16_Version)
|
||||
if (protocolVersion >= MC_1_16_Version)
|
||||
fields.AddRange(dataTypes.GetBool(false));
|
||||
SendPacket(PacketTypesOut.InteractEntity, fields);
|
||||
return true;
|
||||
|
|
@ -2267,7 +2275,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
public bool SendUseItem(int hand, int sequenceId)
|
||||
{
|
||||
if (protocolversion < MC_1_9_Version)
|
||||
if (protocolVersion < MC_1_9_Version)
|
||||
return false; // Packet does not exist prior to MC 1.9
|
||||
// According to https://wiki.vg/index.php?title=Protocol&oldid=5486#Player_Block_Placement
|
||||
// MC 1.7 does this using Player Block Placement with special values
|
||||
|
|
@ -2276,7 +2284,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
List<byte> packet = new List<byte>();
|
||||
packet.AddRange(dataTypes.GetVarInt(hand));
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
packet.AddRange(dataTypes.GetVarInt(sequenceId));
|
||||
SendPacket(PacketTypesOut.UseItem, packet);
|
||||
return true;
|
||||
|
|
@ -2294,7 +2302,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
packet.AddRange(dataTypes.GetVarInt(status));
|
||||
packet.AddRange(dataTypes.GetLocation(location));
|
||||
packet.AddRange(dataTypes.GetVarInt(dataTypes.GetBlockFace(face)));
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
packet.AddRange(dataTypes.GetVarInt(sequenceId));
|
||||
SendPacket(PacketTypesOut.PlayerDigging, packet);
|
||||
return true;
|
||||
|
|
@ -2306,7 +2314,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
public bool SendPlayerBlockPlacement(int hand, Location location, Direction face, int sequenceId)
|
||||
{
|
||||
if (protocolversion < MC_1_14_Version)
|
||||
if (protocolVersion < MC_1_14_Version)
|
||||
return false; // NOT IMPLEMENTED for older MC versions
|
||||
try
|
||||
{
|
||||
|
|
@ -2318,7 +2326,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
packet.AddRange(dataTypes.GetFloat(0.5f)); // cursorY
|
||||
packet.AddRange(dataTypes.GetFloat(0.5f)); // cursorZ
|
||||
packet.Add(0); // insideBlock = false;
|
||||
if (protocolversion >= MC_1_19_Version)
|
||||
if (protocolVersion >= MC_1_19_Version)
|
||||
packet.AddRange(dataTypes.GetVarInt(sequenceId));
|
||||
SendPacket(PacketTypesOut.PlayerBlockPlacement, packet);
|
||||
return true;
|
||||
|
|
@ -2381,13 +2389,13 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
packet.Add((byte)windowId); // Window ID
|
||||
|
||||
// 1.18+
|
||||
if (protocolversion >= MC_1_18_1_Version)
|
||||
if (protocolVersion >= MC_1_18_1_Version)
|
||||
{
|
||||
packet.AddRange(dataTypes.GetVarInt(stateId)); // State ID
|
||||
packet.AddRange(dataTypes.GetShort((short)slotId)); // Slot ID
|
||||
}
|
||||
// 1.17.1
|
||||
else if (protocolversion == MC_1_17_1_Version)
|
||||
else if (protocolVersion == MC_1_17_1_Version)
|
||||
{
|
||||
packet.AddRange(dataTypes.GetShort((short)slotId)); // Slot ID
|
||||
packet.AddRange(dataTypes.GetVarInt(stateId)); // State ID
|
||||
|
|
@ -2400,15 +2408,15 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
packet.Add(button); // Button
|
||||
|
||||
if (protocolversion < MC_1_17_Version)
|
||||
if (protocolVersion < MC_1_17_Version)
|
||||
packet.AddRange(dataTypes.GetShort(actionNumber));
|
||||
|
||||
if (protocolversion >= MC_1_9_Version)
|
||||
if (protocolVersion >= MC_1_9_Version)
|
||||
packet.AddRange(dataTypes.GetVarInt(mode)); // Mode
|
||||
else packet.Add(mode);
|
||||
|
||||
// 1.17+ Array of changed slots
|
||||
if (protocolversion >= MC_1_17_Version)
|
||||
if (protocolVersion >= MC_1_17_Version)
|
||||
{
|
||||
packet.AddRange(dataTypes.GetVarInt(changedSlots.Count)); // Length of the array
|
||||
foreach (var slot in changedSlots)
|
||||
|
|
@ -2451,12 +2459,12 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
List<byte> packet = new List<byte>();
|
||||
|
||||
if (protocolversion < MC_1_8_Version)
|
||||
if (protocolVersion < MC_1_8_Version)
|
||||
{
|
||||
packet.AddRange(dataTypes.GetInt(playerid));
|
||||
packet.Add((byte)1); // Swing arm
|
||||
}
|
||||
else if (protocolversion < MC_1_9_Version)
|
||||
else if (protocolVersion < MC_1_9_Version)
|
||||
{
|
||||
// No fields in 1.8.X
|
||||
}
|
||||
|
|
@ -2524,7 +2532,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
|
||||
public bool UpdateCommandBlock(Location location, string command, CommandBlockMode mode, CommandBlockFlags flags)
|
||||
{
|
||||
if (protocolversion <= MC_1_13_Version)
|
||||
if (protocolVersion <= MC_1_13_Version)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -2562,7 +2570,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
public bool SelectTrade(int selectedSlot)
|
||||
{
|
||||
// MC 1.13 or greater
|
||||
if (protocolversion >= MC_1_13_Version)
|
||||
if (protocolVersion >= MC_1_13_Version)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -2581,7 +2589,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
public bool SendSpectate(Guid UUID)
|
||||
{
|
||||
// MC 1.8 or greater
|
||||
if (protocolversion >= MC_1_8_Version)
|
||||
if (protocolVersion >= MC_1_8_Version)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue