mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-11-07 17:36:07 +00:00
Add SendPlaceBlock, PlayerDigging, OnExplosion, OnGamemodeUpdate, OnSetExperience (#1027)
* Update ChatBot.cs + PlaceBlock * Update AutoAttack.cs + HitAnimation * Update PacketIncomingType.cs + Explosion, * Update McTcpClient.cs + OnExplosion * Update ChatBot.cs + OnExplosion * Update IMinecraftComHandler.cs + OnExplosion * Update Protocol18PacketTypes.cs + PacketIncomingType.Explosion * Update ChatBot.cs + Fix * Update AutoAttack.cs + Fix * Update ChatBot.cs + Fix * Update Protocol18PacketTypes.cs + Old versions * Update Protocol18PacketTypes.cs + 1.7 - 1.8 Explosion ID * Update Protocol18PacketTypes.cs + Fix * Update McTcpClient.cs + int ExplosionRecordCount * Update ChatBot.cs + recordcount * Update IMinecraftComHandler.cs + ExplosionRecordCount * Update Protocol18.cs * Update CSharpRunner.cs + using MinecraftClient.Inventory; * add OnGamemodeUpdate + OnGamemodeUpdate * + OnGamemodeUpdate(playername, uuid, gamemode) + OnGamemodeUpdate * Update Protocol18.cs * Update IMinecraftComHandler.cs * Update McTcpClient.cs Fix * Update McTcpClient.cs * Update Protocol18.cs + Location explodelocation * Update McTcpClient.cs + Location explode * Update ChatBot.cs + Fix * Update ChatBot.cs Remove excess + * Update Plays animation * Improve documentation * ItemType fix * OnExplosion(Location explod); * Update PacketIncomingType.cs add SetExperience, * + Old versions * Update IMinecraftComHandler.cs * Update McTcpClient.cs * Update Protocol18.cs * add GetLevel & GetTotalExperience * Fix * add GetLevel & GetTotalExperience * OnSetExpience * Update ChatBot.cs Fix * Update McTcpClient.cs + bot.OnSetExperience * Update Protocol18.cs + Fix * Update McTcpClient.cs + PlayerDigging * Update PacketOutgoingType.cs + PlayerDigging * Update Protocol18PacketTypes.cs + case PacketOutgoingType.PlayerDigging * Update Protocol18.cs + SendPlayerDigging * Update IMinecraftCom.cs + SendPlayerDigging * Update McTcpClient.cs + PlayerDigging * Update Protocol16.cs + SendPlayerDigging * Update ChatBot.cs + PlayerDigging * Update ChatBot.cs + Fix * Update McTcpClient.cs + Fix * Update ChatBot.cs Add WindowAction * ChatBot.cs Fixes * Further ChatBot.cs fixes * Further ChatBot.cs fixes * Protocol Handler fixes * Protocol Handler fixes * IMinecraftCom fixes * documentation fixes Co-authored-by: ORelio <oreliogitantispam.l0gin@spamgourmet.com>
This commit is contained in:
parent
b2e6953075
commit
cf9bc4c3d5
12 changed files with 249 additions and 23 deletions
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
|
@ -45,7 +45,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
EntityTeleport,
|
||||
TimeUpdate,
|
||||
UpdateHealth,
|
||||
SetExperience,
|
||||
HeldItemChange,
|
||||
Explosion,
|
||||
|
||||
/// <summary>
|
||||
/// Represents a packet not implemented in MCC.
|
||||
|
|
|
|||
|
|
@ -33,5 +33,6 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
PlayerBlockPlacement,
|
||||
CreativeInventoryAction,
|
||||
Animation,
|
||||
PlayerDigging,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -718,6 +718,11 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
return false; //Currently not implemented
|
||||
}
|
||||
|
||||
public bool SendPlayerDigging(int status, Location location, byte face)
|
||||
{
|
||||
return false; //Currently not implemented
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send a plugin channel packet to the server.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -444,6 +444,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
handler.OnPlayerJoin(uuid, name);
|
||||
break;
|
||||
case 0x01: //Update gamemode
|
||||
int gamemode = dataTypes.ReadNextVarInt(packetData);
|
||||
handler.OnGamemodeUpdate(uuid, gamemode);
|
||||
break;
|
||||
case 0x02: //Update latency
|
||||
dataTypes.ReadNextVarInt(packetData);
|
||||
break;
|
||||
|
|
@ -714,6 +717,18 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
dataTypes.ReadNextFloat(packetData); // Food Saturation
|
||||
handler.OnUpdateHealth(health, food);
|
||||
break;
|
||||
case PacketIncomingType.SetExperience:
|
||||
float experiencebar = dataTypes.ReadNextFloat(packetData);
|
||||
int level = dataTypes.ReadNextVarInt(packetData);
|
||||
int totalexperience = dataTypes.ReadNextVarInt(packetData);
|
||||
handler.OnSetExperience(experiencebar, level, totalexperience);
|
||||
break;
|
||||
case PacketIncomingType.Explosion:
|
||||
Location explodelocation = new Location(dataTypes.ReadNextFloat(packetData), dataTypes.ReadNextFloat(packetData), dataTypes.ReadNextFloat(packetData));
|
||||
float Explosionstrength = dataTypes.ReadNextFloat(packetData);
|
||||
int ExplosionRecordCount = dataTypes.ReadNextInt(packetData);
|
||||
handler.OnExplosion(explodelocation, Explosionstrength, ExplosionRecordCount);
|
||||
break;
|
||||
case PacketIncomingType.HeldItemChange:
|
||||
byte slot = dataTypes.ReadNextByte(packetData);
|
||||
handler.OnHeldItemChange(slot);
|
||||
|
|
@ -1066,7 +1081,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
catch (System.IO.IOException) { return false; }
|
||||
catch (ObjectDisposedException) { return false; }
|
||||
}
|
||||
|
||||
|
||||
public bool SendEntityAction(int PlayerEntityID, int ActionID)
|
||||
{
|
||||
try
|
||||
|
|
@ -1228,7 +1243,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
catch (System.IO.IOException) { return false; }
|
||||
catch (ObjectDisposedException) { return false; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Send an Interact Entity Packet to server
|
||||
/// </summary>
|
||||
|
|
@ -1278,9 +1293,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
{
|
||||
if (protocolversion < MC19Version)
|
||||
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
|
||||
// TODO once Player Block Placement is implemented for older versions
|
||||
// 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
|
||||
// TODO once Player Block Placement is implemented for older versions
|
||||
try
|
||||
{
|
||||
List<byte> packet = new List<byte>();
|
||||
|
|
@ -1292,7 +1307,24 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
catch (System.IO.IOException) { return false; }
|
||||
catch (ObjectDisposedException) { return false; }
|
||||
}
|
||||
|
||||
public bool SendPlayerDigging(int status, Location location, byte face)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<byte> packet = new List<byte>();
|
||||
packet.AddRange(dataTypes.GetVarInt(status));
|
||||
packet.AddRange(dataTypes.GetLocation(location));
|
||||
packet.AddRange(dataTypes.GetVarInt(face));
|
||||
|
||||
SendPacket(PacketOutgoingType.PlayerDigging, packet);
|
||||
return true;
|
||||
}
|
||||
catch (SocketException) { return false; }
|
||||
catch (System.IO.IOException) { return false; }
|
||||
catch (ObjectDisposedException) { return false; }
|
||||
}
|
||||
|
||||
public bool SendPlayerBlockPlacement(int hand, Location location, int face, float CursorX, float CursorY, float CursorZ, bool insideBlock)
|
||||
{
|
||||
if (protocolversion < MC114Version)
|
||||
|
|
@ -1350,8 +1382,8 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case WindowActionType.LeftClick: button = 0; break;
|
||||
case WindowActionType.RightClick: button = 1; break;
|
||||
case WindowActionType.MiddleClick: button = 2; mode = 3; break;
|
||||
case WindowActionType.DropItem:
|
||||
button = 0;
|
||||
case WindowActionType.DropItem:
|
||||
button = 0;
|
||||
mode = 4;
|
||||
item = new Item(-1, 0, null);
|
||||
Container inventory = handler.GetInventory(windowId);
|
||||
|
|
@ -1427,7 +1459,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
SendPacket(PacketOutgoingType.Animation, packet);
|
||||
return true;
|
||||
}
|
||||
else;
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1436,7 +1468,6 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
catch (System.IO.IOException) { return false; }
|
||||
catch (ObjectDisposedException) { return false; }
|
||||
}
|
||||
|
||||
public bool SendCloseWindow(int windowId)
|
||||
{
|
||||
try
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
|
@ -59,7 +59,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x18: return PacketIncomingType.EntityTeleport;
|
||||
case 0x03: return PacketIncomingType.TimeUpdate;
|
||||
case 0x06: return PacketIncomingType.UpdateHealth;
|
||||
case 0x1F: return PacketIncomingType.SetExperience;
|
||||
case 0x09: return PacketIncomingType.HeldItemChange;
|
||||
case 0x1C: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
else if (protocol <= Protocol18Handler.MC1112Version) // MC 1.9, 1.10 and 1.11
|
||||
|
|
@ -97,7 +99,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x49: return PacketIncomingType.EntityTeleport;
|
||||
case 0x44: return PacketIncomingType.TimeUpdate;
|
||||
case 0x3E: return PacketIncomingType.UpdateHealth;
|
||||
case 0x3D: return PacketIncomingType.SetExperience;
|
||||
case 0x37: return PacketIncomingType.HeldItemChange;
|
||||
case 0x27: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
else if (protocol <= Protocol18Handler.MC112Version) // MC 1.12.0
|
||||
|
|
@ -135,7 +139,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x4B: return PacketIncomingType.EntityTeleport;
|
||||
case 0x46: return PacketIncomingType.TimeUpdate;
|
||||
case 0x40: return PacketIncomingType.UpdateHealth;
|
||||
case 0x3F: return PacketIncomingType.SetExperience;
|
||||
case 0x39: return PacketIncomingType.HeldItemChange;
|
||||
case 0x1C: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
else if (protocol <= Protocol18Handler.MC1122Version) // MC 1.12.2
|
||||
|
|
@ -173,7 +179,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x4C: return PacketIncomingType.EntityTeleport;
|
||||
case 0x47: return PacketIncomingType.TimeUpdate;
|
||||
case 0x41: return PacketIncomingType.UpdateHealth;
|
||||
case 0x40: return PacketIncomingType.SetExperience;
|
||||
case 0x3A: return PacketIncomingType.HeldItemChange;
|
||||
case 0x1C: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
else if (protocol < Protocol18Handler.MC114Version) // MC 1.13 to 1.13.2
|
||||
|
|
@ -211,7 +219,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x50: return PacketIncomingType.EntityTeleport;
|
||||
case 0x4A: return PacketIncomingType.TimeUpdate;
|
||||
case 0x44: return PacketIncomingType.UpdateHealth;
|
||||
case 0x43: return PacketIncomingType.SetExperience;
|
||||
case 0x3D: return PacketIncomingType.HeldItemChange;
|
||||
case 0x1E: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
else if (protocol < Protocol18Handler.MC115Version) // MC 1.14 to 1.14.4
|
||||
|
|
@ -249,7 +259,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x56: return PacketIncomingType.EntityTeleport;
|
||||
case 0x4E: return PacketIncomingType.TimeUpdate;
|
||||
case 0x48: return PacketIncomingType.UpdateHealth;
|
||||
case 0x47: return PacketIncomingType.SetExperience;
|
||||
case 0x3F: return PacketIncomingType.HeldItemChange;
|
||||
case 0x1C: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
else // MC 1.15
|
||||
|
|
@ -287,7 +299,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x57: return PacketIncomingType.EntityTeleport;
|
||||
case 0x4F: return PacketIncomingType.TimeUpdate;
|
||||
case 0x49: return PacketIncomingType.UpdateHealth;
|
||||
case 0x48: return PacketIncomingType.SetExperience;
|
||||
case 0x40: return PacketIncomingType.HeldItemChange;
|
||||
case 0x1D: return PacketIncomingType.Explosion;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -331,6 +345,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketOutgoingType.PlayerBlockPlacement: return 0x08;
|
||||
case PacketOutgoingType.CreativeInventoryAction: return 0x10;
|
||||
case PacketOutgoingType.Animation: return 0x0A;
|
||||
case PacketOutgoingType.PlayerDigging: return 0x07;
|
||||
}
|
||||
}
|
||||
else if (protocol <= Protocol18Handler.MC1112Version) // MC 1.9, 1,10 and 1.11
|
||||
|
|
@ -356,6 +371,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketOutgoingType.PlayerBlockPlacement: return 0x1C;
|
||||
case PacketOutgoingType.CreativeInventoryAction: return 0x18;
|
||||
case PacketOutgoingType.Animation: return 0x1A;
|
||||
case PacketOutgoingType.PlayerDigging: return 0x13;
|
||||
}
|
||||
}
|
||||
else if (protocol <= Protocol18Handler.MC112Version) // MC 1.12
|
||||
|
|
@ -381,6 +397,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketOutgoingType.PlayerBlockPlacement: return 0x1F;
|
||||
case PacketOutgoingType.CreativeInventoryAction: return 0x1B;
|
||||
case PacketOutgoingType.Animation: return 0x1D;
|
||||
case PacketOutgoingType.PlayerDigging: return 0x14;
|
||||
}
|
||||
}
|
||||
else if (protocol <= Protocol18Handler.MC1122Version) // 1.12.2
|
||||
|
|
@ -406,6 +423,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketOutgoingType.PlayerBlockPlacement: return 0x1F;
|
||||
case PacketOutgoingType.CreativeInventoryAction: return 0x1B;
|
||||
case PacketOutgoingType.Animation: return 0x1D;
|
||||
case PacketOutgoingType.PlayerDigging: return 0x14;
|
||||
}
|
||||
}
|
||||
else if (protocol < Protocol18Handler.MC114Version) // MC 1.13 to 1.13.2
|
||||
|
|
@ -431,6 +449,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketOutgoingType.PlayerBlockPlacement: return 0x29;
|
||||
case PacketOutgoingType.CreativeInventoryAction: return 0x24;
|
||||
case PacketOutgoingType.Animation: return 0x27;
|
||||
case PacketOutgoingType.PlayerDigging: return 0x18;
|
||||
}
|
||||
}
|
||||
else // MC 1.14 to 1.15
|
||||
|
|
@ -456,6 +475,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case PacketOutgoingType.PlayerBlockPlacement: return 0x2C;
|
||||
case PacketOutgoingType.CreativeInventoryAction: return 0x26;
|
||||
case PacketOutgoingType.Animation: return 0x2A;
|
||||
case PacketOutgoingType.PlayerDigging: return 0x1A;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue