diff --git a/cmd/ws/eventhandler/event_handler.go b/cmd/ws/eventhandler/event_handler.go index 239c59c..db30680 100644 --- a/cmd/ws/eventhandler/event_handler.go +++ b/cmd/ws/eventhandler/event_handler.go @@ -32,7 +32,7 @@ func (eh *EventHandler) HandleEvent(ctx context.Context, event types.ESSEvent) { return } - if event.EventName == "Death" || event.EventName == "VehicleDestroy" { + if event.EventName == "Death" || event.EventName == "VehicleDestroy" || event.EventName == "FishScan" { go eh.HandleDeath(ctx, event) } else if event.EventName == "GainExperience" { go eh.HandleExperience(ctx, event) diff --git a/cmd/ws/wsmanager/event_names.go b/cmd/ws/wsmanager/event_names.go index 0ccc187..fd1f4e1 100644 --- a/cmd/ws/wsmanager/event_names.go +++ b/cmd/ws/wsmanager/event_names.go @@ -16,7 +16,7 @@ func getEventNames() []string { events := util.Map(experienceIDs, func(i int) string { return fmt.Sprintf("GainExperience_experience_id_%d", i) }) - events = append(events, "Death", "VehicleDestroy") + events = append(events, "Death", "VehicleDestroy", "FishScan") return events } diff --git a/cmd/ws/wsmanager/wsmanager.go b/cmd/ws/wsmanager/wsmanager.go index f1f8a51..3d9747c 100644 --- a/cmd/ws/wsmanager/wsmanager.go +++ b/cmd/ws/wsmanager/wsmanager.go @@ -85,7 +85,7 @@ func (wsm *WebsocketManager) Start() { log.Fatalln("wsm: read failed:", err) } - // log.Printf("raw event: %s", string(data)) + log.Printf("raw event: %s", string(data)) err = json.Unmarshal(data, &event) if err != nil { diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..72d155d --- /dev/null +++ b/default.nix @@ -0,0 +1,43 @@ +{ + pkgs ? import , + vendorHash ? "sha256-A5hZxo0zZ3w6qryV24PjYaKQatN2G2heyuee6QaU55M=", + name ? "saerro", +}: let + bin = binName: pkgs.buildGoModule { + inherit vendorHash name; + src = ./.; + subPackages = [ + "cmd/${binName}" + ]; + }; + mkContainer = binName: pkgs.dockerTools.buildImage { + name = "${name}/${binName}"; + tag = "latest"; + copyToRoot = [ + pkgs.dockerTools.caCertificates + ]; + config = { + Cmd = [ "${bin binName}/${binName}" ]; + }; + }; + mkBin = binName: pkgs.stdenvNoCC.mkDerivation { + name = binName; + src = bin binName; + buildPhase = '' + mkdir -p $out/bin + cp $src/bin/${binName} $out/bin/${binName} + ''; + }; +in { + + ws = mkContainer "ws"; + ws-bin = mkBin "ws"; + + pruner = mkContainer "pruner"; + pruner-bin = mkBin "pruner"; + + all = pkgs.buildGoModule { + inherit vendorHash name; + src = ./.; + }; +} \ No newline at end of file diff --git a/flake.nix b/flake.nix index 322fcd9..9742f4b 100644 --- a/flake.nix +++ b/flake.nix @@ -10,50 +10,7 @@ systems = [ "x86_64-linux" "aarch64-linux" ]; perSystem = { config, self', pkgs, lib, system, ... }: rec { devShells.default = import ./shell.nix { inherit pkgs; }; - - packages = let - vendorHash = "sha256-A5hZxo0zZ3w6qryV24PjYaKQatN2G2heyuee6QaU55M="; - isolateBinary = pkg: name: pkgs.stdenvNoCC.mkDerivation { - name = "saerro-${name}"; - version = "1.0.0"; - src = pkg; - installPhase = '' - mkdir -p $out/bin - cp $src/bin/${name} $out/bin/${name} - ''; - }; - in rec { - default = saerro; - saerro = pkgs.buildGoModule { - inherit vendorHash; - name = "saerro"; - src = ./.; - subPackages = [ - "cmd/ws" - "cmd/pruner" - ]; - }; - container = pkgs.dockerTools.buildImage { - name = "ps2live/saerro"; - tag = "latest"; - copyToRoot = [ - pkgs.dockerTools.caCertificates - ]; - config = { - Cmd = [ "${saerro}/bin/ws" ]; - }; - }; - pruner = pkgs.dockerTools.buildImage { - name = "ps2live/saerro/pruner"; - tag = "latest"; - copyToRoot = [ - pkgs.dockerTools.caCertificates - ]; - config = { - Cmd = [ "${saerro}/bin/pruner" ]; - }; - }; - }; + packages = import ./default.nix { inherit pkgs; }; }; }; } \ No newline at end of file diff --git a/types/payload.go b/types/payload.go index 9bb96a0..ccabe25 100644 --- a/types/payload.go +++ b/types/payload.go @@ -25,4 +25,8 @@ type ESSEvent struct { ExperienceID uint32 `json:"experience_id,string"` LoadoutID uint16 `json:"loadout_id,string"` + + // On FishScan + + FishID uint32 `json:"fish_id,string"` }