Example #1
0
        private Task PlayerSetRemoveBlockAsync(ISendingAsyncArgs args)
        {
            var data = (PlayerSetRemoveBlockAsyncArgs)args;

            switch (data.Mode)
            {
            case PlayerSetRemoveBlockMode.Place:
            {
                var pdata = (PlayerSetRemoveBlockDataPlace)data.Data;
                return(null);
            }

            case PlayerSetRemoveBlockMode.Dig:
            {
                var pdata = (PlayerSetRemoveBlockDataDig)data.Data;
                return(null);
            }

            case PlayerSetRemoveBlockMode.Remove:
            {
                var pdata = (PlayerSetRemoveBlockDataRemove)data.Data;

                return(SendPacketAsync(new SetBlockPacket
                    {
                        Coordinates = pdata.Location,
                        BlockType = (byte)pdata.BlockID,
                        Mode = (SetBlockMode)pdata.Mode
                    }));
            }

            default:
                throw new Exception("PacketError");
            }
        }
Example #2
0
        private Task SendMessageAsync(ISendingAsyncArgs args)
        {
            var data = (SendMessageAsyncArgs)args;

            return(SendPacketAsync(new MessagePacket {
                Message = data.Message
            }));
        }
Example #3
0
        public void DoSending(Type sendingType, ISendingAsyncArgs args)
        {
            var any = sendingType.GetTypeInfo().ImplementedInterfaces.Any(p => p == typeof(ISendingAsync));

            if (!any)
            {
                throw new InvalidOperationException("AsyncSending type must implement MineLib.Network.IAsyncSending");
            }

            SendingAsyncHandlers[sendingType](args).Wait();
        }
        private async Task ConnectToServerAsync(ISendingAsyncArgs args)
        {
            var data = (ConnectToServerAsyncArgs)args;

            State = ConnectionState.Joining;

            await SendPacketAsync(new HandshakePacket
            {
                Username = _minecraft.ClientUsername
            });

            await SendPacketAsync(new LoginRequestPacket { ProtocolVersion = 14, Username = "******" });
        }
Example #5
0
        private Task ConnectToServerAsync(ISendingAsyncArgs args)
        {
            var data = (ConnectToServerAsyncArgs)args;

            State = ConnectionState.Joining;

            return(SendPacketAsync(new PlayerIdentificationPacket
            {
                ProtocolVersion = 0x07,
                Username = _minecraft.ClientUsername,
                VerificationKey = _minecraft.AccessToken,
                UnUsed = 0x42
            }));
        }
Example #6
0
        private Task PlayerMovedAsync(ISendingAsyncArgs args)
        {
            var data = (PlayerMovedAsyncArgs)args;

            switch (data.Mode)
            {
            case PlaverMovedMode.OnGround:
            {
                var pdata = (PlaverMovedDataOnGround)data.Data;
                return(null);
            }

            case PlaverMovedMode.Vector3:
            {
                var pdata = (PlaverMovedDataVector3)data.Data;
                return(null);
            }

            case PlaverMovedMode.YawPitch:
            {
                var pdata = (PlaverMovedDataYawPitch)data.Data;
                return(null);
            }

            case PlaverMovedMode.All:
            {
                var pdata = (PlaverMovedDataAll)data.Data;

                return(SendPacketAsync(new PositionAndOrientationPacket
                    {
                        Position = pdata.Vector3,
                        Yaw = (byte)pdata.Yaw,
                        Pitch = (byte)pdata.Pitch,
                        PlayerID = 255
                    }));
            }

            default:
                throw new Exception("PacketError");
            }
        }
        private Task KeepAliveAsync(ISendingAsyncArgs args)
        {
            var data = (KeepAliveAsyncArgs)args;

            return(SendPacketAsync(new KeepAlivePacket()));
        }