~ruther/NosSmooth

ref: 0488673f2ff49672d77ac92e6430c44b26df2878 NosSmooth/Samples/SimpleChat/SimpleChat.cs -rw-r--r-- 1.8 KiB
0488673f — František Boháček fix: remove noscore usages in local client 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//
//  SimpleChat.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NosCore.Packets.Enumerations;
using NosCore.Packets.ServerPackets.Chats;
using NosCore.Shared.Enumerations;
using NosSmooth.Core.Client;
using NosSmooth.Core.Packets;
using NosSmooth.LocalClient.Extensions;

namespace SimpleChat;

/// <summary>
/// The main simple chat class.
/// </summary>
public class SimpleChat
{
    /// <summary>
    /// Run the client.
    /// </summary>
    /// <returns>The task that may or may not have succeeded.</returns>
    public async Task RunAsync()
    {
        var provider = new ServiceCollection()
            .AddLocalClient()

            // .AddPacketResponder<SayResponder>()
            .AddLogging(b =>
            {
                b.ClearProviders();
                b.AddConsole();
                b.SetMinimumLevel(LogLevel.Debug);
            })
            .BuildServiceProvider();

        var dummy1 = provider.GetRequiredService<PacketSerializerProvider>().ServerSerializer;
        var dummy2 = provider.GetRequiredService<PacketSerializerProvider>().ClientSerializer;

        var logger = provider.GetRequiredService<ILogger<SimpleChat>>();
        logger.LogInformation("Hello world from SimpleChat!");

        var client = provider.GetRequiredService<INostaleClient>();

        await client.ReceivePacketAsync(new SayPacket()
        {
            Message = "Hello world from NosSmooth!",
            VisualType = VisualType.Player,
            Type = SayColorType.Red,
            VisualId = 1,
        });

        await client.RunAsync();
    }
}
Do not follow this link