Example #1
0
        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 }));
        }
Example #2
0
 public static SayPacket GenerateSay(this IAliveEntity aliveEntity, SayPacket packet)
 {
     return(new SayPacket
     {
         VisualType = aliveEntity.VisualType,
         VisualId = aliveEntity.VisualId,
         Type = packet.Type,
         Message = packet.Message
     });
 }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
    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;
            }
        }
    }
Example #6
0
        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);
        }