//[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); } }
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() } }
public void ServerTransferTest(Player player) { McpeTransfer transfer = McpeTransfer.CreateObject(); transfer.serverAddress = "test.pmmp.io"; transfer.port = 19132; player.SendPacket(transfer); }
/// <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); }
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); }