mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-11-07 17:36:07 +00:00
Fixed entity metadata, fixed a crash with Hurt Data packet, fixed a crash when someone flew by with elyra, added Entity Metadata Palettes (not used yet, requires further work)
This commit is contained in:
parent
2e55a6bc85
commit
1a22002bde
11 changed files with 1575 additions and 531 deletions
33
MinecraftClient/Mapping/EntityMetaDataType.cs
Normal file
33
MinecraftClient/Mapping/EntityMetaDataType.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
namespace MinecraftClient.Mapping;
|
||||
|
||||
public enum EntityMetaDataType
|
||||
{
|
||||
Byte,
|
||||
VarInt,
|
||||
VarLong,
|
||||
Float,
|
||||
String,
|
||||
Chat,
|
||||
OptionalChat,
|
||||
Slot,
|
||||
Boolean,
|
||||
Rotation,
|
||||
Position,
|
||||
OptionalPosition,
|
||||
Direction,
|
||||
OptionalUuid,
|
||||
BlockId,
|
||||
OptionalBlockId,
|
||||
Nbt,
|
||||
Particle,
|
||||
VillagerData,
|
||||
OptionalVarInt,
|
||||
Pose,
|
||||
CatVariant,
|
||||
FrogVariant,
|
||||
OptionalGlobalPosition,
|
||||
PaintingVariant,
|
||||
SnifferState,
|
||||
Vector3,
|
||||
Quaternion
|
||||
}
|
||||
8
MinecraftClient/Mapping/EntityMetadataPalette.cs
Normal file
8
MinecraftClient/Mapping/EntityMetadataPalette.cs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping;
|
||||
|
||||
public abstract class EntityMetadataPalette
|
||||
{
|
||||
public abstract Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList();
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette111 : EntityMetadataPalette
|
||||
{
|
||||
// 1.11 : https://wiki.vg/index.php?title=Entity_metadata&oldid=8269
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.Float },
|
||||
{ 3, EntityMetaDataType.String },
|
||||
{ 4, EntityMetaDataType.Chat },
|
||||
{ 5, EntityMetaDataType.Slot },
|
||||
{ 6, EntityMetaDataType.Boolean },
|
||||
{ 7, EntityMetaDataType.Rotation },
|
||||
{ 8, EntityMetaDataType.Position },
|
||||
{ 9, EntityMetaDataType.OptionalPosition },
|
||||
{ 10, EntityMetaDataType.Direction },
|
||||
{ 11, EntityMetaDataType.OptionalUuid },
|
||||
{ 12, EntityMetaDataType.OptionalBlockId }
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette113 : EntityMetadataPalette
|
||||
{
|
||||
// 1.13 : https://wiki.vg/index.php?title=Entity_metadata&oldid=14539
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.Float },
|
||||
{ 3, EntityMetaDataType.String },
|
||||
{ 4, EntityMetaDataType.Chat },
|
||||
{ 5, EntityMetaDataType.OptionalChat },
|
||||
{ 6, EntityMetaDataType.Slot },
|
||||
{ 7, EntityMetaDataType.Boolean },
|
||||
{ 8, EntityMetaDataType.Rotation },
|
||||
{ 9, EntityMetaDataType.Position },
|
||||
{ 10, EntityMetaDataType.OptionalPosition },
|
||||
{ 11, EntityMetaDataType.Direction },
|
||||
{ 12, EntityMetaDataType.OptionalUuid },
|
||||
{ 13, EntityMetaDataType.OptionalBlockId },
|
||||
{ 14, EntityMetaDataType.Nbt },
|
||||
{ 15, EntityMetaDataType.Particle }
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette114 : EntityMetadataPalette
|
||||
{
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.Float },
|
||||
{ 3, EntityMetaDataType.String },
|
||||
{ 4, EntityMetaDataType.Chat },
|
||||
{ 5, EntityMetaDataType.OptionalChat },
|
||||
{ 6, EntityMetaDataType.Slot },
|
||||
{ 7, EntityMetaDataType.Boolean },
|
||||
{ 8, EntityMetaDataType.Rotation },
|
||||
{ 9, EntityMetaDataType.Position },
|
||||
{ 10, EntityMetaDataType.OptionalPosition },
|
||||
{ 11, EntityMetaDataType.Direction },
|
||||
{ 12, EntityMetaDataType.OptionalUuid },
|
||||
{ 13, EntityMetaDataType.OptionalBlockId },
|
||||
{ 14, EntityMetaDataType.Nbt },
|
||||
{ 15, EntityMetaDataType.Particle },
|
||||
{ 16, EntityMetaDataType.VillagerData },
|
||||
{ 17, EntityMetaDataType.OptionalVarInt },
|
||||
{ 18, EntityMetaDataType.Pose }
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette1191 : EntityMetadataPalette
|
||||
{
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.Float },
|
||||
{ 3, EntityMetaDataType.String },
|
||||
{ 4, EntityMetaDataType.Chat },
|
||||
{ 5, EntityMetaDataType.OptionalChat },
|
||||
{ 6, EntityMetaDataType.Slot },
|
||||
{ 7, EntityMetaDataType.Boolean },
|
||||
{ 8, EntityMetaDataType.Rotation },
|
||||
{ 9, EntityMetaDataType.Position },
|
||||
{ 10, EntityMetaDataType.OptionalPosition },
|
||||
{ 11, EntityMetaDataType.Direction },
|
||||
{ 12, EntityMetaDataType.OptionalUuid },
|
||||
{ 13, EntityMetaDataType.OptionalBlockId },
|
||||
{ 14, EntityMetaDataType.Nbt },
|
||||
{ 15, EntityMetaDataType.Particle },
|
||||
{ 16, EntityMetaDataType.VillagerData },
|
||||
{ 17, EntityMetaDataType.OptionalVarInt },
|
||||
{ 18, EntityMetaDataType.Pose },
|
||||
{ 19, EntityMetaDataType.CatVariant },
|
||||
{ 20, EntityMetaDataType.FrogVariant },
|
||||
{ 21, EntityMetaDataType.OptionalGlobalPosition },
|
||||
{ 22, EntityMetaDataType.PaintingVariant }
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette1193 : EntityMetadataPalette
|
||||
{
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.VarLong },
|
||||
{ 3, EntityMetaDataType.Float },
|
||||
{ 4, EntityMetaDataType.String },
|
||||
{ 5, EntityMetaDataType.Chat },
|
||||
{ 6, EntityMetaDataType.OptionalChat },
|
||||
{ 7, EntityMetaDataType.Slot },
|
||||
{ 8, EntityMetaDataType.Boolean },
|
||||
{ 9, EntityMetaDataType.Rotation },
|
||||
{ 10, EntityMetaDataType.Position },
|
||||
{ 11, EntityMetaDataType.OptionalPosition },
|
||||
{ 12, EntityMetaDataType.Direction },
|
||||
{ 13, EntityMetaDataType.OptionalUuid },
|
||||
{ 14, EntityMetaDataType.OptionalBlockId },
|
||||
{ 15, EntityMetaDataType.Nbt },
|
||||
{ 16, EntityMetaDataType.Particle },
|
||||
{ 17, EntityMetaDataType.VillagerData },
|
||||
{ 18, EntityMetaDataType.OptionalVarInt },
|
||||
{ 19, EntityMetaDataType.Pose },
|
||||
{ 20, EntityMetaDataType.CatVariant },
|
||||
{ 21, EntityMetaDataType.FrogVariant },
|
||||
{ 22, EntityMetaDataType.OptionalGlobalPosition },
|
||||
{ 23, EntityMetaDataType.PaintingVariant }
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette1194 : EntityMetadataPalette
|
||||
{
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.VarLong },
|
||||
{ 3, EntityMetaDataType.Float },
|
||||
{ 4, EntityMetaDataType.String },
|
||||
{ 5, EntityMetaDataType.Chat },
|
||||
{ 6, EntityMetaDataType.OptionalChat },
|
||||
{ 7, EntityMetaDataType.Slot },
|
||||
{ 8, EntityMetaDataType.Boolean },
|
||||
{ 9, EntityMetaDataType.Rotation },
|
||||
{ 10, EntityMetaDataType.Position },
|
||||
{ 11, EntityMetaDataType.OptionalPosition },
|
||||
{ 12, EntityMetaDataType.Direction },
|
||||
{ 13, EntityMetaDataType.OptionalUuid },
|
||||
{ 14, EntityMetaDataType.BlockId },
|
||||
{ 15, EntityMetaDataType.OptionalBlockId },
|
||||
{ 16, EntityMetaDataType.Nbt },
|
||||
{ 17, EntityMetaDataType.Particle },
|
||||
{ 18, EntityMetaDataType.VillagerData },
|
||||
{ 19, EntityMetaDataType.OptionalVarInt },
|
||||
{ 20, EntityMetaDataType.Pose },
|
||||
{ 21, EntityMetaDataType.CatVariant },
|
||||
{ 22, EntityMetaDataType.FrogVariant },
|
||||
{ 23, EntityMetaDataType.OptionalGlobalPosition },
|
||||
{ 24, EntityMetaDataType.PaintingVariant },
|
||||
{ 25, EntityMetaDataType.SnifferState },
|
||||
{ 26, EntityMetaDataType.Vector3 },
|
||||
{ 27, EntityMetaDataType.Quaternion },
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
|
||||
|
||||
public class EntityMetadataPalette19 : EntityMetadataPalette
|
||||
{
|
||||
// 1.8 : https://wiki.vg/index.php?title=Entity_metadata&oldid=6220 (Requires a different algorithm)
|
||||
// 1.9 : https://wiki.vg/index.php?title=Entity_metadata&oldid=7416
|
||||
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
|
||||
{
|
||||
{ 0, EntityMetaDataType.Byte },
|
||||
{ 1, EntityMetaDataType.VarInt },
|
||||
{ 2, EntityMetaDataType.Float },
|
||||
{ 3, EntityMetaDataType.String },
|
||||
{ 4, EntityMetaDataType.Chat },
|
||||
{ 5, EntityMetaDataType.Slot },
|
||||
{ 6, EntityMetaDataType.Boolean },
|
||||
{ 7, EntityMetaDataType.Vector3 },
|
||||
{ 8, EntityMetaDataType.Position },
|
||||
{ 9, EntityMetaDataType.OptionalPosition },
|
||||
{ 10, EntityMetaDataType.Direction },
|
||||
{ 11, EntityMetaDataType.OptionalUuid },
|
||||
{ 12, EntityMetaDataType.OptionalBlockId }
|
||||
};
|
||||
|
||||
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
|
||||
{
|
||||
return entityMetadataMappings;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue