InSimDotNet
Lista de pacotes
Ao entrar no servidor
Nível de dificuldade: Fácil

Ao entrar no servidor (IS_NCN)

O pacote IS_NCN é referente à uma nova conexão no servidor, ou seja, sempre que um jogador conectar-se ao servidor, a função responsável por lidar com esse pacote será ativada.

Esse pacote é do tipo receptor, ele não pode enviar dados, apenas receber.

Antes de iniciar

Dentro do Visual Studio crie uma pasta chamada "packets", e dentro dela crie um arquivo de classe chamado "IS_NCN".

Criando o manipulador

No arquivo criado previamente, vamos criar uma função chamada "Hook" para injetarmos todo o código de recepção dentro dela.

public static void Hook(InSim insim, IS_NCN ncn)
{
    Console.WriteLine($"Nova conexão: {ncn.UName}");
}

O arquivo inteiro irá se assemelhar à esse:

packets/IS_NCN.cs
using InSimDotNet;
using InSimDotNet.Packets;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace insim
{
    public class IS_NCN
    {
        public static void Hook(InSim insim, IS_NCN ncn)
        {
            Console.WriteLine($"Nova conexão: {ncn.UName}");
        }
    }
}

O código acima não funcionará ainda, pois não injetamos ele ao componente principal do InSim.

Injetando o pacote ao InSim

Voltando ao arquivo inicial "Program.cs", vamos colocar o seguinte código:

insim.Bind<IS_NCN>(IS_NCN.Hook);

Ressaltando que o método .Bind serve para indicar ao InSimDotNet que estamos prontos para manipular o pacote escolhido.

⚠️

Você deve colocar o código acima ANTES do método insim.Initialize

Exemplo do código final:

Program.cs
namespace insim
{
    class Program
    {
        static void Main(string[] args)
        {
            InSim insim = new InSim();
 
            while (true) // Esse while true serve para manter o programa aberto.
            {
                if (!insim.IsConnected) // Essa comparação serve para verficar se o InSim já está conectado. Sem ela o seu InSim iria iniciar infinitas vezes.
                {
                    insim.Bind<IS_NCN>(IS_NCN.Hook);
 
                    insim.Initialize(new InSimSettings {
                        Host = "127.0.0.1",
                        Port = 29999,
                        Admin = "",
                    });
 
                    insim.Send("/msg Hello, InSim!");
                }
            }
        }
    }
}

Referências da API

Lista de propriedades retornadas pelo pacote.

UCID

Tipo: byte | número
Descrição: ID da conexão

UName

Tipo: string | texto
Descrição: Username do jogador

PName

Tipo: string | texto
Descrição: Nome do jogador

Admin

Tipo: bool | comparação
Descrição: Se o jogador está utilizando a senha de administrador

Total

Tipo: byte | número
Descrição: Total de jogadores dentro do servidor

Remote

Tipo: bool | comparação
Descrição: Se o jogador está conectado localmente ou remotamente