jsgr-mmo/src/CommandHandlers/CounterHandler.cs
Hipposgrumm 158ac4ee21
Support for Math Blaster Ambassador Funzones (#5)
Added ambassador support (for Math Blaster).
Tons of config options too.

* Moved ambassador room controlling to seperate class.
* More changes to appease the Pull Request.
2024-12-30 10:54:53 +01:00

27 lines
1.1 KiB
C#

using sodoffmmo.Attributes;
using sodoffmmo.Core;
using sodoffmmo.Data;
namespace sodoffmmo.CommandHandlers;
[ExtensionCommandHandler("SCE")]
class CounterEventHandler : CommandHandler {
public override Task Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"SCE","p":{"NAME":"COUNT"},"r":-1}}
if (client.Room is SpecialRoom room) {
string name = receivedObject.Get<NetworkObject>("p").Get<string>("NAME");
if (name == "COUNT" || name == "COUNT2" || name == "COUNT3") {
int index = name switch {
"COUNT" => 0,
"COUNT2" => 1,
"COUNT3" => 2
};
room.ambassadorGauges[index] = Math.Min(100, room.ambassadorGauges[index]+(1/Configuration.ServerConfiguration.AmbassadorGaugePlayers));
room.Send(Utils.VlNetworkPacket(room.GetRoomVars(), client.Room.Id));
} else {
Console.WriteLine($"Invalid attempt to increment room var {name} in {room.Name}.");
}
}
return Task.CompletedTask;
}
}