Example #1
0
 public Log(StreamWriter stream, ProxySettings settings)
 {
     Stream = stream;
     MemoryStream = new MemoryStream();
     MinecraftStream = new MinecraftStream(MemoryStream);
     Settings = settings;
 }
Example #2
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     ProtocolVersion = stream.ReadVarInt();
     ServerHostname = stream.ReadString();
     ServerPort = stream.ReadUInt16();
     NextState = (NetworkMode)stream.ReadVarInt();
     return NextState;
 }
Example #3
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteVarInt(ProtocolVersion);
     stream.WriteString(ServerHostname);
     stream.WriteUInt16(ServerPort);
     stream.WriteVarInt((int)NextState);
     return NextState;
 }
Example #4
0
 public void ReadPacket(MinecraftStream stream)
 {
     EntityId = stream.ReadInt32();
     LevelType = stream.ReadString();
     GameMode = (GameMode)stream.ReadUInt8();
     Dimension = (Dimension)stream.ReadInt8();
     Difficulty = (Difficulty)stream.ReadUInt8();
     Discarded = stream.ReadUInt8();
     MaxPlayers = stream.ReadUInt8();
 }
Example #5
0
 public Proxy(NetworkStream client, NetworkStream server, Log log, ProxySettings settings)
 {
     Client = client;
     Server = server;
     Log = log;
     ClientStream = new MinecraftStream(new BufferedStream(Client));
     ServerStream = new MinecraftStream(new BufferedStream(Server));
     CryptoServiceProvider = new RSACryptoServiceProvider(1024);
     ServerKey = CryptoServiceProvider.ExportParameters(true);
     Settings = settings;
 }
Example #6
0
 public void WritePacket(MinecraftStream stream)
 {
     stream.WriteUInt8(Id);
     stream.WriteInt32(EntityId);
     stream.WriteString(LevelType);
     stream.WriteUInt8((byte)GameMode);
     stream.WriteInt8((sbyte)Dimension);
     stream.WriteUInt8((byte)Difficulty);
     stream.WriteUInt8(Discarded);
     stream.WriteUInt8(MaxPlayers);
 }
Example #7
0
 public override void MessageRecieved(RemoteClient client, byte[] data)
 {
     if (ServerPingReceived != null)
     {
         var stream = new MinecraftStream(new MemoryStream(data));
         var eventArgs = new ServerPingEventArgs(
             stream.ReadInt32(),
             stream.ReadString(),
             stream.ReadInt32());
         ServerPingReceived(this, eventArgs);
     }
 }
Example #8
0
 public void Connect(IPEndPoint endPoint)
 {
     if (Client != null && Client.Connected)
         throw new InvalidOperationException("Already connected to a server!");
     EndPoint = endPoint;
     Client = new TcpClient();
     Client.Connect(EndPoint);
     NetworkStream = Client.GetStream();
     Stream = new MinecraftStream(new BufferedStream(NetworkStream));
     NetworkWorkerThread = new Thread(NetworkWorker);
     NetworkWorkerThread.Start();
     var handshake = new HandshakePacket(PacketReader.ProtocolVersion, Session.SelectedProfile.Name,
         EndPoint.Address.ToString(), EndPoint.Port);
     SendPacket(handshake);
 }
        public static MetadataDictionary FromStream(MinecraftStream stream)
        {
            var value = new MetadataDictionary();
            while (true)
            {
                byte key = stream.ReadUInt8();
                if (key == 127) break;

                byte type = (byte)((key & 0xE0) >> 5);
                byte index = (byte)(key & 0x1F);

                var entry = EntryTypes[type]();
                entry.FromStream(stream);
                entry.Index = index;

                value[index] = entry;
            }
            return value;
        }
Example #10
0
 public override void WriteTo(MinecraftStream stream, byte index)
 {
     stream.WriteUInt8(GetKey(index));
     stream.WriteInt16(Value.Id);
     if (Value.Id != -1)
     {
         stream.WriteInt8(Value.Count);
         stream.WriteInt16(Value.Metadata);
         if (Value.Nbt != null)
         {
             var file = new NbtFile(Value.Nbt);
             var data = file.SaveToBuffer(NbtCompression.GZip);
             stream.WriteInt16((short)data.Length);
             stream.WriteUInt8Array(data);
         }
         else
             stream.WriteInt16(-1);
     }
 }
Example #11
0
 public static ServerPing DoPing(IPEndPoint endPoint)
 {
     var client = new TcpClient();
     client.Connect(endPoint);
     var stream = new MinecraftStream(client.GetStream());
     var ping = new ServerListPingPacket();
     ping.WritePacket(stream);
     var response = PacketReader.ReadPacket(stream);
     client.Close();
     // TODO: Handle old pings
     var pong = (DisconnectPacket)response;
     var parts = pong.Reason.Substring(3).Split('\0');
     var result = new ServerPing();
     result.ProtocolVersion = int.Parse(parts[0]);
     result.ServerVersion = parts[1];
     result.MotD = parts[2];
     result.CurrentPlayers = int.Parse(parts[3]);
     result.MaxPlayers = int.Parse(parts[4]);
     return result;
 }
Example #12
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     EntityId = stream.ReadVarInt();
     Type = stream.ReadUInt8();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Yaw = stream.ReadUInt8();
     Pitch = stream.ReadUInt8();
     Data = stream.ReadInt32();
     if (Data != 0)
     {
         SpeedX = stream.ReadInt16();
         SpeedY = stream.ReadInt16();
         SpeedZ = stream.ReadInt16();
     }
     return mode;
 }
