コード例 #1
0
        //[Authorize(Permission = UserPermission.Op)]
        public void DisplayRestartNotice(Player currentPlayer)
        {
            var players = currentPlayer.Level.GetSpawnedPlayers();

            foreach (var player in players)
            {
                player.AddPopup(new Popup()
                {
                    Priority = 100, MessageType = MessageType.Tip, Message = "SERVER WILL RESTART!", Duration = 20 * 10,
                });

                player.AddPopup(new Popup()
                {
                    Priority = 100, MessageType = MessageType.Popup, Message = "Transfering all players!", Duration = 20 * 10,
                });
            }

            foreach (var player in players)
            {
                McpeTransfer transfer = McpeTransfer.CreateObject();
                transfer.serverAddress = "yodamine.com";
                transfer.port          = 19132;
                player.SendPackage(transfer);
            }
        }
コード例 #2
0
        private void DelayedProcessing(PlayerNetworkSession playerSession, ConnectedPackage package)
        {
            Player player = playerSession.Player;

            if (ForwardAllPlayers)
            {
                var transfer = McpeTransfer.CreateObject();
                transfer.endpoint = ForwardTarget;
                player.SendPackage(transfer, true);

                return;
            }

            List <Package> messages = package.Messages;

            foreach (var message in messages)
            {
                //message.DatagramSequenceNumber = package._datagramSequenceNumber;
                //message.ReliableMessageNumber = package._reliableMessageNumber;
                //message.OrderingChannel = package._orderingChannel;
                //message.OrderingIndex = package._orderingIndex;

                if (message is SplitPartPackage)
                {
                    HandleSplitMessage(playerSession, package, (SplitPartPackage)message, player);

                    continue;
                }

                message.Timer.Restart();
                HandlePackage(message, playerSession);
                message.PutPool();                 // Handled in HandlePacket now()
            }
        }
コード例 #3
0
ファイル: CommandHandler.cs プロジェクト: wqd1019dqw/Alex
        public void ServerTransferTest(Player player)
        {
            McpeTransfer transfer = McpeTransfer.CreateObject();

            transfer.serverAddress = "test.pmmp.io";
            transfer.port          = 19132;

            player.SendPacket(transfer);
        }
コード例 #4
0
        /// <summary>
        ///		Transfers the player to a different server
        ///		Note, only supports IPv4 addresses
        /// </summary>
        /// <param name="endpoint">The endpoint to transfer to</param>
        /// <exception cref="NotSupportedException">Thrown when the endpoint isn't an IPv4 Address</exception>
        public void TransferToServer(IPEndPoint endpoint)
        {
            if (endpoint.AddressFamily == AddressFamily.InterNetworkV6)
            {
                throw new NotSupportedException("IPV6 is currently not supported!");
            }

            McpeTransfer transfer = McpeTransfer.CreateObject();

            transfer.port          = (ushort)endpoint.Port;
            transfer.serverAddress = endpoint.Address.ToString();
            SendPacket(transfer);
        }
コード例 #5
0
        private Packet CreatePe(byte messageId, ReadOnlyMemory <byte> buffer)
        {
            Packet packet = null;

            try
            {
                switch (messageId)
                {
                case 0x37:
                    packet = new AdventureSettings();
                    break;

                case 0x55:
                    packet = McpeTransfer.CreateObject();
                    //packet = new AdventureSettings();

                    break;

                case 0x0b:
                    packet = new StartGame();
                    break;

                case 0x34:
                    packet = new CraftingData();
                    break;

                case 0x91:
                    packet = new CreativeContent();
                    break;
                //  case 0x07:
                //      packet = new McpeResourcePackStack();
                //      break;
                // case 0x0c:
                //     packet = new AddPlayer();
                //     break;

                //The following are only here so we can join.
                //  case 0x1F:
                //    packet = new MobEquipment();
                //  break;
                //  case 0x20:
                //       packet = new MobArmorEquipment();

                //       break;
                //case 0x27:
                //     packet = new SetEntityData();
                //     break;
                //  case 0x31:
                //      packet = new InventoryContent();
                //      break;
                //   case 0x32:
                //       packet = new InventorySlot();
                //       break;
                case 0x6f:     //Fixes entity delta
                    packet = new EntityDelta();
                    break;
                    //      case 0x77:
                    //          packet = new AvailableEntityIdentifiers();
                    //          break;
                    //      case 0x7a:
                    //          packet = new BiomeDefinitionList();
                    //          break;
                }

                packet?.Decode(buffer);
            }
            catch (Exception ex)
            {
                //  if (messageId != 0x31)
                {
                    Log.Error(ex, $"Processing error: {ex.ToString()}");
                }
            }

            return(packet);
        }