Table of Contents

Struct PluginPeerCommand

Namespace
AcDream.Plugin.Abstractions
Assembly
AcDream.Plugin.Abstractions.dll

One line another client on this computer asked the clients around it to run, as this client reads it back. It is a command line exactly as a player would have typed it, and nothing about it is authoritative: it is what that client asked for, not something the game server said.

public readonly record struct PluginPeerCommand : IEquatable<PluginPeerCommand>
Implements
Inherited Members

Constructors

PluginPeerCommand(long, uint, uint, IReadOnlyList<string>, string, DateTimeOffset)

One line another client on this computer asked the clients around it to run, as this client reads it back. It is a command line exactly as a player would have typed it, and nothing about it is authoritative: it is what that client asked for, not something the game server said.

public PluginPeerCommand(long Sequence, uint ClientId, uint SenderObjectId, IReadOnlyList<string> Tags, string Line, DateTimeOffset SentAt)

Parameters

Sequence long

A number that only grows, in the order this client first read these lines. Hand the highest one back to the next capture to pick up where you left off. Numbers can skip: a line this client cannot use -- one aimed at labels it does not answer to, or one it cannot make sense of -- is counted and then dropped.

ClientId uint

The publishing client instance, matching ClientId.

SenderObjectId uint

The character that asked for it. Never this client's own character: a client does not read back its own broadcasts.

Tags IReadOnlyList<string>

The labels the sender aimed the line at, or an empty list when it was aimed at every client. A line only ever reaches a client whose own labels include one of these.

Line string

The command line, as the sender wrote it.

SentAt DateTimeOffset

When the sending client said it asked for the line, by that client's clock.

Properties

ClientId

The publishing client instance, matching ClientId.

public uint ClientId { get; init; }

Property Value

uint

IsRemote

True when the line was handed to this client by a plugin through ImportRemoteCommand(uint, string, IReadOnlyList<string>, int) rather than read from another client on this computer.

public bool IsRemote { get; init; }

Property Value

bool

Line

The command line, as the sender wrote it.

public string Line { get; init; }

Property Value

string

SenderObjectId

The character that asked for it. Never this client's own character: a client does not read back its own broadcasts.

public uint SenderObjectId { get; init; }

Property Value

uint

SentAt

When the sending client said it asked for the line, by that client's clock.

public DateTimeOffset SentAt { get; init; }

Property Value

DateTimeOffset

Sequence

A number that only grows, in the order this client first read these lines. Hand the highest one back to the next capture to pick up where you left off. Numbers can skip: a line this client cannot use -- one aimed at labels it does not answer to, or one it cannot make sense of -- is counted and then dropped.

public long Sequence { get; init; }

Property Value

long

Tags

The labels the sender aimed the line at, or an empty list when it was aimed at every client. A line only ever reaches a client whose own labels include one of these.

public IReadOnlyList<string> Tags { get; init; }

Property Value

IReadOnlyList<string>