Confirmedusers
637
edits
(Add a link to https://github.com/bluelightning32/vs-protocol) |
m (Updated to version 1.19.3. Fixed command setup to use new API.) |
||
Line 1: | Line 1: | ||
__FORCETOC__ | __FORCETOC__ | ||
{{GameVersion|1. | {{GameVersion|1.19.3}} | ||
<languages/><translate> | <languages/><translate> | ||
<!--T:1--> | <!--T:1--> | ||
Line 118: | Line 118: | ||
; | ; | ||
api. | api.ChatCommands.Create("nwtest") | ||
.WithDescription("Send a test network message") | |||
.RequiresPrivilege(Privilege.controlserver) | |||
.HandleWith(new OnCommandDelegate(OnNwTestCmd)); | |||
} | } | ||
#endregion | #endregion | ||
Line 138: | Line 141: | ||
public override void StartServerSide(ICoreServerAPI api)... | public override void StartServerSide(ICoreServerAPI api)... | ||
private | private TextCommandResult OnNwTestCmd(TextCommandCallingArgs args) | ||
{ | { | ||
serverChannel.BroadcastPacket(new NetworkApiTestMessage() | serverChannel.BroadcastPacket(new NetworkApiTestMessage() | ||
Line 144: | Line 147: | ||
message = "Hello World!", | message = "Hello World!", | ||
}); | }); | ||
return TextCommandResult.Success(); | |||
} | } | ||
#endregion | #endregion | ||
Line 262: | Line 266: | ||
public class NetworkApiTest : ModSystem | public class NetworkApiTest : ModSystem | ||
{ | { | ||
#region Server | #region Server | ||
IServerNetworkChannel serverChannel; | IServerNetworkChannel serverChannel; | ||
Line 305: | Line 281: | ||
; | ; | ||
api. | api.ChatCommands.Create("nwtest") | ||
.WithDescription("Send a test network message") | |||
.RequiresPrivilege(Privilege.controlserver) | |||
.HandleWith(new OnCommandDelegate(OnNwTestCmd)); | |||
} | } | ||
private | private TextCommandResult OnNwTestCmd(TextCommandCallingArgs args) | ||
{ | { | ||
serverChannel.BroadcastPacket(new NetworkApiTestMessage() | serverChannel.BroadcastPacket(new NetworkApiTestMessage() | ||
Line 314: | Line 293: | ||
message = "Hello World!", | message = "Hello World!", | ||
}); | }); | ||
return TextCommandResult.Success(); | |||
} | } | ||
Line 325: | Line 305: | ||
} | } | ||
#endregion | |||
#region Client | |||
IClientNetworkChannel clientChannel; | |||
ICoreClientAPI clientApi; | |||
public override void StartClientSide(ICoreClientAPI api) | |||
{ | |||
clientApi = api; | |||
clientChannel = | |||
api.Network.RegisterChannel("networkapitest") | |||
.RegisterMessageType(typeof(NetworkApiTestMessage)) | |||
.RegisterMessageType(typeof(NetworkApiTestResponse)) | |||
.SetMessageHandler<NetworkApiTestMessage>(OnServerMessage) | |||
; | |||
} | |||
private void OnServerMessage(NetworkApiTestMessage networkMessage) | |||
{ | |||
clientApi.ShowChatMessage("Received following message from server: " + networkMessage.message); | |||
clientApi.ShowChatMessage("Sending response."); | |||
clientChannel.SendPacket(new NetworkApiTestResponse() | |||
{ | |||
response = "RE: Hello World!" | |||
}); | |||
} | |||
#endregion | #endregion | ||
} | } | ||
Line 334: | Line 340: | ||
Let's run the mod now! Once you're ingame, try entering <code>/nwtest</code>. You should be met with an initial "Hello World!" message as well as a confirmation message that the server received the response from the Client! | Let's run the mod now! Once you're ingame, try entering <code>/nwtest</code>. You should be met with an initial "Hello World!" message as well as a confirmation message that the server received the response from the Client! | ||
{{Navbox/modding|Vintage Story}} | {{Navbox/modding|Vintage Story}} |