public void Shout(ShoutPacket shoutPacket) { var sayPacket = new SayPacket { VisualType = VisualType.Player, VisualId = 0, Type = SayColorType.Yellow, Message = $"({Language.Instance.GetMessageFromKey(LanguageKey.ADMINISTRATOR, Session.Account.Language)}){shoutPacket.Message}" }; var msgPacket = new MsgPacket { Type = MessageType.Shout, Message = shoutPacket.Message }; var sayPostedPacket = new PostedPacket { Packet = PacketFactory.Serialize(sayPacket), SenderCharacter = new Data.WebApi.Character() { Name = Session.Character.Name, Id = Session.Character.CharacterId } }; var msgPostedPacket = new PostedPacket { Packet = PacketFactory.Serialize(msgPacket) }; ServerManager.Instance.BroadcastPackets(new List <PostedPacket>(new[] { sayPostedPacket, msgPostedPacket })); }
public static SayPacket GenerateSay(this IAliveEntity aliveEntity, SayPacket packet) { return(new SayPacket { VisualType = aliveEntity.VisualType, VisualId = aliveEntity.VisualId, Type = packet.Type, Message = packet.Message }); }
private static void PlayerChat(IEntity entity, PlayerChatEventArg args) { var sayPacket = new SayPacket { Type = SayColorType.White, Message = args.Message, VisualType = VisualType.Character, VisualId = args.SenderId }; entity.EntityManager.Broadcast((IPlayerEntity)entity, sayPacket); }
protected override async Task Handle(ChatGeneralEvent e, CancellationToken cancellation) { var sayPacket = new SayPacket { Type = SayColorType.White, Message = e.Message, VisualType = e.Sender.Type, VisualId = e.Sender.Id }; await((IPlayerEntity)e.Sender).BroadcastExceptSenderAsync(sayPacket); }
static void Main(string[] args) { Console.Title = "Amane World"; Log.info("========================="); Log.info("| Amane |"); Log.info($"| version: {version} |"); Log.info($"| codename: {codename} |"); Log.info("========================="); Log.info("天音システムを起動しています..."); Log.warn("天音システムはまだ不完全です"); Log.warn("自己責任での利用をお願いします"); Log.info("Configの起動を開始します..."); DotEnv.Config(); Log.info("Configの起動が完了しました..."); Log.info("Tickerの起動を開始します..."); Clock.Ticking(); Log.info("Tickerの起動が完了しました..."); Log.info("TCP Serverの起動を開始します..."); AmaneServer server = new AmaneServer(); server.Start(); Log.info("TCP Serverの起動が完了しました"); // var myFile = new fNbt.NbtFile(); // myFile.LoadFromFile("./world/awo/0.0.0.nbt.zlib"); // var myCompoundTag = myFile.RootTag; while (alive) { string command = Console.ReadLine(); switch (command.Split(" ")[0]) { case "exit": Amane.exit(); break; case "say": SayPacket sayPacket = new SayPacket(command.Split(" ")[1]); server.SendToAll(sayPacket.packet); Log.info(command.Split(" ")[1]); break; // case "chunk": // ChunkPacket chunkPacket = new ChunkPacket(0, 0, 0, myCompoundTag.ToString()); // server.SendToAll(chunkPacket.packet); // break; } } }
public override Task ExecuteAsync(ShoutPacket shoutPacket, ClientSession session) { var message = $"({GameLanguage.Instance.GetMessageFromKey(LanguageKey.ADMINISTRATOR, session.Account.Language)}) {shoutPacket.Message}"; var sayPacket = new SayPacket { VisualType = VisualType.Player, VisualId = 0, Type = SayColorType.Yellow, Message = message }; var msgPacket = new MsgPacket { Type = MessageType.Shout, Message = message }; var sayPostedPacket = new PostedPacket { Packet = _packetSerializer.Serialize(new[] { sayPacket }), SenderCharacter = new Character { Name = session.Character.Name, Id = session.Character.CharacterId }, ReceiverType = ReceiverType.All }; var msgPostedPacket = new PostedPacket { Packet = _packetSerializer.Serialize(new[] { msgPacket }), ReceiverType = ReceiverType.All }; _packetHttpClient.BroadcastPacketsAsync(new List <PostedPacket>(new[] { sayPostedPacket, msgPostedPacket })); return(Task.CompletedTask); }