Example #13
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteVarInt(ItemId);
     stream.WriteVarInt(PlayerId);
     return mode;
 }
Example #14
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction) {
     ItemId = stream.ReadVarInt();
     PlayerId = stream.ReadVarInt();
     return mode;
 }
Example #15
0
 public override void FromStream(MinecraftStream stream)
 {
     Value = stream.ReadInt32();
 }
Example #16
0
 public override void FromStream(MinecraftStream stream)
 {
     Value = ItemStack.FromStream(stream);
 }
Example #17
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     EntityId = stream.ReadVarInt();
     Title = stream.ReadString();
     Location = stream.ReadPosition();
     Direction = stream.ReadUInt8();
     return mode;
 }
Example #18
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     EntityId = stream.ReadVarInt();
     Type = stream.ReadUInt8();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Yaw = stream.ReadUInt8();
     Pitch = stream.ReadUInt8();
     HeadYaw = stream.ReadUInt8();
     VelocityX = stream.ReadInt16();
     VelocityY = stream.ReadInt16();
     VelocityZ = stream.ReadInt16();
     Metadata = MetadataDictionary.FromStream(stream);
     return mode;
 }
Example #19
0
 public override void FromStream(MinecraftStream stream)
 {
     Value = ItemStack.FromStream(stream);
 }
Example #20
0
 public override void FromStream(MinecraftStream stream)
 {
     Value = stream.ReadInt32();
 }
Example #21
0
 public abstract void FromStream(MinecraftStream stream);
Example #22
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     if (direction == PacketDirection.Clientbound)
         stream.WriteInt8((sbyte)Slot);
     else
         stream.WriteInt16(Slot);
     return mode;
 }
Example #23
0
 public abstract void WriteTo(MinecraftStream stream, byte index);
Example #24
0
 public override void WriteTo(MinecraftStream stream, byte index)
 {
     stream.WriteUInt8(GetKey(index));
     stream.WriteSingle(Value);
 }
Example #25
0
 public override void FromStream(MinecraftStream stream)
 {
     Value = stream.ReadSingle();
 }
Example #26
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteVarInt(EntityId);
     stream.WriteUInt8(Type);
     stream.WriteInt32(X);
     stream.WriteInt32(Y);
     stream.WriteInt32(Z);
     stream.WriteUInt8(Yaw);
     stream.WriteUInt8(Pitch);
     stream.WriteInt32(Data);
     if (Data != 0)
     {
         stream.WriteInt16(SpeedX.Value);
         stream.WriteInt16(SpeedY.Value);
         stream.WriteInt16(SpeedZ.Value);
     }
     return mode;
 }
Example #27
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     return mode;
 }
Example #28
0
        public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction) {
            if (direction == PacketDirection.Serverbound)
                return mode; // -- Server bound has no fields.

            EntityId = stream.ReadVarInt();
            Animation = (AnimationType) stream.ReadUInt8();
            return mode;
        }
Example #29
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteVarInt(EntityId);
     stream.WriteUInt8(Type);
     stream.WriteInt32(X);
     stream.WriteInt32(Y);
     stream.WriteInt32(Z);
     stream.WriteUInt8(Yaw);
     stream.WriteUInt8(Pitch);
     stream.WriteUInt8(HeadYaw);
     stream.WriteInt16(VelocityX);
     stream.WriteInt16(VelocityY);
     stream.WriteInt16(VelocityZ);
     Metadata.WriteTo(stream);
     return mode;
 }
Example #30
0
        public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction) {
            if (direction == PacketDirection.Serverbound)
                return mode;

            stream.WriteVarInt(EntityId);
            stream.WriteUInt8((byte)Animation);
            return mode;
        }
Example #31
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteVarInt(EntityId);
     stream.WriteString(Title);
     stream.WritePosition(Location);
     stream.WriteUInt8(Direction);
     return mode;
 }
Example #32
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     EntityId = stream.ReadVarInt();
     PlayerUuid = new Guid(stream.ReadUInt8Array(16)); 
     PlayerName = stream.ReadString();
     X = stream.ReadInt32();
     Y = stream.ReadInt32();
     Z = stream.ReadInt32();
     Yaw = stream.ReadUInt8();
     Pitch = stream.ReadUInt8();
     HeldItem = stream.ReadInt16();
     Metadata = MetadataDictionary.FromStream(stream);
     return mode;
 }
Example #33
0
 public NetworkMode ReadPacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     EntityId = stream.ReadInt32();
     Location = stream.ReadPosition();
     return mode;
 }
Example #34
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteVarInt(EntityId);
     stream.WriteUInt8Array(PlayerUuid.ToByteArray());
     stream.WriteString(PlayerName);
     stream.WriteInt32(X);
     stream.WriteInt32(Y);
     stream.WriteInt32(Z);
     stream.WriteUInt8(Yaw);
     stream.WriteUInt8(Pitch);
     stream.WriteInt16(HeldItem);
     Metadata.WriteTo(stream);
     return mode;
 }
Example #35
0
 public override void WriteTo(MinecraftStream stream, byte index)
 {
     stream.WriteUInt8(GetKey(index));
     stream.WriteInt32(Value);
 }
Example #36
0
 public NetworkMode WritePacket(MinecraftStream stream, NetworkMode mode, PacketDirection direction)
 {
     stream.WriteInt32(EntityId);
     stream.WritePosition(Location);
     return mode;
 }