From d415b31dc0186d7b15381896752d3d0d5033417e Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 29 May 2023 16:56:31 +0200 Subject: [PATCH] Device network address improvements (#16934) --- Content.Server/DeviceNetwork/DeviceNet.cs | 5 ++++- Resources/Locale/en-US/devices/device-network.ftl | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Content.Server/DeviceNetwork/DeviceNet.cs b/Content.Server/DeviceNetwork/DeviceNet.cs index d4f67d2f79..c77d45c061 100644 --- a/Content.Server/DeviceNetwork/DeviceNet.cs +++ b/Content.Server/DeviceNetwork/DeviceNet.cs @@ -228,7 +228,10 @@ public sealed class DeviceNet prefix = string.IsNullOrWhiteSpace(prefix) ? null : Loc.GetString(prefix); string address; do - address = $"{prefix}{_random.Next():x}"; + { + var num = _random.Next(); + address = $"{prefix}{num >> 16:X4}-{num & 0xFFFF:X4}"; + } while (Devices.ContainsKey(address)); return address; diff --git a/Resources/Locale/en-US/devices/device-network.ftl b/Resources/Locale/en-US/devices/device-network.ftl index a4133bc984..9d8a9e91b8 100644 --- a/Resources/Locale/en-US/devices/device-network.ftl +++ b/Resources/Locale/en-US/devices/device-network.ftl @@ -21,14 +21,14 @@ device-frequency-prototype-name-surveillance-camera-general = General Cameras device-frequency-prototype-name-surveillance-camera-entertainment = Entertainment Cameras # prefixes for randomly generated device addresses -device-address-prefix-vent = Vnt- -device-address-prefix-scrubber = Scr- -device-address-prefix-sensor = Sns- +device-address-prefix-vent = VNT- +device-address-prefix-scrubber = SCR- +device-address-prefix-sensor = SNS- #PDAs and terminals -device-address-prefix-console = Cls- -device-address-prefix-fire-alarm = Fir- -device-address-prefix-air-alarm = Air- +device-address-prefix-console = CLS- +device-address-prefix-fire-alarm = FIR- +device-address-prefix-air-alarm = AIR- device-address-examine-message = The device's address is {$address}.