diff --git a/BepInEx/config/BepInEx.cfg b/BepInEx/config/BepInEx.cfg index 388f654..98ee2fa 100644 --- a/BepInEx/config/BepInEx.cfg +++ b/BepInEx/config/BepInEx.cfg @@ -8,12 +8,6 @@ EnableAssemblyCache = true [Chainloader] -## If enabled, hides BepInEx Manager GameObject from Unity. -## This can fix loading issues in some games that attempt to prevent BepInEx from being loaded. -## Use this only if you know what this option means, as it can affect functionality of some older plugins. -## -# Setting type: Boolean -# Default value: false HideManagerGameObject = false [Harmony.Logger] @@ -28,16 +22,8 @@ LogChannels = Warn, Error [Logging] -## Enables showing unity log messages in the BepInEx logging system. -# Setting type: Boolean -# Default value: true UnityLogListening = true -## If enabled, writes Standard Output messages to Unity log -## NOTE: By default, Unity does so automatically. Only use this option if no console messages are visible in Unity log -## -# Setting type: Boolean -# Default value: false LogConsoleToUnityLog = false [Logging.Console] @@ -76,26 +62,12 @@ LogLevels = Fatal, Error, Warning, Message, Info [Logging.Disk] -## Include unity log messages in log file output. -# Setting type: Boolean -# Default value: false WriteUnityLog = false -## Appends to the log file instead of overwriting, on game startup. -# Setting type: Boolean -# Default value: false AppendLog = false -## Enables writing log messages to disk. -# Setting type: Boolean -# Default value: true Enabled = true -## Which log leves are saved to the disk log output. -# Setting type: LogLevel -# Default value: Fatal, Error, Warning, Message, Info -# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All -# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) LogLevels = Fatal, Error, Warning, Message, Info [Preloader] diff --git a/BepInEx/config/com.fika.core.cfg b/BepInEx/config/com.fika.core.cfg new file mode 100644 index 0000000..6c579e9 --- /dev/null +++ b/BepInEx/config/com.fika.core.cfg @@ -0,0 +1,460 @@ +## Settings file was created by plugin Fika.Core v1.2.8 +## Plugin GUID: com.fika.core + +[Advanced] + +## Show official version instead of Fika version. +# Setting type: Boolean +# Default value: false +Show Official Version = false + +## Enables developer features +# Setting type: Boolean +# Default value: false +Developer Mode = false + +[Coop] + +## Always tick the box to use the Headless Client if available +# Setting type: Boolean +# Default value: false +Auto Use Headless = false + +## Enable custom notifications when a player dies, extracts, kills a boss, etc. +# Setting type: Boolean +# Default value: true +Show Feed = true + +## Automatically extracts after the extraction countdown. As a host, this will only work if there are no clients connected. +# Setting type: Boolean +# Default value: false +Auto Extract = true + +## Whether to show the extract message after dying/extracting. +# Setting type: Boolean +# Default value: true +Show Extract Message = true + +## The key used to extract from the raid. +# Setting type: KeyboardShortcut +# Default value: F8 +Extract Key = F8 + +## Toggle to enable chat in game. Cannot be change mid raid. +# Setting type: Boolean +# Default value: false +Enable Chat = false + +## The key used to open the chat window. +# Setting type: KeyboardShortcut +# Default value: RightControl +Chat Key = RightControl + +## If the online players menu should be shown in the menu. +# Setting type: Boolean +# Default value: true +Enable Online Players = true + +## The scale of the window that displays online players. Only change if it looks out of proportion. +## +## Requires a refresh of the main menu to take effect. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 0.5 to 1.5 +Online Players Scale = 1 + +[Coop | Debug] + +## Button used to toggle free camera. +# Setting type: KeyboardShortcut +# Default value: F9 +Free Camera Button = F9 + +## If we should allow spectating bots if all players are dead/extracted. +# Setting type: Boolean +# Default value: true +Allow Spectating Bots = true + +## If free camera should use AZERTY keys for input. +# Setting type: Boolean +# Default value: false +AZERTY Mode = false + +## If the free camera should move only along the vertical axis like a drone. +# Setting type: Boolean +# Default value: false +Drone Mode = false + +## Keybind Overlay +# Setting type: Boolean +# Default value: true +Keybind Overlay = true + +[Coop | Name Plates] + +## If name plates should be shown above teammates. +# Setting type: Boolean +# Default value: true +Show Player Name Plates = false + +## Completely hides the health bar. +# Setting type: Boolean +# Default value: false +Hide Health Bar = false + +## Shows health in % amount instead of using the bar. +# Setting type: Boolean +# Default value: false +Show HP% instead of bar = false + +## If status effects should be displayed below the health bar. +# Setting type: Boolean +# Default value: true +Show Effects = true + +## Shows the player faction icon next to the HP bar. +# Setting type: Boolean +# Default value: true +Show Player Faction Icon = true + +## Hides the name plate when viewing through PiP scopes. +# Setting type: Boolean +# Default value: true +Hide Name Plate in Optic = true + +## If name plate location should be displayed using the PiP optic camera. +# Setting type: Boolean +# Default value: true +Name Plates Use Optic Zoom = true + +## Decreases the opacity of the name plates when not looking at a player. +# Setting type: Boolean +# Default value: true +Decrease Opacity In Peripheral = true + +## Size of the name plates. +# Setting type: Single +# Default value: 0.22 +# Acceptable value range: From 0.05 to 1 +Name Plate Scale = 0.22 + +## The opacity of the name plates when aiming down sights. +# Setting type: Single +# Default value: 0.75 +# Acceptable value range: From 0.1 to 1 +Opacity in ADS = 0.75 + +## The maximum distance at which name plates will become invisible, starts to fade at half the input value. +# Setting type: Single +# Default value: 500 +# Acceptable value range: From 10 to 1000 +Max Distance to Show = 500 + +## The minimum opacity of the name plates. +# Setting type: Single +# Default value: 0.1 +# Acceptable value range: From 0 to 1 +Minimum Opacity = 0.1 + +## The minimum scale of the name plates. +# Setting type: Single +# Default value: 0.01 +# Acceptable value range: From 0 to 1 +Minimum Name Plate Scale = 0.01 + +## Use occlusion to hide the name plate when the player is out of sight. +# Setting type: Boolean +# Default value: false +Use Occlusion = false + +## The color displayed when at full health. This will gradually move towards 'Low Health Color' when HP decreases. +# Setting type: Color +# Default value: 00FF00FF +Full Health Color = 00FF00FF + +## The color displayed when at low health. This will gradually move towards 'Full Health Color' when HP increases. +# Setting type: Color +# Default value: FF0000FF +Low Health Color = FF0000FF + +## The color of the text above the name plate. +# Setting type: Color +# Default value: FFFFFFFF +Name Plate Text Color = FFFFFFFF + +[Coop | Pinging] + +## Toggle Ping System. If enabled you can receive and send pings by pressing the ping key. +# Setting type: Boolean +# Default value: true +Ping System = true + +## Button used to send pings. +# Setting type: KeyboardShortcut +# Default value: Semicolon +Ping Button = Semicolon + +## The color of your pings when displayed for other players. +# Setting type: Color +# Default value: FFFFFFFF +Ping Color = FFFFFFFF + +## The multiplier of the ping size. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 0.1 to 2 +Ping Size = 1 + +## How long pings should be displayed. +# Setting type: Int32 +# Default value: 3 +# Acceptable value range: From 2 to 10 +Ping Time = 3 + +## Plays the pointing animation automatically when pinging. Can interfere with gameplay. +# Setting type: Boolean +# Default value: false +Play Ping Animation = false + +## If pings should be displayed while aiming down an optics scope. +# Setting type: Boolean +# Default value: false +Show Ping During Optics = false + +## If ping location should be displayed using the PiP optic camera. +# Setting type: Boolean +# Default value: true +Ping Use Optic Zoom = true + +## If ping size should scale with distance from player. +# Setting type: Boolean +# Default value: true +Ping Scale With Distance = true + +## The minimum opacity of pings when looking straight at them. +# Setting type: Single +# Default value: 0.05 +# Acceptable value range: From 0 to 0.5 +Ping Minimum Opacity = 0.05 + +## Shows the range from your player to the ping if enabled. +# Setting type: Boolean +# Default value: false +Show Ping Range = false + +## The audio that plays on ping +# Setting type: EPingSound +# Default value: SubQuestComplete +# Acceptable values: SubQuestComplete, InsuranceInsured, ButtonClick, ButtonHover, InsuranceItemInsured, MenuButtonBottom, ErrorMessage, InspectWindow, InspectWindowClose, MenuEscape +Ping Sound = SubQuestComplete + +[Coop | Quest Sharing] + +## Which quest types to receive and send. PlaceBeacon is both markers and items. +# Setting type: EQuestSharingTypes +# Default value: All +# Acceptable values: Kills, Item, Location, PlaceBeacon, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +Quest Types = 0 + +## If a notification should be shown when quest progress is shared with out. +# Setting type: Boolean +# Default value: true +Show Notifications = true + +## Enables easy kill conditions. When this is used, any time a friendly player kills something, it treats it as if you killed it for your quests as long as all conditions are met. +## This can be inconsistent and does not always work. +# Setting type: Boolean +# Default value: false +Easy Kill Conditions = false + +## If enabled you will receive ½ of the experience when a friendly player kills an enemy (not bosses). +# Setting type: Boolean +# Default value: false +Shared Kill Experience = false + +## If enabled you will receive ½ of the experience when a friendly player kills a boss. +# Setting type: Boolean +# Default value: false +Shared Boss Experience = false + +[Gameplay] + +## Disables metabolism on bots, preventing them from dying from loss of energy/hydration during long raids. +# Setting type: Boolean +# Default value: false +Disable Bot Metabolism = false + +[Hidden] + +## Last loaded version of Fika +# Setting type: String +# Default value: 0 +Last Version = 1.2.8 + +[Network] + +## Use NativeSockets for gameplay traffic. This uses direct socket calls for send/receive to drastically increase speed and reduce GC pressure. Only for Windows/Linux and might not always work. +# Setting type: Boolean +# Default value: true +Native Sockets = true + +## Forces the server when hosting to use this IP when broadcasting to the backend instead of automatically trying to fetch it. Leave empty to disable. +# Setting type: String +# Default value: +Force IP = + +## Forces the server when hosting to use this local adapter when starting the server. Useful if you are hosting on a VPN. +# Setting type: String +# Default value: 0.0.0.0 +# Acceptable values: Disabled, 0.0.0.0, 23.137.105.10 +Force Bind IP = 0.0.0.0 + +## Port to use for UDP gameplay packets. +# Setting type: Int32 +# Default value: 25565 +# Acceptable value range: From 0 to 65535 +UDP Port = 25565 + +## Attempt to open ports using UPnP. Useful if you cannot open ports yourself but the router supports UPnP. +# Setting type: Boolean +# Default value: false +Use UPnP = false + +## Use NAT punching when hosting a raid. Only works with fullcone NAT type routers and requires NatPunchServer to be running on the SPT server. UPnP, Force IP and Force Bind IP are disabled with this mode. +# Setting type: Boolean +# Default value: false +Use NAT Punching = false + +## How long it takes for a connection to be considered dropped if no packets are received. +# Setting type: Int32 +# Default value: 30 +# Acceptable value range: From 5 to 60 +Connection Timeout = 30 + +## How often per second movement packets should be sent (lower = less bandwidth used, slight more delay during interpolation) +## This only affects the host and will be synchronized to all clients. +## Amount is per second: +## Low = 10 +## Medium = 20 +## High = 30 +## +## Recommended to leave at no higher than Medium as the gains are insignificant after. +# Setting type: ESendRate +# Default value: Medium +# Acceptable values: Low, Medium, High +Send Rate = Medium + +## If VOIP will be enabled when you are hosting. +# Setting type: Boolean +# Default value: false +Allow VOIP = false + +[Performance] + +## Dynamic AI +# Setting type: Boolean +# Default value: false +Dynamic AI = false + +## The range at which AI will be disabled dynamically. +# Setting type: Single +# Default value: 100 +# Acceptable value range: From 150 to 1000 +Dynamic AI Range = 150 + +## How often DynamicAI should scan for the range from all players. +# Setting type: EDynamicAIRates +# Default value: Medium +# Acceptable values: Low, Medium, High +Dynamic AI Rate = Medium + +## Whether Dynamic AI should ignore sniper scavs. +# Setting type: Boolean +# Default value: true +Ignore Snipers = true + +## If a custom garbage collector should be used to alleviate issues with memory usage. +## WARNING: Experimental, might have no effect at all on your system. +# Setting type: Boolean +# Default value: false +Use Fika GC = false + +[Performance | Max Bots] + +## Enforces spawn limits when spawning bots, making sure to not go over the vanilla limits. This mainly takes affect when using spawn mods or anything that modifies the bot limits. Will not block spawns of special bots like bosses. +# Setting type: Boolean +# Default value: false +Enforced Spawn Limits = false + +## When enforcing spawn limits, should the furthest bot be de-spawned instead of blocking the spawn. This will make for a much more active raid on a lower Max Bots count. Helpful for weaker PCs. Will only despawn pmcs and scavs. If you don't run a dynamic spawn mod, this will however quickly exhaust the spawns on the map, making the raid very dead instead. +# Setting type: Boolean +# Default value: false +Despawn Furthest = false + +## The minimum distance to despawn a bot. +# Setting type: Single +# Default value: 200 +# Acceptable value range: From 50 to 3000 +Despawn Minimum Distance = 200 + +## Max amount of bots that can be active at the same time on Factory. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Factory = 0 + +## Max amount of bots that can be active at the same time on Customs. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Customs = 0 + +## Max amount of bots that can be active at the same time on Interchange. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Interchange = 0 + +## Max amount of bots that can be active at the same time on Reserve. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Reserve = 0 + +## Max amount of bots that can be active at the same time on Woods. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Woods = 0 + +## Max amount of bots that can be active at the same time on Shoreline. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Shoreline = 0 + +## Max amount of bots that can be active at the same time on Streets of Tarkov. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Streets of Tarkov = 0 + +## Max amount of bots that can be active at the same time on Ground Zero. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Ground Zero = 0 + +## Max amount of bots that can be active at the same time on The Lab. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Labs = 0 + +## Max amount of bots that can be active at the same time on Lighthouse. Useful if you have a weaker PC. Set to 0 to use vanilla limits. Cannot be changed during a raid. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 50 +Max Bots Lighthouse = 0 + diff --git a/BepInEx/config/com.fika.headless.cfg b/BepInEx/config/com.fika.headless.cfg new file mode 100644 index 0000000..8a0e2b8 --- /dev/null +++ b/BepInEx/config/com.fika.headless.cfg @@ -0,0 +1,32 @@ +## Settings file was created by plugin Fika.Headless v1.3.7 +## Plugin GUID: com.fika.headless + +[Headless] + +## How often the server should update (frame cap / tick rate). Only works if your machine can actually reach the selected setting +# Setting type: Int32 +# Default value: 60 +# Acceptable value range: From 30 to 120 +Update Rate = 60 + +## How often in minutes the RAM cleaner should run outside of raids +# Setting type: Int32 +# Default value: 15 +# Acceptable value range: From 5 to 30 +RAM Clean Interval = 15 + +## Should the headless host allow bots to sleep? (BSG bot sleeping logic) +# Setting type: Boolean +# Default value: false +Bot sleeping = false + +## If the headless plugin should run patches to disable various graphical elements +# Setting type: Boolean +# Default value: true +Destroy Graphics = true + +## If the headless plugin should hook scene loading to disable unnecessary renderers as well as unloading all materials (Requires 'Destroy Graphics' to be enabled) +# Setting type: Boolean +# Default value: true +Destroy Renderers = true + diff --git a/BepInEx/plugins/Fika.Headless.dll b/BepInEx/plugins/Fika.Headless.dll new file mode 100644 index 0000000..1699394 Binary files /dev/null and b/BepInEx/plugins/Fika.Headless.dll differ diff --git a/BepInEx/plugins/spt/ConfigurationManager.dll b/BepInEx/plugins/spt/ConfigurationManager.dll index 0fd4748..0081f78 100644 Binary files a/BepInEx/plugins/spt/ConfigurationManager.dll and b/BepInEx/plugins/spt/ConfigurationManager.dll differ diff --git a/BepInEx/plugins/spt/spt-common.dll b/BepInEx/plugins/spt/spt-common.dll index 206e066..a8be8b7 100644 Binary files a/BepInEx/plugins/spt/spt-common.dll and b/BepInEx/plugins/spt/spt-common.dll differ diff --git a/BepInEx/plugins/spt/spt-core.dll b/BepInEx/plugins/spt/spt-core.dll index 2cea5b9..a648f12 100644 Binary files a/BepInEx/plugins/spt/spt-core.dll and b/BepInEx/plugins/spt/spt-core.dll differ diff --git a/BepInEx/plugins/spt/spt-custom.dll b/BepInEx/plugins/spt/spt-custom.dll index 6c4ffc1..dcf15c4 100644 Binary files a/BepInEx/plugins/spt/spt-custom.dll and b/BepInEx/plugins/spt/spt-custom.dll differ diff --git a/BepInEx/plugins/spt/spt-debugging.dll b/BepInEx/plugins/spt/spt-debugging.dll index 1b045d9..17def3c 100644 Binary files a/BepInEx/plugins/spt/spt-debugging.dll and b/BepInEx/plugins/spt/spt-debugging.dll differ diff --git a/BepInEx/plugins/spt/spt-reflection.dll b/BepInEx/plugins/spt/spt-reflection.dll index 26830ab..fc4ffe6 100644 Binary files a/BepInEx/plugins/spt/spt-reflection.dll and b/BepInEx/plugins/spt/spt-reflection.dll differ diff --git a/BepInEx/plugins/spt/spt-singleplayer.dll b/BepInEx/plugins/spt/spt-singleplayer.dll index d3a635f..1be075a 100644 Binary files a/BepInEx/plugins/spt/spt-singleplayer.dll and b/BepInEx/plugins/spt/spt-singleplayer.dll differ diff --git a/SPT_Data/Server/configs/backup.json b/SPT_Data/Server/configs/backup.json index 1837068..4a55415 100644 --- a/SPT_Data/Server/configs/backup.json +++ b/SPT_Data/Server/configs/backup.json @@ -1,5 +1,5 @@ { - "enabled": false, + "enabled": true, "maxBackups": 15, "directory": "./user/profiles/backups", "backupInterval": { diff --git a/SPT_Data/Server/configs/http.json b/SPT_Data/Server/configs/http.json index e79474f..633a524 100644 --- a/SPT_Data/Server/configs/http.json +++ b/SPT_Data/Server/configs/http.json @@ -1,9 +1,9 @@ { - "backendIp": "23.137.105.59", - "backendPort": 6969, - "ip": "0.0.0.0", - "logRequests": true, + "ip": "127.0.0.1", "port": 6969, - "serverImagePathOverride": {}, - "webSocketPingDelayMs": 90000 -} \ No newline at end of file + "backendIp": "127.0.0.1", + "backendPort": 6969, + "webSocketPingDelayMs": 90000, + "logRequests": true, + "serverImagePathOverride": {} +} diff --git a/user/mods/[SVM] Server Value Modifier/Disclaimer.url b/user/mods/[SVM] Server Value Modifier/Disclaimer.url new file mode 100644 index 0000000..78491a0 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/Disclaimer.url @@ -0,0 +1,5 @@ +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,11 +[InternetShortcut] +IDList= +URL=https://hub.sp-tarkov.com/advertising-disclaimer/ diff --git a/user/mods/[SVM] Server Value Modifier/Greed.exe b/user/mods/[SVM] Server Value Modifier/Greed.exe new file mode 100644 index 0000000..9dbbf0e Binary files /dev/null and b/user/mods/[SVM] Server Value Modifier/Greed.exe differ diff --git a/user/mods/[SVM] Server Value Modifier/LICENSE b/user/mods/[SVM] Server Value Modifier/LICENSE new file mode 100644 index 0000000..8d21db0 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/LICENSE @@ -0,0 +1,26 @@ +Personal Use Source License (PUSL) +Version 1.0 + +Copyright © 2025, GhostFenixx + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), +to use the Software for personal, non-commercial purposes only, subject to the following conditions: + + Usage Rights: + The Software may only be used for personal purposes. Commercial use of the Software is strictly prohibited without prior written permission from the author. + + Source Code Access: + The source code of the Software is made available for viewing, but modifications to the Software are restricted as follows: + You may modify the Software for personal use only. + You are not permitted to distribute or share any modified versions of the Software in any form. + + Redistribution: + You may not redistribute the Software, whether in its original or modified form, without obtaining explicit permission from the copyright holder. + + Non-Commercial Use: + This Software is provided for non-commercial use only. + Any use of the Software for commercial purposes, including but not limited to commercial distribution, is prohibited without a commercial license agreement obtained from the copyright holder. + + No Warranty: + The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. + In no event shall the author or copyright holder be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the Software or the use or other dealings in the Software \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/Loader/loader.json b/user/mods/[SVM] Server Value Modifier/Loader/loader.json new file mode 100644 index 0000000..0523b85 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/Loader/loader.json @@ -0,0 +1,3 @@ +{ +"CurrentlySelectedPreset":"test" +} \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/Presets/Noname.json b/user/mods/[SVM] Server Value Modifier/Presets/Noname.json new file mode 100644 index 0000000..e034a2b --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/Presets/Noname.json @@ -0,0 +1,894 @@ +{ + "PresetNotes": "", + "Items": { + "ExamineKeys": false, + "AddSignalPistolToSpec": false, + "WeaponHeatOff": false, + "SMGToHolster": false, + "PistolToMain": false, + "AllExaminedItems": false, + "EquipRigsWithArmors": false, + "RemoveSecureContainerFilters": false, + "MisfireChance": 1, + "FragmentMult": 1, + "HeatFactor": 1, + "ExamineTime": 1, + "MalfunctChanceMult": 1, + "WeightChanger": 1, + "ItemPriceMult": 1, + "EnableCurrency": false, + "RubStack": 500000, + "DollarStack": 50000, + "GPStack": 20, + "EuroStack": 50000, + "AmmoLoadSpeed": 1, + "LootExp": 1, + "EnableItems": false, + "ExamineExp": 1, + "AmmoStacks": { + "MarksmanRound": 40, + "RifleRound": 60, + "ShotgunRound": 20, + "PistolRound": 50 + }, + "AmmoSwitch": false, + "EnableKeys": false, + "RemoveRaidRestr": false, + "RemoveBackpacksRestrictions": false, + "AvoidSingleKeys": false, + "AvoidMarkedKeys": false, + "AvoidResidential": false, + "AvoidOddKeys": false, + "KeyUseMult": 1, + "KeycardUseMult": 1, + "KeyDurabilityThreshold": 40, + "IDChanger": false, + "NoGearPenalty": false, + "IDDefault": "", + "IDParent": "", + "IDFilter": "", + "IDPrice": "", + "InfiniteKeys": false, + "InfiniteKeycards": false, + "RaidDrop": false + }, + "Hideout": { + "EnableStash": false, + "Stash": { + "StashTUE": 72, + "StashLvl4": 68, + "StashLvl3": 50, + "StashLvl2": 40, + "StashLvl1": 30 + }, + "Regeneration": { + "OfflineRegen": false, + "HealthRegen": 1, + "HideoutHealth": false, + "HideoutEnergy": false, + "HideoutHydration": false, + "HydrationRegen": 1, + "EnergyRegen": 1 + }, + "WaterFilterTime": 325, + "BitcoinTime": 2416, + "MaxBitcoins": 3, + "NoFuelMult": 1, + "ScavCasePrice": 1, + "ScavCaseTime": 1, + "HideoutConstMult": 1, + "HideoutProdMult": 1, + "WaterFilterRate": 66, + "GPUBoostRate": 1, + "AirFilterRate": 1, + "CultistTime": 1, + "CultistMaxRewards": 5, + "RemoveConstructionsRequirements": false, + "RemoveConstructionsFIRRequirements": false, + "RemoveSkillRequirements": false, + "RemoveTraderLevelRequirements": false, + "EnableHideout": false, + "FuelConsumptionRate": 1 + }, + "Traders": { + "Fence": { + "EnableFence": false, + "ArmorDurability_Max": 60, + "GunDurability_Max": 60, + "ArmorDurability_Min": 35, + "GunDurability_Min": 35, + "PriceMult": 1.2, + "PremiumAmountOnSale": 50, + "PresetCount": 5, + "StockTime_Min": 50, + "StockTime_Max": 150, + "AmountOnSale": 140, + "PresetMult": 2, + "Blacklist": "" + }, + "RemoveTradeLimits": false, + "QuestRedeemDefault": 48, + "QuestRedeemUnheard": 72, + "TraderMarkup": { + "Ragman": 62, + "Peacekeeper": 45, + "Fence": 40, + "Prapor": 50, + "Jaeger": 60, + "Ref": 56, + "Mechanic": 56, + "Skier": 49, + "Therapist": 63 + }, + "TraderSell": { + "Ragman": 1, + "Peacekeeper": 1, + "Prapor": 1, + "Jaeger": 1, + "Mechanic": 1, + "Skier": 1, + "Ref": 1, + "Therapist": 1 + }, + "MinDurabSell": 60, + "RemoveTimeCondition": false, + "AllQuestsAvailable": false, + "RemoveBarterOffers": false, + "RemoveCurrencyOffers": false, + "IncreaseAssort": false, + "UnlockQuestAssort": false, + "EnableTraders": false, + "FIRRestrictsQuests": false, + "TradersLvl4": false, + "FIRTrade": false, + "UnlockJaeger": false, + "UnlockRef": false + }, + "Loot": { + "Airdrops": { + "Mixed": { + "ArmorMin": 1, + "ArmorMax": 5, + "BarterMin": 15, + "BarterMax": 35, + "PresetMin": 3, + "PresetMax": 5, + "CratesMin": 1, + "CratesMax": 2 + }, + "Medical": { + "ArmorMin": 0, + "ArmorMax": 0, + "BarterMin": 25, + "BarterMax": 45, + "PresetMin": 0, + "PresetMax": 0, + "CratesMin": 0, + "CratesMax": 0 + }, + "Barter": { + "ArmorMin": 0, + "ArmorMax": 0, + "BarterMin": 20, + "BarterMax": 35, + "PresetMin": 0, + "PresetMax": 0, + "CratesMin": 0, + "CratesMax": 0 + }, + "Weapon": { + "ArmorMin": 3, + "ArmorMax": 6, + "BarterMin": 11, + "BarterMax": 22, + "PresetMin": 6, + "PresetMax": 8, + "CratesMin": 0, + "CratesMax": 2 + }, + "Sandbox_air": 13, + "Streets_air": 13, + "AirtimeMin": 1, + "AirtimeMax": 5, + "Lighthouse_air": 20, + "Bigmap_air": 20, + "Interchange_air": 20, + "Shoreline_air": 20, + "Reserve_air": 10, + "Woods_air": 25 + }, + "EnableLoot": false, + "Locations": { + "Streets": { + "Loose": 3, + "Container": 1 + }, + "Sandbox": { + "Loose": 2.8, + "Container": 1 + }, + "SandboxHard": { + "Loose": 2.8, + "Container": 1 + }, + "Lighthouse": { + "Loose": 2.8, + "Container": 1 + }, + "Bigmap": { + "Loose": 2.5, + "Container": 1 + }, + "Interchange": { + "Loose": 2.8, + "Container": 1 + }, + "FactoryDay": { + "Loose": 3.5, + "Container": 1 + }, + "Laboratory": { + "Loose": 2.8, + "Container": 1 + }, + "Shoreline": { + "Loose": 3.7, + "Container": 1 + }, + "Reserve": { + "Loose": 2.9, + "Container": 1 + }, + "Woods": { + "Loose": 1.9, + "Container": 1 + }, + "FactoryNight": { + "Loose": 3.5, + "Container": 1 + }, + "AllContainers": false + } + }, + "Player": { + "EnableFatigue": false, + "PMCStats": { + "MaxHydration": 100, + "MaxEnergy": 100 + }, + "CharXP": { + "ScavKill": 80, + "ScavHMult": 1.1, + "PMCKill": 175, + "PMCHMult": 1.2 + }, + "RaidMult": { + "MIA": 1, + "Runner": 0.5, + "Survived": 1.3, + "Killed": 1 + }, + "EnableStats": false, + "Skills": { + "SkillFatigueReset": 200, + "SkillFreshEffect": 1.3, + "SkillFPoints": 1, + "SkillPointsBeforeFatigue": 1, + "SkillMinEffect": 0.0001, + "SkillFatiguePerPoint": 0.6 + }, + "FallDamage": false, + "BlackStomach": 5, + "HydrationLoss": 1, + "EnergyLoss": 1, + "EnableHealth": false, + "SkillProgMult": 0.4, + "Health": { + "LeftArm": 60, + "RightArm": 60, + "Head": 35, + "Chest": 85, + "Stomach": 70, + "LeftLeg": 65, + "RightLeg": 65 + }, + "WeaponSkillMult": 1, + "EnablePlayer": false, + "DiedHealth": { + "Saveeffects": true, + "Savehealth": true, + "Health_blacked": 0.1, + "Health_death": 0.3 + }, + "MaxStaminaLegs": 115, + "MaxStaminaHands": 80, + "EnableStaminaHands": false, + "EnableStaminaLegs": false, + "RegenStaminaLegs": 4.5, + "RegenStaminaHands": 2.1, + "JumpConsumption": 14, + "LayToStand": 20, + "CrouchToStand": 11, + "Standing": 1, + "LayingDown": 0.15, + "Crouching": 0.75, + "UnlimitedStamina": false + }, + "Raids": { + "SandboxAccessLevel": 20, + "RaidTime": 0, + "SaveQuestItems": false, + "Exfils": { + "CarSandbox": 5000, + "CarShoreline": 5000, + "CoopPaidSandbox": 5000, + "CoopPaidShoreline": 5000, + "CoopPaidStreets": 5000, + "CoopPaidLighthouse": 5000, + "CarLighthouse": 5000, + "CarExtractTime": 60, + "ArmorExtract": false, + "CoopPaid": false, + "FenceGift": false, + "CoopPaidInterchange": 5000, + "CoopPaidWoods": 5000, + "CoopPaidReserve": 5000, + "NoBackpack": false, + "FreeCoop": false, + "CarInterchange": 5000, + "CarWoods": 5000, + "CarStreets": 5000, + "CarCustoms": 5000, + "ExtendedExtracts": false, + "ChanceExtracts": false, + "GearExtract": false + }, + "NoRunThrough": false, + "Timeacceleration": 7, + "SafeExit": false, + "SaveGearAfterDeath": false, + "RaidEvents": { + "DisableEvents": false, + "KillaFactoryChance": 100, + "CultistBossesChance": 100, + "GoonsFactoryChance": 100, + "CultistBosses": false, + "GoonsFactory": false, + "BossesOnCustoms": false, + "BossesOnHealthResort": false, + "TagillaInterchange": false, + "HealthResortIncludeGuards": false, + "HoundsWoods": 5, + "HoundsCustoms": 5, + "SkierFighters": 4, + "PeaceFighters": 15, + "Christmas": false, + "NonSeasonalQuests": false, + "Halloween": false, + "DisableZombies": false, + "DisableHalloweenAIFriendly": false, + "RandomInfectionLevel": false, + "IncludeStreetBosses": false, + "KillaFactory": false, + "BossesOnReserve": false, + "RaidersEverywhere": false, + "GlukharLabs": false + }, + "LabInsurance": false, + "EnableRaids": false, + "Removelabkey": false, + "EnableCarCoop": false, + "ForceBTRFriendly": false, + "ForceTransitStash": false, + "TransitHeight": 2, + "TransitWidth": 5, + "ForceBTRStash": false, + "EnableBTR": false, + "BTRCoverPrice": 30000, + "BTRTaxiPrice": 7000, + "UsecMult": 1.5, + "BearMult": 1, + "ScavMult": 0.8, + "BTRHeight": 2, + "BTRWidth": 5, + "Season": 0, + "ForceSeason": false, + "RaidStartup": { + "EnableRaidStartup": false, + "TimeBeforeDeployLocal": 10, + "AIAmount": 0, + "SaveLoot": true, + "AIDifficulty": 0, + "MIAEndofRaid": true, + "TaggedAndCursed": false, + "EnableBosses": true, + "ScavWars": false + } + }, + "Fleamarket": { + "EnableFleaConditions": false, + "EnablePlayerOffers": false, + "FleaFIR": false, + "FleaNoFIRSell": false, + "EventOffers": false, + "SellOffersAmount": 10, + "FleaConditions": { + "FleaFood_Min": 5, + "FleaArmor_Min": 5, + "FleaFood_Max": 100, + "FleaArmor_Max": 100, + "FleaMedical_Min": 60, + "FleaSpec_Min": 2, + "FleaMedical_Max": 100, + "FleaSpec_Max": 100, + "FleaWeapons_Min": 60, + "FleaVests_Min": 5, + "FleaKeys_Min": 97, + "FleaWeapons_Max": 100, + "FleaVests_Max": 100, + "FleaKeys_Max": 100 + }, + "OverrideOffers": false, + "FleaMarketLevel": 15, + "FleaBlacklist": null, + "DisableBSGList": false, + "EnableFleamarket": false, + "Sell_mult": 1.24, + "Tradeoffer_max": 1, + "Rep_loss": 0.03, + "Rep_gain": 0.02, + "Tradeoffer_min": 0, + "Sell_chance": 50, + "EnableFees": true, + "DynamicOffers": { + "ExpireThreshold": 1400, + "BundleOfferChance": 6, + "Stack_min": 10, + "PerOffer_min": 7, + "Stack_max": 600, + "PerOffer_max": 30, + "Eurooffers": 8, + "Dollaroffers": 14, + "Roubleoffers": 78, + "NonStack_min": 1, + "Time_min": 6, + "Price_min": 0.8, + "NonStack_max": 10, + "Time_max": 60, + "Price_max": 1.2 + } + }, + "Services": { + "RepairBox": { + "NoRandomRepair": false, + "OpGunRepair": false, + "ArmorSkillMult": 0.05, + "WeaponMaintenanceSkillMult": 0.6, + "IntellectSkillMultWeaponKit": 0.045, + "IntellectSkillMultArmorKit": 0.03, + "IntellectSkillLimitTraders": 0.6, + "IntellectSkillLimitKit": 0.6, + "OpArmorRepair": false, + "RepairMult": 1 + }, + "EnableHealMarkup": false, + "EnableInsurance": false, + "EnableTimeOverride": false, + "FreeHealLvl": 5, + "FreeHealRaids": 30, + "ReturnChancePrapor": 85, + "ReturnChanceTherapist": 95, + "InsuranceInterval": 600, + "InsuranceTimeOverride": 30, + "InsuranceAttachmentChance": 10, + "TherapistStorageTime": 144, + "PraporStorageTime": 96, + "Prapor_Max": 36, + "Prapor_Min": 24, + "Therapist_Max": 24, + "Therapist_Min": 12, + "TherapistLvl1": 1, + "TherapistLvl2": 1.1, + "TherapistLvl3": 1.2, + "TherapistLvl4": 1.35, + "InsuranceMultTherapistLvl1": 20, + "InsuranceMultTherapistLvl2": 21, + "InsuranceMultTherapistLvl3": 22, + "InsuranceMultTherapistLvl4": 23, + "InsuranceMultPraporLvl1": 16, + "InsuranceMultPraporLvl2": 17, + "InsuranceMultPraporLvl3": 18, + "InsuranceMultPraporLvl4": 19, + "EnableServices": false, + "EnableRepair": false, + "ClothesAnySide": false, + "ClothesLevelUnlock": false, + "ClothesFree": false + }, + "Quests": { + "EnableQuestsMisc": false, + "QuestCostMult": 1, + "QuestRepToZero": false, + "DailyQuests": { + "MinKillsLR3": 5, + "MaxKillsLR3": 20, + "MinKillsLR2": 5, + "MaxKillsLR2": 15, + "MinItems": 2, + "MaxItems": 5, + "Extracts": 3, + "Types": 6, + "Reroll": 2, + "Spread": 0.5, + "MinKillsLR1": 2, + "MaxKillsLR1": 4, + "Access": 5, + "QuestAmount": 3, + "Lifespan": 1440, + "Levels": "1,10,20,30,40,50,60", + "Experience": "1000,2000,8000,13000,19000,24000,30000", + "ItemsReward": "2,4,5,5,5,5,5", + "Reputation": "0.01,0.01,0.02,0.02,0.03,0.03,0.03", + "SkillPoint": "10,15,20,25,30,35,40", + "SkillChance": "0,0.01,0.05,0.1,0.1,0.15,0.15", + "Roubles": "11000,20000,32000,45000,58000,70000,82000", + "GPcoins": "3,3,6,6,8,8,10" + }, + "WeeklyQuests": { + "MinKillsLR3": 20, + "MaxKillsLR3": 40, + "MinKillsLR2": 15, + "MaxKillsLR2": 40, + "MinItems": 2, + "MaxItems": 5, + "Extracts": 10, + "Types": 6, + "Reroll": 0, + "Spread": 0.5, + "MinKillsLR1": 10, + "MaxKillsLR1": 20, + "Access": 15, + "QuestAmount": 1, + "Lifespan": 10080, + "Levels": "1,10,20,30,40,50,60", + "Experience": "5000,15000,27000,80000,142000,220000,290000", + "ItemsReward": "4,5,5,6,6,7,7", + "Reputation": "0.02,0.03,0.04,0.04,0.05,0.05,0.05", + "SkillPoint": "25,35,45,50,55,60,65", + "SkillChance": "0,0.05,0.1,0.15,0.2,0.2,0.2", + "Roubles": "20000,50000,175000,350000,540000,710000,880000", + "GPcoins": "10,10,16,16,20,30,35" + }, + "EnableQuests": false, + "ScavQuests": { + "MinKillsLR2": 3, + "MaxKillsLR2": 15, + "MinItems": 2, + "MaxItems": 5, + "Extracts": 3, + "Types": 2, + "Reroll": 0, + "Spread": 0.5, + "MinKillsLR1": 1, + "MaxKillsLR1": 3, + "Access": 1, + "QuestAmount": 1, + "Lifespan": 1440, + "Levels": "1,10,20,30,40,50,60", + "Experience": "0,0,0,0,0,0,0", + "ItemsReward": "2,3,3,3,3,4,4", + "Reputation": "0.02,0.02,0.03,0.03,0.04,0.04,0.05", + "SkillPoint": "10,15,20,25,30,35,40", + "SkillChance": "0,0,0,0,0,0,0", + "Roubles": "11000,20000,32000,45000,58000,70000,82000", + "GPcoins": "1,1,2,2,4,4,5" + } + }, + "CSM": { + "EnableCases": false, + "EnableSecureCases": false, + "CustomPocket": false, + "Pockets": { + "SpecGKeychain": false, + "SpecSimpleWallet": false, + "SpecWZWallet": false, + "SpecKeycardHolder": false, + "SpecKeytool": false, + "SpecInjectorCase": false, + "SpecSlots": 3, + "FourthWidth": 1, + "FourthHeight": 1, + "ThirdWidth": 1, + "ThirdHeight": 1, + "SecondWidth": 1, + "SecondHeight": 1, + "FirstWidth": 1, + "FirstHeight": 1 + }, + "Cases": { + "GKeychain": { + "Height": 2, + "Width": 2, + "Filter": false + }, + "KeycardHolderCase": { + "Height": 3, + "Width": 3, + "Filter": false + }, + "InjectorCase": { + "Height": 3, + "Width": 3, + "Filter": false + }, + "Holodilnick": { + "Height": 8, + "Width": 8, + "Filter": false + }, + "PistolCase": { + "Height": 3, + "Width": 4, + "Filter": false + }, + "DocumentsCase": { + "Height": 4, + "Width": 4, + "Filter": false + }, + "Keytool": { + "Height": 4, + "Width": 4, + "Filter": false + }, + "SiccCase": { + "Height": 5, + "Width": 5, + "Filter": false + }, + "ThiccWeaponCase": { + "Height": 15, + "Width": 6, + "Filter": false + }, + "ThiccItemsCase": { + "Height": 14, + "Width": 14, + "Filter": false + }, + "MedicineCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "DogtagCase": { + "Height": 10, + "Width": 10, + "Filter": false + }, + "MagazineCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "AmmunitionCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "WeaponCase": { + "Height": 10, + "Width": 5, + "Filter": false + }, + "ItemsCase": { + "Height": 8, + "Width": 8, + "Filter": false + }, + "GrenadeCase": { + "Height": 8, + "Width": 8, + "Filter": false + }, + "WZWallet": { + "Height": 2, + "Width": 2, + "Filter": false + }, + "SimpleWallet": { + "Height": 2, + "Width": 2, + "Filter": false + }, + "MoneyCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "LuckyScav": { + "Height": 14, + "Width": 14, + "Filter": false + }, + "StreamerCase": { + "Height": 11, + "Width": 7, + "Filter": false + }, + "ArmorPlateCase": { + "Height": 12, + "Width": 8, + "Filter": false + } + }, + "SecureContainers": { + "KappaWidth": 3, + "AlphaHeight": 2, + "KappaHeight": 4, + "AlphaWidth": 2, + "GammaWidth": 3, + "GammaHeight": 3, + "GammaTUEWidth": 3, + "GammaTUEHeight": 3, + "BetaHeight": 2, + "BetaWidth": 3, + "EpsilonWidth": 4, + "EpsilonHeight": 2, + "DevHeight": 3, + "DevWidth": 3, + "WaistPouchWidth": 2, + "WaistPouchHeight": 2 + }, + "EnableCSM": false + }, + "Scav": { + "SCAVPockets": { + "FourthHeight": 1, + "FourthWidth": 1, + "ThirdHeight": 1, + "ThirdWidth": 1, + "SecondHeight": 1, + "SecondWidth": 1, + "FirstHeight": 1, + "FirstWidth": 1 + }, + "HostileBosses": false, + "FriendlyBosses": false, + "CarBaseStanding": 0.25, + "ScavTimer": 900, + "ScavCustomPockets": false, + "ScavLab": false, + "FriendlyScavs": false, + "HostileScavs": false, + "StandingFriendlyKill": -0.04, + "StandingPMCKill": 0.01, + "Health": { + "LeftArm": 60, + "RightArm": 60, + "Head": 35, + "Chest": 85, + "Stomach": 70, + "LeftLeg": 65, + "RightLeg": 65 + }, + "EnableScavHealth": false, + "EnableScav": false, + "ScavStats": { + "MaxHydration": 100, + "MaxEnergy": 100 + }, + "EnableStats": false + }, + "Bots": { + "AIChance": { + "KolontayStreets": 25, + "KolontayGZ": 45, + "ForcePartisan": false, + "PartisanCustoms": 30, + "PartisanShoreline": 30, + "PartisanWoods": 30, + "PartisanLighthouse": 30, + "Kaban": 30, + "TagillaNight": 100, + "TrioLighthouse": 30, + "TrioShoreline": 30, + "TrioWoods": 30, + "Zryachiy": 100, + "CultistCustoms": 40, + "CultistShoreline": 15, + "Trio": 30, + "RaiderLab": 45, + "RaiderReserve": 35, + "CultistFactory": 20, + "CultistWoods": 15, + "CultistGroundZero": 44, + "Rogue": 70, + "Tagilla": 100, + "Shturman": 30, + "Glukhar": 35, + "Sanitar": 30, + "Reshala": 30, + "Killa": 35 + }, + "ArmorDurab": { + "PMCMax": 100, + "FollowerMax": 100, + "BossMax": 100, + "MarksmanMax": 100, + "ScavMax": 100, + "RogueMax": 100, + "RaiderMax": 100, + "PMCMin": 90, + "FollowerMin": 90, + "BossMin": 100, + "MarksmanMin": 90, + "ScavMin": 50, + "RogueMin": 90, + "RaiderMin": 90 + }, + "WeaponDurab": { + "PMCMax": 100, + "FollowerMax": 100, + "BossMax": 100, + "MarksmanMax": 100, + "ScavMax": 100, + "RogueMax": 100, + "RaiderMax": 100, + "PMCMin": 95, + "FollowerMin": 80, + "BossMin": 80, + "MarksmanMin": 60, + "ScavMin": 85, + "RogueMin": 80, + "RaiderMin": 80 + }, + "EnableBots": true + }, + "PMC": { + "NameOverride": false, + "ForceCustomWaves": false, + "CustomWaveChance": 100, + "PMCChance": { + "PMCNamePrefix": 15, + "PMCAllNamePrefix": 5, + "PMCLooseWep": 15, + "HostileSamePMC": 85, + "HostilePMC": 100, + "PMCWepEnhance": 5 + }, + "LevelUpMargin": 10, + "LevelDownMargin": 70, + "PMCNameList": "Sinistar\r\nMorgan\r\nMayoringram\r\nAssAssin\r\nGhostFenixx\r\nG10orgos\r\nFortis\r\nDaveyB0y\r\nMMX\r\nTabi\r\nJojo\r\njvs\r\ndspider\r\nHenny\r\nMylu\r\nXen0Xys\r\nShruggzilla\r\nDoddsy\r\nMoffed\r\nBeagle\r\nthorncp\r\nEagle\r\nBroCC\r\nCthulhu\r\nKaryash\r\nlilthicccums\r\nTobi\r\nEmilia\r\nParka4our\r\nDonmohnke\r\nSingularity\r\nTogay\r\nGodHimself\r\nThomaszhrets\r\nAsianLover69\r\nRodyChodes\r\nl6uc6if6er\r\nbllt\r\nSaltyDroog\r\nM_conniptions\r\ntagilla\r\nTricolorHen061\r\nWaffentrager\r\nHabit\r\nUmsirqualquerai\r\nshep\r\nCannabis\r\ntrappussy\r\nShiro\r\nChomp\r\nTheSparta\r\nLostQuasar\r\nssh\r\nLacyway\r\nKronzky\r\njbs4bmx\r\naleves\r\nFontaine\r\nCWX\r\nTwistedGA\r\nLimbo\r\nSamSWAT\r\nRevingly\r\nKattomine\r\nFox\r\nGamenator\r\nCarl\r\njrdenny1\r\nDecompresS\r\nCats\r\nAtonicX\r\nsyra\r\nStako\r\nCheiftan\r\nelectric\r\nImTheRickHere\r\nmajorlier\r\nbearPhone\r\nMasterChief\r\nThe2ndarbiter\r\ncowkiller19\r\nKarma\r\nJen14owns\r\nRubMyRubber\r\nFrumorn\r\nBuyingGF\r\nRekty\r\nRebrix\r\nDatPhatAsian\r\nChinaski\r\nChameleon\r\nNeCzar\r\nPonderingOrb\r\nSerakym\r\nArsanthania\r\nYT_Mark\r\nBeDaLek\r\nNukey\r\nOwl\r\nJoshtheOG\r\nbatkiller\r\nVampireKitten\r\nBadwolf_54\r\nJustin\r\nAgentMoulder\r\nLayerofBlubber\r\nD3ovm\r\nkiobu\r\n7AmatoR7\r\nKAcidi\r\nZ3R0\r\nSpiral\r\nXsos\r\nVortex\r\nalphakiller\r\nbiohazard\r\nli3raa\r\nDalamadur\r\ncentollojames\r\nlennyrod\r\nZooey\r\nMaoci\r\nMarchwin\r\nMiki__\r\nInnerMiddle\r\npersistent\r\nYarik85\r\nDeadLeaves\r\nSenko\r\nNexus4880\r\nSlickboi\r\nTallanX\r\ntrippy\r\nguidot\r\nJanuary\r\nCloudy\r\nMrElmoEN\r\nNekoKami\r\nDOKDOR\r\ndeathbricks\r\nHustlesofter\r\nVenican\r\nNickMillion\r\nJuncker\r\nPhantomInTime\r\nVox\r\nTraveler\r\nnimbul\r\nEreshkigal\r\nSerWolfik", + "NamesEnable": false, + "ChancesEnable": false, + "PMCRatio": 50, + "AItoPMC": { + "CursedToPMC": 20, + "SnipertoPMC": 0, + "ScavToPMC": 30, + "ScavToPMCFactory": 13, + "RogueToPMC": 5, + "RaiderToPMC": 7 + }, + "EnableConvert": false, + "DisableLowLevelPMC": false, + "LootableMelee": false, + "EnablePMC": false + }, + "Custom": { + "EnableCustom": false, + "LoggerIntoServer": false, + "DisableSPTFriend": false, + "DisableCommando": false, + "DisablePMCMessages": false, + "CustomCheck1": false, + "CustomCheck2": false, + "CustomCheck3": false, + "CustomCheck4": false, + "CustomNumber1": 12345, + "CustomNumber2": 12345, + "CustomNumber3": 12345, + "CustomNumber4": 12345 + } +} \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/Presets/test.json b/user/mods/[SVM] Server Value Modifier/Presets/test.json new file mode 100644 index 0000000..e034a2b --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/Presets/test.json @@ -0,0 +1,894 @@ +{ + "PresetNotes": "", + "Items": { + "ExamineKeys": false, + "AddSignalPistolToSpec": false, + "WeaponHeatOff": false, + "SMGToHolster": false, + "PistolToMain": false, + "AllExaminedItems": false, + "EquipRigsWithArmors": false, + "RemoveSecureContainerFilters": false, + "MisfireChance": 1, + "FragmentMult": 1, + "HeatFactor": 1, + "ExamineTime": 1, + "MalfunctChanceMult": 1, + "WeightChanger": 1, + "ItemPriceMult": 1, + "EnableCurrency": false, + "RubStack": 500000, + "DollarStack": 50000, + "GPStack": 20, + "EuroStack": 50000, + "AmmoLoadSpeed": 1, + "LootExp": 1, + "EnableItems": false, + "ExamineExp": 1, + "AmmoStacks": { + "MarksmanRound": 40, + "RifleRound": 60, + "ShotgunRound": 20, + "PistolRound": 50 + }, + "AmmoSwitch": false, + "EnableKeys": false, + "RemoveRaidRestr": false, + "RemoveBackpacksRestrictions": false, + "AvoidSingleKeys": false, + "AvoidMarkedKeys": false, + "AvoidResidential": false, + "AvoidOddKeys": false, + "KeyUseMult": 1, + "KeycardUseMult": 1, + "KeyDurabilityThreshold": 40, + "IDChanger": false, + "NoGearPenalty": false, + "IDDefault": "", + "IDParent": "", + "IDFilter": "", + "IDPrice": "", + "InfiniteKeys": false, + "InfiniteKeycards": false, + "RaidDrop": false + }, + "Hideout": { + "EnableStash": false, + "Stash": { + "StashTUE": 72, + "StashLvl4": 68, + "StashLvl3": 50, + "StashLvl2": 40, + "StashLvl1": 30 + }, + "Regeneration": { + "OfflineRegen": false, + "HealthRegen": 1, + "HideoutHealth": false, + "HideoutEnergy": false, + "HideoutHydration": false, + "HydrationRegen": 1, + "EnergyRegen": 1 + }, + "WaterFilterTime": 325, + "BitcoinTime": 2416, + "MaxBitcoins": 3, + "NoFuelMult": 1, + "ScavCasePrice": 1, + "ScavCaseTime": 1, + "HideoutConstMult": 1, + "HideoutProdMult": 1, + "WaterFilterRate": 66, + "GPUBoostRate": 1, + "AirFilterRate": 1, + "CultistTime": 1, + "CultistMaxRewards": 5, + "RemoveConstructionsRequirements": false, + "RemoveConstructionsFIRRequirements": false, + "RemoveSkillRequirements": false, + "RemoveTraderLevelRequirements": false, + "EnableHideout": false, + "FuelConsumptionRate": 1 + }, + "Traders": { + "Fence": { + "EnableFence": false, + "ArmorDurability_Max": 60, + "GunDurability_Max": 60, + "ArmorDurability_Min": 35, + "GunDurability_Min": 35, + "PriceMult": 1.2, + "PremiumAmountOnSale": 50, + "PresetCount": 5, + "StockTime_Min": 50, + "StockTime_Max": 150, + "AmountOnSale": 140, + "PresetMult": 2, + "Blacklist": "" + }, + "RemoveTradeLimits": false, + "QuestRedeemDefault": 48, + "QuestRedeemUnheard": 72, + "TraderMarkup": { + "Ragman": 62, + "Peacekeeper": 45, + "Fence": 40, + "Prapor": 50, + "Jaeger": 60, + "Ref": 56, + "Mechanic": 56, + "Skier": 49, + "Therapist": 63 + }, + "TraderSell": { + "Ragman": 1, + "Peacekeeper": 1, + "Prapor": 1, + "Jaeger": 1, + "Mechanic": 1, + "Skier": 1, + "Ref": 1, + "Therapist": 1 + }, + "MinDurabSell": 60, + "RemoveTimeCondition": false, + "AllQuestsAvailable": false, + "RemoveBarterOffers": false, + "RemoveCurrencyOffers": false, + "IncreaseAssort": false, + "UnlockQuestAssort": false, + "EnableTraders": false, + "FIRRestrictsQuests": false, + "TradersLvl4": false, + "FIRTrade": false, + "UnlockJaeger": false, + "UnlockRef": false + }, + "Loot": { + "Airdrops": { + "Mixed": { + "ArmorMin": 1, + "ArmorMax": 5, + "BarterMin": 15, + "BarterMax": 35, + "PresetMin": 3, + "PresetMax": 5, + "CratesMin": 1, + "CratesMax": 2 + }, + "Medical": { + "ArmorMin": 0, + "ArmorMax": 0, + "BarterMin": 25, + "BarterMax": 45, + "PresetMin": 0, + "PresetMax": 0, + "CratesMin": 0, + "CratesMax": 0 + }, + "Barter": { + "ArmorMin": 0, + "ArmorMax": 0, + "BarterMin": 20, + "BarterMax": 35, + "PresetMin": 0, + "PresetMax": 0, + "CratesMin": 0, + "CratesMax": 0 + }, + "Weapon": { + "ArmorMin": 3, + "ArmorMax": 6, + "BarterMin": 11, + "BarterMax": 22, + "PresetMin": 6, + "PresetMax": 8, + "CratesMin": 0, + "CratesMax": 2 + }, + "Sandbox_air": 13, + "Streets_air": 13, + "AirtimeMin": 1, + "AirtimeMax": 5, + "Lighthouse_air": 20, + "Bigmap_air": 20, + "Interchange_air": 20, + "Shoreline_air": 20, + "Reserve_air": 10, + "Woods_air": 25 + }, + "EnableLoot": false, + "Locations": { + "Streets": { + "Loose": 3, + "Container": 1 + }, + "Sandbox": { + "Loose": 2.8, + "Container": 1 + }, + "SandboxHard": { + "Loose": 2.8, + "Container": 1 + }, + "Lighthouse": { + "Loose": 2.8, + "Container": 1 + }, + "Bigmap": { + "Loose": 2.5, + "Container": 1 + }, + "Interchange": { + "Loose": 2.8, + "Container": 1 + }, + "FactoryDay": { + "Loose": 3.5, + "Container": 1 + }, + "Laboratory": { + "Loose": 2.8, + "Container": 1 + }, + "Shoreline": { + "Loose": 3.7, + "Container": 1 + }, + "Reserve": { + "Loose": 2.9, + "Container": 1 + }, + "Woods": { + "Loose": 1.9, + "Container": 1 + }, + "FactoryNight": { + "Loose": 3.5, + "Container": 1 + }, + "AllContainers": false + } + }, + "Player": { + "EnableFatigue": false, + "PMCStats": { + "MaxHydration": 100, + "MaxEnergy": 100 + }, + "CharXP": { + "ScavKill": 80, + "ScavHMult": 1.1, + "PMCKill": 175, + "PMCHMult": 1.2 + }, + "RaidMult": { + "MIA": 1, + "Runner": 0.5, + "Survived": 1.3, + "Killed": 1 + }, + "EnableStats": false, + "Skills": { + "SkillFatigueReset": 200, + "SkillFreshEffect": 1.3, + "SkillFPoints": 1, + "SkillPointsBeforeFatigue": 1, + "SkillMinEffect": 0.0001, + "SkillFatiguePerPoint": 0.6 + }, + "FallDamage": false, + "BlackStomach": 5, + "HydrationLoss": 1, + "EnergyLoss": 1, + "EnableHealth": false, + "SkillProgMult": 0.4, + "Health": { + "LeftArm": 60, + "RightArm": 60, + "Head": 35, + "Chest": 85, + "Stomach": 70, + "LeftLeg": 65, + "RightLeg": 65 + }, + "WeaponSkillMult": 1, + "EnablePlayer": false, + "DiedHealth": { + "Saveeffects": true, + "Savehealth": true, + "Health_blacked": 0.1, + "Health_death": 0.3 + }, + "MaxStaminaLegs": 115, + "MaxStaminaHands": 80, + "EnableStaminaHands": false, + "EnableStaminaLegs": false, + "RegenStaminaLegs": 4.5, + "RegenStaminaHands": 2.1, + "JumpConsumption": 14, + "LayToStand": 20, + "CrouchToStand": 11, + "Standing": 1, + "LayingDown": 0.15, + "Crouching": 0.75, + "UnlimitedStamina": false + }, + "Raids": { + "SandboxAccessLevel": 20, + "RaidTime": 0, + "SaveQuestItems": false, + "Exfils": { + "CarSandbox": 5000, + "CarShoreline": 5000, + "CoopPaidSandbox": 5000, + "CoopPaidShoreline": 5000, + "CoopPaidStreets": 5000, + "CoopPaidLighthouse": 5000, + "CarLighthouse": 5000, + "CarExtractTime": 60, + "ArmorExtract": false, + "CoopPaid": false, + "FenceGift": false, + "CoopPaidInterchange": 5000, + "CoopPaidWoods": 5000, + "CoopPaidReserve": 5000, + "NoBackpack": false, + "FreeCoop": false, + "CarInterchange": 5000, + "CarWoods": 5000, + "CarStreets": 5000, + "CarCustoms": 5000, + "ExtendedExtracts": false, + "ChanceExtracts": false, + "GearExtract": false + }, + "NoRunThrough": false, + "Timeacceleration": 7, + "SafeExit": false, + "SaveGearAfterDeath": false, + "RaidEvents": { + "DisableEvents": false, + "KillaFactoryChance": 100, + "CultistBossesChance": 100, + "GoonsFactoryChance": 100, + "CultistBosses": false, + "GoonsFactory": false, + "BossesOnCustoms": false, + "BossesOnHealthResort": false, + "TagillaInterchange": false, + "HealthResortIncludeGuards": false, + "HoundsWoods": 5, + "HoundsCustoms": 5, + "SkierFighters": 4, + "PeaceFighters": 15, + "Christmas": false, + "NonSeasonalQuests": false, + "Halloween": false, + "DisableZombies": false, + "DisableHalloweenAIFriendly": false, + "RandomInfectionLevel": false, + "IncludeStreetBosses": false, + "KillaFactory": false, + "BossesOnReserve": false, + "RaidersEverywhere": false, + "GlukharLabs": false + }, + "LabInsurance": false, + "EnableRaids": false, + "Removelabkey": false, + "EnableCarCoop": false, + "ForceBTRFriendly": false, + "ForceTransitStash": false, + "TransitHeight": 2, + "TransitWidth": 5, + "ForceBTRStash": false, + "EnableBTR": false, + "BTRCoverPrice": 30000, + "BTRTaxiPrice": 7000, + "UsecMult": 1.5, + "BearMult": 1, + "ScavMult": 0.8, + "BTRHeight": 2, + "BTRWidth": 5, + "Season": 0, + "ForceSeason": false, + "RaidStartup": { + "EnableRaidStartup": false, + "TimeBeforeDeployLocal": 10, + "AIAmount": 0, + "SaveLoot": true, + "AIDifficulty": 0, + "MIAEndofRaid": true, + "TaggedAndCursed": false, + "EnableBosses": true, + "ScavWars": false + } + }, + "Fleamarket": { + "EnableFleaConditions": false, + "EnablePlayerOffers": false, + "FleaFIR": false, + "FleaNoFIRSell": false, + "EventOffers": false, + "SellOffersAmount": 10, + "FleaConditions": { + "FleaFood_Min": 5, + "FleaArmor_Min": 5, + "FleaFood_Max": 100, + "FleaArmor_Max": 100, + "FleaMedical_Min": 60, + "FleaSpec_Min": 2, + "FleaMedical_Max": 100, + "FleaSpec_Max": 100, + "FleaWeapons_Min": 60, + "FleaVests_Min": 5, + "FleaKeys_Min": 97, + "FleaWeapons_Max": 100, + "FleaVests_Max": 100, + "FleaKeys_Max": 100 + }, + "OverrideOffers": false, + "FleaMarketLevel": 15, + "FleaBlacklist": null, + "DisableBSGList": false, + "EnableFleamarket": false, + "Sell_mult": 1.24, + "Tradeoffer_max": 1, + "Rep_loss": 0.03, + "Rep_gain": 0.02, + "Tradeoffer_min": 0, + "Sell_chance": 50, + "EnableFees": true, + "DynamicOffers": { + "ExpireThreshold": 1400, + "BundleOfferChance": 6, + "Stack_min": 10, + "PerOffer_min": 7, + "Stack_max": 600, + "PerOffer_max": 30, + "Eurooffers": 8, + "Dollaroffers": 14, + "Roubleoffers": 78, + "NonStack_min": 1, + "Time_min": 6, + "Price_min": 0.8, + "NonStack_max": 10, + "Time_max": 60, + "Price_max": 1.2 + } + }, + "Services": { + "RepairBox": { + "NoRandomRepair": false, + "OpGunRepair": false, + "ArmorSkillMult": 0.05, + "WeaponMaintenanceSkillMult": 0.6, + "IntellectSkillMultWeaponKit": 0.045, + "IntellectSkillMultArmorKit": 0.03, + "IntellectSkillLimitTraders": 0.6, + "IntellectSkillLimitKit": 0.6, + "OpArmorRepair": false, + "RepairMult": 1 + }, + "EnableHealMarkup": false, + "EnableInsurance": false, + "EnableTimeOverride": false, + "FreeHealLvl": 5, + "FreeHealRaids": 30, + "ReturnChancePrapor": 85, + "ReturnChanceTherapist": 95, + "InsuranceInterval": 600, + "InsuranceTimeOverride": 30, + "InsuranceAttachmentChance": 10, + "TherapistStorageTime": 144, + "PraporStorageTime": 96, + "Prapor_Max": 36, + "Prapor_Min": 24, + "Therapist_Max": 24, + "Therapist_Min": 12, + "TherapistLvl1": 1, + "TherapistLvl2": 1.1, + "TherapistLvl3": 1.2, + "TherapistLvl4": 1.35, + "InsuranceMultTherapistLvl1": 20, + "InsuranceMultTherapistLvl2": 21, + "InsuranceMultTherapistLvl3": 22, + "InsuranceMultTherapistLvl4": 23, + "InsuranceMultPraporLvl1": 16, + "InsuranceMultPraporLvl2": 17, + "InsuranceMultPraporLvl3": 18, + "InsuranceMultPraporLvl4": 19, + "EnableServices": false, + "EnableRepair": false, + "ClothesAnySide": false, + "ClothesLevelUnlock": false, + "ClothesFree": false + }, + "Quests": { + "EnableQuestsMisc": false, + "QuestCostMult": 1, + "QuestRepToZero": false, + "DailyQuests": { + "MinKillsLR3": 5, + "MaxKillsLR3": 20, + "MinKillsLR2": 5, + "MaxKillsLR2": 15, + "MinItems": 2, + "MaxItems": 5, + "Extracts": 3, + "Types": 6, + "Reroll": 2, + "Spread": 0.5, + "MinKillsLR1": 2, + "MaxKillsLR1": 4, + "Access": 5, + "QuestAmount": 3, + "Lifespan": 1440, + "Levels": "1,10,20,30,40,50,60", + "Experience": "1000,2000,8000,13000,19000,24000,30000", + "ItemsReward": "2,4,5,5,5,5,5", + "Reputation": "0.01,0.01,0.02,0.02,0.03,0.03,0.03", + "SkillPoint": "10,15,20,25,30,35,40", + "SkillChance": "0,0.01,0.05,0.1,0.1,0.15,0.15", + "Roubles": "11000,20000,32000,45000,58000,70000,82000", + "GPcoins": "3,3,6,6,8,8,10" + }, + "WeeklyQuests": { + "MinKillsLR3": 20, + "MaxKillsLR3": 40, + "MinKillsLR2": 15, + "MaxKillsLR2": 40, + "MinItems": 2, + "MaxItems": 5, + "Extracts": 10, + "Types": 6, + "Reroll": 0, + "Spread": 0.5, + "MinKillsLR1": 10, + "MaxKillsLR1": 20, + "Access": 15, + "QuestAmount": 1, + "Lifespan": 10080, + "Levels": "1,10,20,30,40,50,60", + "Experience": "5000,15000,27000,80000,142000,220000,290000", + "ItemsReward": "4,5,5,6,6,7,7", + "Reputation": "0.02,0.03,0.04,0.04,0.05,0.05,0.05", + "SkillPoint": "25,35,45,50,55,60,65", + "SkillChance": "0,0.05,0.1,0.15,0.2,0.2,0.2", + "Roubles": "20000,50000,175000,350000,540000,710000,880000", + "GPcoins": "10,10,16,16,20,30,35" + }, + "EnableQuests": false, + "ScavQuests": { + "MinKillsLR2": 3, + "MaxKillsLR2": 15, + "MinItems": 2, + "MaxItems": 5, + "Extracts": 3, + "Types": 2, + "Reroll": 0, + "Spread": 0.5, + "MinKillsLR1": 1, + "MaxKillsLR1": 3, + "Access": 1, + "QuestAmount": 1, + "Lifespan": 1440, + "Levels": "1,10,20,30,40,50,60", + "Experience": "0,0,0,0,0,0,0", + "ItemsReward": "2,3,3,3,3,4,4", + "Reputation": "0.02,0.02,0.03,0.03,0.04,0.04,0.05", + "SkillPoint": "10,15,20,25,30,35,40", + "SkillChance": "0,0,0,0,0,0,0", + "Roubles": "11000,20000,32000,45000,58000,70000,82000", + "GPcoins": "1,1,2,2,4,4,5" + } + }, + "CSM": { + "EnableCases": false, + "EnableSecureCases": false, + "CustomPocket": false, + "Pockets": { + "SpecGKeychain": false, + "SpecSimpleWallet": false, + "SpecWZWallet": false, + "SpecKeycardHolder": false, + "SpecKeytool": false, + "SpecInjectorCase": false, + "SpecSlots": 3, + "FourthWidth": 1, + "FourthHeight": 1, + "ThirdWidth": 1, + "ThirdHeight": 1, + "SecondWidth": 1, + "SecondHeight": 1, + "FirstWidth": 1, + "FirstHeight": 1 + }, + "Cases": { + "GKeychain": { + "Height": 2, + "Width": 2, + "Filter": false + }, + "KeycardHolderCase": { + "Height": 3, + "Width": 3, + "Filter": false + }, + "InjectorCase": { + "Height": 3, + "Width": 3, + "Filter": false + }, + "Holodilnick": { + "Height": 8, + "Width": 8, + "Filter": false + }, + "PistolCase": { + "Height": 3, + "Width": 4, + "Filter": false + }, + "DocumentsCase": { + "Height": 4, + "Width": 4, + "Filter": false + }, + "Keytool": { + "Height": 4, + "Width": 4, + "Filter": false + }, + "SiccCase": { + "Height": 5, + "Width": 5, + "Filter": false + }, + "ThiccWeaponCase": { + "Height": 15, + "Width": 6, + "Filter": false + }, + "ThiccItemsCase": { + "Height": 14, + "Width": 14, + "Filter": false + }, + "MedicineCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "DogtagCase": { + "Height": 10, + "Width": 10, + "Filter": false + }, + "MagazineCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "AmmunitionCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "WeaponCase": { + "Height": 10, + "Width": 5, + "Filter": false + }, + "ItemsCase": { + "Height": 8, + "Width": 8, + "Filter": false + }, + "GrenadeCase": { + "Height": 8, + "Width": 8, + "Filter": false + }, + "WZWallet": { + "Height": 2, + "Width": 2, + "Filter": false + }, + "SimpleWallet": { + "Height": 2, + "Width": 2, + "Filter": false + }, + "MoneyCase": { + "Height": 7, + "Width": 7, + "Filter": false + }, + "LuckyScav": { + "Height": 14, + "Width": 14, + "Filter": false + }, + "StreamerCase": { + "Height": 11, + "Width": 7, + "Filter": false + }, + "ArmorPlateCase": { + "Height": 12, + "Width": 8, + "Filter": false + } + }, + "SecureContainers": { + "KappaWidth": 3, + "AlphaHeight": 2, + "KappaHeight": 4, + "AlphaWidth": 2, + "GammaWidth": 3, + "GammaHeight": 3, + "GammaTUEWidth": 3, + "GammaTUEHeight": 3, + "BetaHeight": 2, + "BetaWidth": 3, + "EpsilonWidth": 4, + "EpsilonHeight": 2, + "DevHeight": 3, + "DevWidth": 3, + "WaistPouchWidth": 2, + "WaistPouchHeight": 2 + }, + "EnableCSM": false + }, + "Scav": { + "SCAVPockets": { + "FourthHeight": 1, + "FourthWidth": 1, + "ThirdHeight": 1, + "ThirdWidth": 1, + "SecondHeight": 1, + "SecondWidth": 1, + "FirstHeight": 1, + "FirstWidth": 1 + }, + "HostileBosses": false, + "FriendlyBosses": false, + "CarBaseStanding": 0.25, + "ScavTimer": 900, + "ScavCustomPockets": false, + "ScavLab": false, + "FriendlyScavs": false, + "HostileScavs": false, + "StandingFriendlyKill": -0.04, + "StandingPMCKill": 0.01, + "Health": { + "LeftArm": 60, + "RightArm": 60, + "Head": 35, + "Chest": 85, + "Stomach": 70, + "LeftLeg": 65, + "RightLeg": 65 + }, + "EnableScavHealth": false, + "EnableScav": false, + "ScavStats": { + "MaxHydration": 100, + "MaxEnergy": 100 + }, + "EnableStats": false + }, + "Bots": { + "AIChance": { + "KolontayStreets": 25, + "KolontayGZ": 45, + "ForcePartisan": false, + "PartisanCustoms": 30, + "PartisanShoreline": 30, + "PartisanWoods": 30, + "PartisanLighthouse": 30, + "Kaban": 30, + "TagillaNight": 100, + "TrioLighthouse": 30, + "TrioShoreline": 30, + "TrioWoods": 30, + "Zryachiy": 100, + "CultistCustoms": 40, + "CultistShoreline": 15, + "Trio": 30, + "RaiderLab": 45, + "RaiderReserve": 35, + "CultistFactory": 20, + "CultistWoods": 15, + "CultistGroundZero": 44, + "Rogue": 70, + "Tagilla": 100, + "Shturman": 30, + "Glukhar": 35, + "Sanitar": 30, + "Reshala": 30, + "Killa": 35 + }, + "ArmorDurab": { + "PMCMax": 100, + "FollowerMax": 100, + "BossMax": 100, + "MarksmanMax": 100, + "ScavMax": 100, + "RogueMax": 100, + "RaiderMax": 100, + "PMCMin": 90, + "FollowerMin": 90, + "BossMin": 100, + "MarksmanMin": 90, + "ScavMin": 50, + "RogueMin": 90, + "RaiderMin": 90 + }, + "WeaponDurab": { + "PMCMax": 100, + "FollowerMax": 100, + "BossMax": 100, + "MarksmanMax": 100, + "ScavMax": 100, + "RogueMax": 100, + "RaiderMax": 100, + "PMCMin": 95, + "FollowerMin": 80, + "BossMin": 80, + "MarksmanMin": 60, + "ScavMin": 85, + "RogueMin": 80, + "RaiderMin": 80 + }, + "EnableBots": true + }, + "PMC": { + "NameOverride": false, + "ForceCustomWaves": false, + "CustomWaveChance": 100, + "PMCChance": { + "PMCNamePrefix": 15, + "PMCAllNamePrefix": 5, + "PMCLooseWep": 15, + "HostileSamePMC": 85, + "HostilePMC": 100, + "PMCWepEnhance": 5 + }, + "LevelUpMargin": 10, + "LevelDownMargin": 70, + "PMCNameList": "Sinistar\r\nMorgan\r\nMayoringram\r\nAssAssin\r\nGhostFenixx\r\nG10orgos\r\nFortis\r\nDaveyB0y\r\nMMX\r\nTabi\r\nJojo\r\njvs\r\ndspider\r\nHenny\r\nMylu\r\nXen0Xys\r\nShruggzilla\r\nDoddsy\r\nMoffed\r\nBeagle\r\nthorncp\r\nEagle\r\nBroCC\r\nCthulhu\r\nKaryash\r\nlilthicccums\r\nTobi\r\nEmilia\r\nParka4our\r\nDonmohnke\r\nSingularity\r\nTogay\r\nGodHimself\r\nThomaszhrets\r\nAsianLover69\r\nRodyChodes\r\nl6uc6if6er\r\nbllt\r\nSaltyDroog\r\nM_conniptions\r\ntagilla\r\nTricolorHen061\r\nWaffentrager\r\nHabit\r\nUmsirqualquerai\r\nshep\r\nCannabis\r\ntrappussy\r\nShiro\r\nChomp\r\nTheSparta\r\nLostQuasar\r\nssh\r\nLacyway\r\nKronzky\r\njbs4bmx\r\naleves\r\nFontaine\r\nCWX\r\nTwistedGA\r\nLimbo\r\nSamSWAT\r\nRevingly\r\nKattomine\r\nFox\r\nGamenator\r\nCarl\r\njrdenny1\r\nDecompresS\r\nCats\r\nAtonicX\r\nsyra\r\nStako\r\nCheiftan\r\nelectric\r\nImTheRickHere\r\nmajorlier\r\nbearPhone\r\nMasterChief\r\nThe2ndarbiter\r\ncowkiller19\r\nKarma\r\nJen14owns\r\nRubMyRubber\r\nFrumorn\r\nBuyingGF\r\nRekty\r\nRebrix\r\nDatPhatAsian\r\nChinaski\r\nChameleon\r\nNeCzar\r\nPonderingOrb\r\nSerakym\r\nArsanthania\r\nYT_Mark\r\nBeDaLek\r\nNukey\r\nOwl\r\nJoshtheOG\r\nbatkiller\r\nVampireKitten\r\nBadwolf_54\r\nJustin\r\nAgentMoulder\r\nLayerofBlubber\r\nD3ovm\r\nkiobu\r\n7AmatoR7\r\nKAcidi\r\nZ3R0\r\nSpiral\r\nXsos\r\nVortex\r\nalphakiller\r\nbiohazard\r\nli3raa\r\nDalamadur\r\ncentollojames\r\nlennyrod\r\nZooey\r\nMaoci\r\nMarchwin\r\nMiki__\r\nInnerMiddle\r\npersistent\r\nYarik85\r\nDeadLeaves\r\nSenko\r\nNexus4880\r\nSlickboi\r\nTallanX\r\ntrippy\r\nguidot\r\nJanuary\r\nCloudy\r\nMrElmoEN\r\nNekoKami\r\nDOKDOR\r\ndeathbricks\r\nHustlesofter\r\nVenican\r\nNickMillion\r\nJuncker\r\nPhantomInTime\r\nVox\r\nTraveler\r\nnimbul\r\nEreshkigal\r\nSerWolfik", + "NamesEnable": false, + "ChancesEnable": false, + "PMCRatio": 50, + "AItoPMC": { + "CursedToPMC": 20, + "SnipertoPMC": 0, + "ScavToPMC": 30, + "ScavToPMCFactory": 13, + "RogueToPMC": 5, + "RaiderToPMC": 7 + }, + "EnableConvert": false, + "DisableLowLevelPMC": false, + "LootableMelee": false, + "EnablePMC": false + }, + "Custom": { + "EnableCustom": false, + "LoggerIntoServer": false, + "DisableSPTFriend": false, + "DisableCommando": false, + "DisablePMCMessages": false, + "CustomCheck1": false, + "CustomCheck2": false, + "CustomCheck3": false, + "CustomCheck4": false, + "CustomNumber1": 12345, + "CustomNumber2": 12345, + "CustomNumber3": 12345, + "CustomNumber4": 12345 + } +} \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/package.json b/user/mods/[SVM] Server Value Modifier/package.json new file mode 100644 index 0000000..4c5b8c0 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/package.json @@ -0,0 +1,9 @@ +{ + "name": "SVM", + "author": "GhostFenixx", + "version": "1.11.1", + "sptVersion": "3.11.x", + "license": "PUSL", + "devdependencies": {}, + "main": "src/SVM.js" +} \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/src/Arrays.json b/user/mods/[SVM] Server Value Modifier/src/Arrays.json new file mode 100644 index 0000000..0f54ee6 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/src/Arrays.json @@ -0,0 +1,14 @@ +{ + "Pistol":["9x19", "9x18pm", "9x21", "762x25tt", "46x30", "57x28", "1143x23", "127x33", "9x33r", "10MM", "40SW", "357SIG", "9MM", "45ACP", "50AE", "380AUTO"], + "ARifle":["762x39", "545x39", "556x45", "9x39", "366", "762x35", "300blk", "ATL15", "GRENDEL", "50WLF", "KURZ"], + "Shotgun":["12x70", "20x70", "23x75"], + "MRifle":["762x51", "68x51", "762х54R", "762x54r", "86x70", "127x55", "277", "BMG"], + "OddKeys":["5448ba0b4bdc2d02308b456c","63a399193901f439517cafb6","63a39fc0af870e651d58e6ae","63a39fdf1e21260da44a0256","6582dbf0b8d7830efc45016f","664d3db6db5dea2bad286955","664d3dd590294949fe2d81b7","664d3ddfdda2e85aca370d75","664d3de85f2355673b09aed5","664d4b0103ef2c61246afb56","6761a6ccd9bbb27ad703c48a","6761a6f90575f25e020816a4"], + "MarkedKeys":["5780cf7f2459777de4559322", "5d80c60f86f77440373c4ece", "5d80c62a86f7744036212b3f", "5ede7a8229445733cb4c18e2", "63a3a93f8a56922e82001f5d", "64ccc25f95763a1ae376e447", "62987dfc402c7f69bf010923"], + "traderArray": ["54cb50c76803fa8b248b4571", "54cb57776803fa99248b456e","579dc571d53a0658a154fbec", "58330581ace78e27b8b10cee", "5935c25fb3acc3127c3d8cd9", "5a7c2eca46aef81a7ca2145d", "5ac3b934156ae10c4430e83c", "5c0647fdd443bc2504c2d371","6617beeaa9cfa777ca915b7c"], + "CasesID":["59fb016586f7746d0d4b423a","5783c43d2459774bbe137486","60b0f6c058e0b0481a09ad11","5e2af55f86f7746d4159f07c","59fb042886f7746c5005a7b2","59fb023c86f7746d0d4b423c","5b7c710788a4506dec015957","5aafbde786f774389d0cbc0f","5c127c4486f7745625356c13","5c093e3486f77430cb02e593","5aafbcd986f7745e590fff23","5c0a840b86f7742ffa4f2482","5b6d9ce188a4501afc1b2b25","5d235bb686f77443f4331278","59fafd4b86f7745ca07e1232","590c60fc86f77412b13fddcf","567143bf4bdc2d1a0f8b4567","5c093db286f7740a1b2617e3","619cbf7d23893217ec30b689","619cbf9e0a7c3a1a2731940a","62a09d3bcf4a99369e262447","66bc98a01a47be227a5e956e","67600929bd0a0549d70993f6"], + "SecConID":["544a11ac4bdc2d470e8b456a","5c093ca986f7740a1867ab12","5857a8b324597729ab0a0e7d","59db794186f77448bc595262","5857a8bc2459772bad15db29","665ee77ccf2d642e98220bca","5732ee6a24597719ae0c0281","64f6f4c5911bcdfe8b03b0dc"], + "AIAmount":["AsOnline","Low","Medium","High","Horde","NoBots"], + "AIDifficulty":["AsOnline","Easy","Medium","Hard","Impossible","Random"], + "Types":["Elimination","Completion","Exploration"] +} \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/src/Misc.json b/user/mods/[SVM] Server Value Modifier/src/Misc.json new file mode 100644 index 0000000..f9270be --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/src/Misc.json @@ -0,0 +1,127 @@ +{ +"funni":[ + "Have you tried Minecraft though?", + "I hope Nikita is proud of me", + "This release provides you 16x time the details according to Todd Howard", + "Bears are based but cringe, Usecs are cringe but based", + "69.6969% of the update time were wasted for this specific line you're reading", + "Still not enough tooltips added, slight chance to get stuck in a toaster", + "Kept ya waiting huh?", + "You're finally awake, you were trying to play like a chad, right?", + "It's here, lurking in the shadows", + "Chomp goes Caw Caw", + "Goose goes Honk Honk", + "GhostFenixx goes 'Not again'", + "No more KMC ;-;", + "Hello, how's your day? :]", + "I hope you have enough RAM to play this", + "Wipe at Thursday", + "Tagilla locked me up in the basement to write mods for Tarkov, send help", + "If you're reading this, you're capable of reading!", + "Who wrote this stuff anyway?", + "Hot single SCAVs in you area!", + "These lines are such a waste of space", + "I know you are reading this", + "Do you like hurting other people?", + "Don't play Gaijin games, such a cash grab, good source of classified data tho", + "YOU, YES YOU, YOU ARE AWESOME, NOW LIVE WITH THAT!", + "Did you wash your dishes?", + "I actually played tarkov, finally", + "rat attac", + "Don't worry, I won't judge your preferences, you're my favorite casual <3", + "Me (Head-Eyes) You", + "HE DID THE WIGGLE!", + "Are you sure you enabled sections?", + "Did you know? If you kill guys with guns, there will be no one to kill you!", + "The all consuming gluttony is approaching", + "I swear if I forgot to remove a logger somewhere i'll choke someone", + "Go on, tell me you're trying to run EFT with 8GB of ram", + "Are you seriously playing SPT by yourself?", + "No, Putting 16x Scope onto TOZ is not a great idea", + "Don't dissapoint the Glock Daddy", + "Still can't play streets, right? I feel ya", + "Go on, take SVD into factory, see if I care", + "RFB AND VPO FOR THE WIN!", + "Makes your experience better since 2021!", + "Dear diary, today I died with LEDX not in the secure container", + "ALL SCREWS, NO NUTS, WHY?", + "One does not simply launch flare properly", + "Noooo, don't go that corridor, there is a mine in the room!", + "No more Autumn in Tarkov", + "The Holy Fox is gone", + "Don't play MMO's, those are unhealthy", + "I really hope you do not restart the server to read those", + "There will be Up. Date. A creator on website nodes his head.", + "Stay Hydrated", + "Still filled with bugs, don't worry", + "Pls leave a like and subscribe, don't forget to click a bell button", + "Name of your PMC is disgusting, please revaluate your life choices", + "Why do you want to carry 2000 rounds in one slot?", + "Really? 20x2 cell sized pockets?", + "Extremis malis extrema remedia, effugere non potes", + "You're a PMC, Harry!", + "Join the Dark side, we have Igolniks", + "Imagine how many people died stepping on mines in Woods because they can't read the signs", + "Each new line added in message of the day is increasing the load on your CPU, let that sink in", + "Totally against Nikita(tm) vision(tm).", + "3 HEAVY BLEEDS IN ONE SHOT, THANKS SCAV!", + "Nice work bitch!", + "You can never go wrong loading .366 into 7.62x39 chamber", + "There was a blue sky and bright yellow field, but now it is always dark and gray", + "This mod probably works...Mostly? Hopefully?", + "I have 59 bazillion mods, why X field doesn't work?", + "What?", + "Really, stop looking here, play the game already >:C", + "Someday I'll paste whole Bee movie script here", + "They added a Deagle in the game...Makes me miss KMC once again", + "Swedish siesta is fun ngl", + "Yep, people still seem to fail to install this mod", + "Cats are still superior than dogs, CWX.", + "Someday the war will be over but the world won't be the same...", + "Do yourself a favor, stop shitposting", + "Show must go on!", + ">Are You Happy? >No. >Why? >I play Escape from Tarkov", + "Deagle or Rsh12? That's the question.", + "You know, if you won't report issues to GhostFenixx, they won't be fixed.", + "Your AD could be here", + "А Я і досі у пошуках щастя", + "Вышел, блин, за хлебушком", + "Angel, save us!", + "You, Me, Factory, Full of nades", + "Damn bruv, your profile name is cringe", + "You're pretty good", + "ПРОДАМ ГАРАЖ", + "Fuck you, multitool", + "Just one more run to labs, it will be fine, i promise", + "ERROR, THE USER IS TOO HANDSOME TO PLAY THIS GAME!", + "Going for the resort for a red card is like a definition of insanity", + "I hope this app won't end in torrents", + "Сподіваюсь, з тобою все гаразд", + "[Insert Fun stuff for ADHD kiddos]", + "Want some game recommendation? Well I've got none, otherwise I wouldn't play EFT", + "Want some music recommendation? Check Solence.", + "Want some music recommendation? Check Architects.", + "Want some music recommendation? Check Bad Omens.", + "Want some music recommendation? Check Geneburn... Nah, i'm joking, Check Motionless in White.", + "Want some music recommendation? Check Imminence.", + "Want some music recommendation? Check Cantervice.", + "You better not forget to take splint with you this time", + "More music? Fine: Saint Asonia, Alesti, Memphis May Fire", + "Not really hyped for 2025 ngl", + "Four letters is better than three", + "No, these messages are not made by ChatGPT", + "I finally tried stalker 2, could've been better", + "Unironically gonna listen to C418", + "Want some DnB? Celldweller, Raizer, Blue Stahli", + "I hate winter", + "Astrobot being GOTY is a joke", + "I really ran out of stuff to type here", + "Denuvo sucks, big corpos never learn", + "I'll miss Ubisoft", + "Yes, i hate Jaeger quests sometimes as well", + "Haha, your SSD goes BRRRRR", + "Not a fan or orange color really, neither of alternate current", + "XcQ, IYKYK", + "\nI/Ii\nI|/I_", + "You cannot Escape From -REDACTED BY LICENSE VIOLATION-"] +} \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/src/SVM.js b/user/mods/[SVM] Server Value Modifier/src/SVM.js new file mode 100644 index 0000000..d468628 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/src/SVM.js @@ -0,0 +1,2513 @@ +"use strict"; + +class MainSVM { + preSptLoad(container) { + const Logger = container.resolve("WinstonLogger"); + try { //Checking for loader.json, if doesn't exist - throw a message, disable the mod. + const PresetLoader = require('../Loader/loader.json'); + if (PresetLoader.CurrentlySelectedPreset == null || PresetLoader.CurrentlySelectedPreset == "null") { + Logger.warning("[SVM] Null Preset detected, SVM is disabled, Most likely you're running this mod for the first time, head to the SVM mod folder and run the Greed.exe"); + return + } + const Config = require('../Presets/' + PresetLoader.CurrentlySelectedPreset + '.json'); + } + catch (e) { + const Logger = container.resolve("WinstonLogger"); + Logger.warning("\n[SVM] SVM is lacking loader file or there is an error, mod is disabled\n" + + "Most likely you're running this mod for the first time, head to the SVM mod folder and run the Greed.exe\n" + + "Don't forget to apply your changes...Really, hit that Apply button, it will create loader file\n" + + "[SVM] If it's Syntax error, edit it manually in loader.json or/and edit values with UIs properly\n" + + "Exception message below may help you distinguish what went wrong:\n"); + Logger.error(e.message + "\n"); + return + } + const PresetLoader = require('../Loader/loader.json'); + const Config = require('../Presets/' + PresetLoader.CurrentlySelectedPreset + '.json'); + const StaticRouterModService = container.resolve("StaticRouterModService"); + const HttpResponse = container.resolve("HttpResponseUtil"); + //PRE LOAD - RAIDS SECTION + if (Config.Raids.RaidEvents.Halloween || Config.Raids.RaidEvents.Christmas)//Extra check, just in case + { + StaticRouterModService.registerStaticRouter("EventOverride", + [ + { + url: "/client/game/version/validate", + action: (url, info, sessionID) => { + const DB = container.resolve("DatabaseService"); + const globalConfig = DB.getGlobals().config; + const configServer = container.resolve("ConfigServer"); + const SeasonalEventService = container.resolve("SeasonalEventService"); + const Events = configServer.getConfig("spt-seasonalevents"); + + //let event = []; + if (Config.Raids.RaidEvents.Christmas) { + SeasonalEventService.christmasEventActive = true; + SeasonalEventService.updateGlobalEvents(globalConfig, Events.events[1]); + } + if (Config.Raids.RaidEvents.Halloween) { + SeasonalEventService.halloweenEventActive = true; + SeasonalEventService.updateGlobalEvents(globalConfig, Events.events[0]); + } + return HttpResponse.nullResponse(); + } + } + ], "spt"); + } + if (Config.Hideout.EnableHideout) { + if (Config.Hideout.Regeneration.OfflineRegen) { + container.afterResolution("GameController", (_t, result) => { + result.updateProfileHealthValues = (url, info, sessionID) => { + } + }, { frequency: "Always" }); + } + } + + if (Config.Raids.SafeExit) { + container.afterResolution("MatchCallbacks", (_t, result) => { + result.endLocalRaid = (url, info, sessionID) => { + if (info.results.result == "Left" && info.results.profile.Info.Side !== "Savage") { + info.results.result = "Runner" + } + const MatchController = container.resolve("MatchController"); + MatchController.endLocalRaid(sessionID, info); + return HttpResponse.nullResponse(); + } + }, { frequency: "Always" }); + } + if (Config.Raids.SaveGearAfterDeath) { + container.afterResolution("MatchCallbacks", (_t, result) => { + result.endLocalRaid = (url, info, sessionID) => { + if (info.results.result !== "Survived" && info.results.profile.Info.Side !== "Savage") { + info.results.result = "Runner" + } + const MatchController = container.resolve("MatchController"); + MatchController.endLocalRaid(sessionID, info); + return HttpResponse.nullResponse(); + } + }, { frequency: "Always" }); + } + //PRE LOAD - CSM SECTION + //Attempt to fix pockets if custom is not present + StaticRouterModService.registerStaticRouter("Revive Pockets", + [ + { + url: "/client/game/version/validate", + action: (url, info, sessionID) => { + let pmcData = container.resolve("ProfileHelper").getPmcProfile(sessionID); + let pockets; + try { + if (pmcData.Info.GameVersion == "unheard_edition") { + pockets = "65e080be269cbd5c5005e529"; + } + else { + pockets = "627a4e6b255f7527fb05a0f6"; + } + pmcData.Inventory.items.forEach((item) => { + if (item.slotId == "Pockets" && item._tpl == "a8edfb0bce53d103d3f62b9b") { + item._tpl = pockets; + } + }) + return HttpResponse.nullResponse(); + } + catch (e) { + Logger.warning("[SVM] REVIVE POCKETS - Attempt cancelled - New profile? Ignore if so.\n" + e.message) + return HttpResponse.nullResponse(); + } + } + }], "spt"); + if (Config.CSM.EnableCSM && Config.CSM.CustomPocket) { + StaticRouterModService.registerStaticRouter("CustomPocket", + [ + { + url: "/client/game/version/validate", + action: (url, info, sessionID) => { + let pmcData = container.resolve("ProfileHelper").getPmcProfile(sessionID); + try { + pmcData.Inventory.items.forEach((item) => { + if (item.slotId == "Pockets") { + item._tpl = "a8edfb0bce53d103d3f62b9b"; + } + }) + return HttpResponse.nullResponse(); + } + catch (e) { + Logger.warning("[SVM] CSM CUSTOM POCKETS - New profile detected, Cancelling function, restart the game to fix it.\n" + e.message) + return HttpResponse.nullResponse(); + } + } + }], "spt"); + } + //HEALTH + SCAV FUNCTIONS + if (Config.Player.EnableHealth || Config.Scav.EnableScavHealth || Config.Scav.ScavCustomPockets || Config.Player.EnableStats || Config.Scav.EnableStats) + //TO OVERRIDE HEALTH, STATS + CURRENT SCAV HEALTH, STATS AND POCKETS BEFORE RAID + { + StaticRouterModService.registerStaticRouter("EditHealth", + [ + { + url: "/client/game/version/validate", + action: (url, info, sessionID) => { + try { + let pmcData = container.resolve("ProfileHelper").getPmcProfile(sessionID); + let scavData = container.resolve("ProfileHelper").getScavProfile(sessionID); + if (Config.Player.EnableStats) { + pmcData.Health.Energy.Maximum = Config.Player.PMCStats.MaxEnergy; + pmcData.Health.Hydration.Maximum = Config.Player.PMCStats.MaxHydration; + } + if (Config.Scav.EnableStats) { + scavData.Health.Energy.Maximum = Config.Scav.ScavStats.MaxEnergy; + scavData.Health.Hydration.Maximum = Config.Scav.ScavStats.MaxHydration; + } + if (Config.Player.EnableHealth) { + HealthEdit(pmcData, Config.Player.Health.Head, Config.Player.Health.Chest, Config.Player.Health.Stomach, Config.Player.Health.LeftArm, Config.Player.Health.LeftLeg, Config.Player.Health.RightArm, Config.Player.Health.RightLeg, "Maximum"); + } + if (Config.Scav.EnableScavHealth) { + HealthEdit(scavData, Config.Scav.Health.Head, Config.Scav.Health.Chest, Config.Scav.Health.Stomach, Config.Scav.Health.LeftArm, Config.Scav.Health.LeftLeg, Config.Scav.Health.RightArm, Config.Scav.Health.RightLeg, "Current"); + HealthEdit(scavData, Config.Scav.Health.Head, Config.Scav.Health.Chest, Config.Scav.Health.Stomach, Config.Scav.Health.LeftArm, Config.Scav.Health.LeftLeg, Config.Scav.Health.RightArm, Config.Scav.Health.RightLeg, "Maximum"); + } + if (Config.Scav.ScavCustomPockets) { + scavData.Inventory.items.forEach((item) => { + if (item.slotId == "Pockets") { + item._tpl = "a8edfb0bce53d103d3f6219b"; + } + }) + } + return HttpResponse.nullResponse(); + } + catch (e) { + Logger.warning("[SVM] PMC/SCAV HEALTH/STATS - Didn't manage to apply settings, new profile?\n" + e) + return HttpResponse.nullResponse(); + } + } + }], "spt"); + } + if (Config.Scav.EnableScavHealth || Config.Scav.ScavCustomPockets || Config.Scav.EnableStats) { // TO OVERRIDE NEXT SCAVS HEALTH + POCKETS + //May Omnissiah save our souls, have to use both because register affects deaths and resolution affects extracts. Don't ask + // ###### SURVIVED + container.afterResolution("ProfileController", (_t, result) => { + result.generatePlayerScav = (sessionID) => { + const playerScavGenerator = container.resolve("PlayerScavGenerator"); + const scavData = playerScavGenerator.generate(sessionID); + if (Config.Scav.EnableStats) { + scavData.Health.Energy.Maximum = Config.Scav.ScavStats.MaxEnergy; + scavData.Health.Hydration.Maximum = Config.Scav.ScavStats.MaxHydration; + } + if (Config.Scav.EnableScavHealth) { + HealthEdit(scavData, Config.Scav.Health.Head, Config.Scav.Health.Chest, Config.Scav.Health.Stomach, Config.Scav.Health.LeftArm, Config.Scav.Health.LeftLeg, Config.Scav.Health.RightArm, Config.Scav.Health.RightLeg, "Current"); + HealthEdit(scavData, Config.Scav.Health.Head, Config.Scav.Health.Chest, Config.Scav.Health.Stomach, Config.Scav.Health.LeftArm, Config.Scav.Health.LeftLeg, Config.Scav.Health.RightArm, Config.Scav.Health.RightLeg, "Maximum"); + } + if (Config.Scav.ScavCustomPockets) { + scavData.Inventory.items.forEach((item) => { + if (item.slotId == "Pockets") { + item._tpl = "a8edfb0bce53d103d3f6219b"; + } + }) + } + return scavData; + } + }, { frequency: "Always" }); + // ###### DIED + StaticRouterModService.registerStaticRouter("EditHealthv2", + [ + { + url: "/client/match/local/end", + action: (url, info, sessionID) => { + if (info.results.result !== "Survived" && info.results.result !== "Transit" && info.results.result !== "Runner") // 3.9.0 If statement for avoiding rerolling survived SCAV, biggest issue of 1.8.3 + { + const saveServer = container.resolve("SaveServer"); + const playerScavGenerator = container.resolve("PlayerScavGenerator"); + const scavData = playerScavGenerator.generate(sessionID); + if (Config.Scav.EnableStats) { + scavData.Health.Energy.Maximum = Config.Scav.ScavStats.MaxEnergy; + scavData.Health.Hydration.Maximum = Config.Scav.ScavStats.MaxHydration; + } + if (Config.Scav.EnableScavHealth) { + HealthEdit(scavData, Config.Scav.Health.Head, Config.Scav.Health.Chest, Config.Scav.Health.Stomach, Config.Scav.Health.LeftArm, Config.Scav.Health.LeftLeg, Config.Scav.Health.RightArm, Config.Scav.Health.RightLeg, "Current"); + HealthEdit(scavData, Config.Scav.Health.Head, Config.Scav.Health.Chest, Config.Scav.Health.Stomach, Config.Scav.Health.LeftArm, Config.Scav.Health.LeftLeg, Config.Scav.Health.RightArm, Config.Scav.Health.RightLeg, "Maximum"); + } + if (Config.Scav.ScavCustomPockets) { + scavData.Inventory.items.forEach((item) => { + if (item.slotId == "Pockets") { + item._tpl = "a8edfb0bce53d103d3f6219b"; + } + }) + } + saveServer.getProfile(sessionID).characters.scav = scavData; + } + return HttpResponse.nullResponse(); + } + }], "spt"); + } + function HealthEdit(Data, Head, Chest, Stomach, LeftArm, LeftLeg, RightArm, RightLeg, CurMax) { + try { + Data.Health.BodyParts["Head"].Health[CurMax] = Head + Data.Health.BodyParts["Chest"].Health[CurMax] = Chest + Data.Health.BodyParts["Stomach"].Health[CurMax] = Stomach + Data.Health.BodyParts["LeftArm"].Health[CurMax] = LeftArm + Data.Health.BodyParts["LeftLeg"].Health[CurMax] = LeftLeg + Data.Health.BodyParts["RightArm"].Health[CurMax] = RightArm + Data.Health.BodyParts["RightLeg"].Health[CurMax] = RightLeg + } + catch { + Logger.error("[SVM] HEALTH EDIT - Something went wrong with trying to generate custom maximum health, new profile? \n" + e) + } + } + } + postDBLoad(container) { + const PreDBStart = performance.now(); + const Logger = container.resolve("WinstonLogger"); + try {//This is dumb piece of code is a handler so PostDB won't run after PreDB did throw a message that something ain't right with the loader. + const PresetLoader = require('../Loader/loader.json'); + const Config = require('../Presets/' + PresetLoader.CurrentlySelectedPreset + '.json'); + } + catch (e) { + return + } + //Config variables to asset for funcs. + const PresetLoader = require('../Loader/loader.json'); + const Config = require('../Presets/' + PresetLoader.CurrentlySelectedPreset + '.json'); + const Arrays = require('../src/Arrays.json'); + //DB redirects + const DB = container.resolve("DatabaseService").getTables(); + const hideout = DB.hideout; + const locations = DB.locations; + const traders = DB.traders; + const Quests = DB.templates.quests; + const suits = DB.templates.customization; + const items = DB.templates.items; + const globals = DB.globals.config; + const Bot = DB.bots.types + // Redirects to server internal configs. + const configServer = container.resolve("ConfigServer"); + const Inraid = configServer.getConfig("spt-inraid"); + const Repair = configServer.getConfig("spt-repair"); + const locs = configServer.getConfig("spt-location"); + const Airdrop = configServer.getConfig("spt-airdrop"); + const Ragfair = configServer.getConfig("spt-ragfair"); + const Insurance = configServer.getConfig("spt-insurance"); + const Health = configServer.getConfig("spt-health"); + const Bots = configServer.getConfig("spt-bot"); + const Quest = configServer.getConfig("spt-quest"); + const HideoutConfig = configServer.getConfig("spt-hideout"); + const WeatherValues = configServer.getConfig("spt-weather"); + const trader = configServer.getConfig("spt-trader"); + const Events = configServer.getConfig("spt-seasonalevents"); + //const Inventory = configServer.getConfig("aki-inventory"); + const BlackItems = configServer.getConfig("spt-item"); + const PMC = configServer.getConfig("spt-pmc") + + //############## FLEAMARKET SECTION ########### + if (Config.Fleamarket.EnableFleamarket) { + if (Config.Fleamarket.EnablePlayerOffers) { + globals.RagFair.minUserLevel = Config.Fleamarket.FleaMarketLevel; + Ragfair.dynamic.purchasesAreFoundInRaid = Config.Fleamarket.FleaFIR; + globals.RagFair.isOnlyFoundInRaidAllowed = Config.Fleamarket.FleaNoFIRSell; + Ragfair.dynamic.blacklist.enableBsgList = !Config.Fleamarket.DisableBSGList; + Ragfair.sell.fees = Config.Fleamarket.EnableFees; + Ragfair.sell.chance.base = Config.Fleamarket.Sell_chance; + Ragfair.sell.chance.sellMultiplier = Config.Fleamarket.Sell_mult; + Ragfair.sell.time.max = Config.Fleamarket.Tradeoffer_max; + Ragfair.sell.time.min = Config.Fleamarket.Tradeoffer_min; + globals.RagFair.ratingIncreaseCount = Config.Fleamarket.Rep_gain; + globals.RagFair.ratingDecreaseCount = Config.Fleamarket.Rep_loss; + + if (Config.Fleamarket.OverrideOffers) { + const offer = { + "from": -100000, + "to": 100000, + "count": Config.Fleamarket.SellOffersAmount + } + globals.RagFair.maxActiveOfferCount = [] + globals.RagFair.maxActiveOfferCount.push(offer) + } + } + //Bundle Chance + Ragfair.dynamic.pack.chancePercent = Config.Fleamarket.DynamicOffers.BundleOfferChance; + //Dynamic offers + Ragfair.dynamic.expiredOfferThreshold = Config.Fleamarket.DynamicOffers.ExpireThreshold; + //Min-Max + Ragfair.dynamic.offerItemCount.min = Config.Fleamarket.DynamicOffers.PerOffer_min; + Ragfair.dynamic.offerItemCount.max = Config.Fleamarket.DynamicOffers.PerOffer_max; + //Unifying the multiplier, not the best case scenario, but it is rather simple to comprehend and modify for common user, they'll never know >_> + Ragfair.dynamic.priceRanges.default.min = Config.Fleamarket.DynamicOffers.Price_min; + Ragfair.dynamic.priceRanges.default.max = Config.Fleamarket.DynamicOffers.Price_max; + Ragfair.dynamic.priceRanges.pack.min = Config.Fleamarket.DynamicOffers.Price_min; + Ragfair.dynamic.priceRanges.pack.max = Config.Fleamarket.DynamicOffers.Price_max; + Ragfair.dynamic.priceRanges.preset.min = Config.Fleamarket.DynamicOffers.Price_min; + Ragfair.dynamic.priceRanges.preset.max = Config.Fleamarket.DynamicOffers.Price_max; + Ragfair.dynamic.endTimeSeconds.min = Config.Fleamarket.DynamicOffers.Time_min * 60; + Ragfair.dynamic.endTimeSeconds.max = Config.Fleamarket.DynamicOffers.Time_max * 60; + Ragfair.dynamic.nonStackableCount.min = Config.Fleamarket.DynamicOffers.NonStack_min; + Ragfair.dynamic.nonStackableCount.max = Config.Fleamarket.DynamicOffers.NonStack_max; + Ragfair.dynamic.stackablePercent.min = Config.Fleamarket.DynamicOffers.Stack_min; + Ragfair.dynamic.stackablePercent.max = Config.Fleamarket.DynamicOffers.Stack_max; + //Currencies + Ragfair.dynamic.currencies["5449016a4bdc2d6f028b456f"] = Config.Fleamarket.DynamicOffers.Roubleoffers; + Ragfair.dynamic.currencies["5696686a4bdc2da3298b456a"] = Config.Fleamarket.DynamicOffers.Dollaroffers; + Ragfair.dynamic.currencies["569668774bdc2da2298b4568"] = Config.Fleamarket.DynamicOffers.Eurooffers; + //Wear condition in offers + if (Config.Fleamarket.EnableFleaConditions) + Ragfair.dynamic.condition["5422acb9af1c889c16000029"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaWeapons_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["543be5664bdc2dd4348b4569"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaMedical_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["5447e0e74bdc2d3c308b4567"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaSpec_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["543be5e94bdc2df1348b4568"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaKeys_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["5448e5284bdc2dcb718b4567"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaVests_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["57bef4c42459772e8d35a53b"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaArmor_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["543be6674bdc2df1348b4569"].max.min = parseFloat((Config.Fleamarket.FleaConditions.FleaFood_Min / 100).toFixed(2)) + Ragfair.dynamic.condition["5422acb9af1c889c16000029"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaWeapons_Max / 100).toFixed(2)) + Ragfair.dynamic.condition["543be5664bdc2dd4348b4569"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaMedical_Max / 100).toFixed(2)) + Ragfair.dynamic.condition["5447e0e74bdc2d3c308b4567"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaSpec_Max / 100).toFixed(2)) + Ragfair.dynamic.condition["543be5e94bdc2df1348b4568"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaKeys_Max / 100).toFixed(2)) + Ragfair.dynamic.condition["5448e5284bdc2dcb718b4567"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaVests_Max / 100).toFixed(2)) + Ragfair.dynamic.condition["57bef4c42459772e8d35a53b"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaArmor_Max / 100).toFixed(2)) + Ragfair.dynamic.condition["543be6674bdc2df1348b4569"].max.max = parseFloat((Config.Fleamarket.FleaConditions.FleaFood_Max / 100).toFixed(2)) + } + //############## LOOT SECTION ################# + if (Config.Loot.EnableLoot) { + //loose loot mults + locs.looseLootMultiplier.bigmap = Config.Loot.Locations.Bigmap.Loose; + locs.looseLootMultiplier.factory4_day = Config.Loot.Locations.FactoryDay.Loose; + locs.looseLootMultiplier.factory4_night = Config.Loot.Locations.FactoryNight.Loose; + locs.looseLootMultiplier.interchange = Config.Loot.Locations.Interchange.Loose; + locs.looseLootMultiplier.laboratory = Config.Loot.Locations.Laboratory.Loose; + locs.looseLootMultiplier.rezervbase = Config.Loot.Locations.Reserve.Loose; + locs.looseLootMultiplier.shoreline = Config.Loot.Locations.Shoreline.Loose; + locs.looseLootMultiplier.woods = Config.Loot.Locations.Woods.Loose; + locs.looseLootMultiplier.lighthouse = Config.Loot.Locations.Lighthouse.Loose; + locs.looseLootMultiplier.tarkovstreets = Config.Loot.Locations.Streets.Loose; + locs.looseLootMultiplier.sandbox = Config.Loot.Locations.Sandbox.Loose; + locs.looseLootMultiplier.sandbox_high = Config.Loot.Locations.SandboxHard.Loose; + //container loot mults + locs.staticLootMultiplier.bigmap = Config.Loot.Locations.Bigmap.Container; + locs.staticLootMultiplier.factory4_day = Config.Loot.Locations.FactoryDay.Container; + locs.staticLootMultiplier.factory4_night = Config.Loot.Locations.FactoryNight.Container; + locs.staticLootMultiplier.interchange = Config.Loot.Locations.Interchange.Container; + locs.staticLootMultiplier.laboratory = Config.Loot.Locations.Laboratory.Container; + locs.staticLootMultiplier.rezervbase = Config.Loot.Locations.Reserve.Container; + locs.staticLootMultiplier.shoreline = Config.Loot.Locations.Shoreline.Container; + locs.staticLootMultiplier.woods = Config.Loot.Locations.Woods.Container; + locs.staticLootMultiplier.lighthouse = Config.Loot.Locations.Lighthouse.Container; + locs.staticLootMultiplier.tarkovstreets = Config.Loot.Locations.Streets.Container; + locs.staticLootMultiplier.sandbox = Config.Loot.Locations.Sandbox.Container; + locs.staticLootMultiplier.sandbox_high = Config.Loot.Locations.SandboxHard.Container; + locs.containerRandomisationSettings.enabled = !Config.Loot.Locations.AllContainers + //############## AIRDROPS SECTION ################## + locations["bigmap"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Bigmap_air / 100).toFixed(2)); + locations["shoreline"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Shoreline_air / 100).toFixed(2)); + locations["rezervbase"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Reserve_air / 100).toFixed(2)); + locations["lighthouse"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Lighthouse_air / 100).toFixed(2)); + locations["interchange"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Interchange_air / 100).toFixed(2)); + locations["tarkovstreets"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Streets_air / 100).toFixed(2)); + locations["sandbox"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Sandbox_air / 100).toFixed(2)); + locations["sandbox_high"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Sandbox_air / 100).toFixed(2)); + locations["woods"].base.AirdropParameters[0].PlaneAirdropChance = parseFloat((Config.Loot.Airdrops.Woods_air / 100).toFixed(2)); + for (let timers in locations) { + if (timers != "develop" && timers != "base" && timers != "privatearea" && timers != "terminal" && timers != "factory4_day" && timers != "hideout" && timers != "laboratory" && timers != "factory4_night" && timers != "town" && timers != "suburbs") {// 3.10 need to rework. + locations[timers].base.AirdropParameters[0].PlaneAirdropStartMin = Config.Loot.Airdrops.AirtimeMin * 60; + locations[timers].base.AirdropParameters[0].PlaneAirdropStartMax = Config.Loot.Airdrops.AirtimeMax * 60; + } + } + let Mixed = Config.Loot.Airdrops.Mixed + let Weapon = Config.Loot.Airdrops.Weapon + let Barter = Config.Loot.Airdrops.Barter + let Medical = Config.Loot.Airdrops.Medical + AirdropContents("mixed", Mixed) + AirdropContents("weaponArmor", Weapon) + AirdropContents("barter", Barter) + AirdropContents("foodMedical", Medical) + } + //############## BOTS SECTION ################# + if (Config.Bots.EnableBots) { + for (let i in locations) { + if (i !== "base" && locations[i].base.BossLocationSpawn) { + for (let x in locations[i].base.BossLocationSpawn) { + switch (locations[i].base.BossLocationSpawn[x].BossName) { + case "bossBoar": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Kaban + break; + case "bossKolontay": + if (i == "sandbox_high") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.KolontayGZ + } + if (i == "tarkovstreets") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.KolontayStreets + } + break; + case "bossPartisan": + if (i == "bigmap") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.PartisanCustoms + if (Config.Bots.AIChance.ForcePartisan) { + locations[i].base.BossLocationSpawn[x].TriggerId = ""; + locations[i].base.BossLocationSpawn[x].botEvent = ""; + } + } + if (i == "shoreline") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.PartisanShoreline + if (Config.Bots.AIChance.ForcePartisan) { + locations[i].base.BossLocationSpawn[x].TriggerId = ""; + locations[i].base.BossLocationSpawn[x].botEvent = ""; + } + } + if (i == "lighthouse") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.PartisanLighthouse + if (Config.Bots.AIChance.ForcePartisan) { + locations[i].base.BossLocationSpawn[x].TriggerId = ""; + locations[i].base.BossLocationSpawn[x].botEvent = ""; + } + } + if (i == "woods") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.PartisanWoods + if (Config.Bots.AIChance.ForcePartisan) { + locations[i].base.BossLocationSpawn[x].TriggerId = ""; + locations[i].base.BossLocationSpawn[x].botEvent = ""; + } + } + break; + case "bossBully": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Reshala + break; + case "bossSanitar": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Sanitar + break; + case "bossKilla": + if (i == "interchange") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Killa + } + break; + case "bossTagilla": + if (i == "factory4_day") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Tagilla + } + if (i == "factory4_night") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.TagillaNight + } + break; + case "bossGluhar": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Glukhar + break; + case "bossKojaniy": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Shturman + break; + case "bossZryachiy": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Zryachiy + break; + case "exUsec": + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Rogue + break; + case "bossKnight": + if (i == "woods") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.TrioWoods + } + if (i == "shoreline") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.TrioShoreline + } + if (i == "bigmap") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.Trio + } + if (i == "lighthouse") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.TrioLighthouse + } + break; + case "pmcBot": + if (i == "laboratory") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.RaiderLab + } + if (i == "rezervbase") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.RaiderReserve + } + break; + case "sectantPriest": + if (i == "factory4_night") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.CultistFactory + } + if (i == "woods") { + + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.CultistWoods + } + if (i == "bigmap") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.CultistCustoms + } + if (i == "shoreline") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Bots.AIChance.CultistShoreline + } + break; + } + } + } + } + const WepDur = Config.Bots.WeaponDurab; + const ArmorDur = Config.Bots.ArmorDurab; + const BotWepMinID = [WepDur.ScavMin, WepDur.MarksmanMin, WepDur.RaiderMin, WepDur.RogueMin, WepDur.PMCMin, WepDur.BossMin, WepDur.FollowerMin]; + const BotWepMaxID = [WepDur.ScavMax, WepDur.MarksmanMax, WepDur.RaiderMax, WepDur.RogueMax, WepDur.PMCMax, WepDur.BossMax, WepDur.FollowerMax]; + const BotArmorMinID = [ArmorDur.ScavMin, ArmorDur.MarksmanMin, ArmorDur.RaiderMin, ArmorDur.RogueMin, ArmorDur.PMCMin, ArmorDur.BossMin, ArmorDur.FollowerMin]; + const BotArmorMaxID = [ArmorDur.ScavMax, ArmorDur.MarksmanMax, ArmorDur.RaiderMax, ArmorDur.RogueMax, ArmorDur.PMCMax, ArmorDur.BossMax, ArmorDur.FollowerMax]; + + const BotTypeID = ["assault", "marksman", "pmcbot", "exusec", "pmc", "boss", "follower"] + for (let durab in BotTypeID) { + AdjustDurab(Bots.durability[BotTypeID[durab]], BotWepMinID[durab], BotWepMaxID[durab], BotArmorMinID[durab], BotArmorMaxID[durab]) + switch (BotTypeID[durab]) { + case "assault": + AdjustDurab(Bots.durability["cursedassault"], BotWepMinID[durab], BotWepMaxID[durab], BotArmorMinID[durab], BotArmorMaxID[durab]) + AdjustDurab(Bots.durability["crazyassaultevent"], BotWepMinID[durab], BotWepMaxID[durab], BotArmorMinID[durab], BotArmorMaxID[durab]) + break; + case "pmcbot": + AdjustDurab(Bots.durability["arenafighterevent"], BotWepMinID[durab], BotWepMaxID[durab], BotArmorMinID[durab], BotArmorMaxID[durab]) + break + case "boss": + AdjustDurab(Bots.durability["sectantpriest"], BotWepMinID[durab], BotWepMaxID[durab], BotArmorMinID[durab], BotArmorMaxID[durab]) + break; + case "follower": + AdjustDurab(Bots.durability["sectantwarrior"], BotWepMinID[durab], BotWepMaxID[durab], BotArmorMinID[durab], BotArmorMaxID[durab]) + break; + } + } + } + //############## INSURANCE/REPAIR SECTION ############ + if (Config.Services.EnableServices) { + //Repair.priceMultiplier = Config.Insurance.RepairBox.RepairMult; Disabled due to visual bug - it doesn't show converted number, the function itself is working tho + Repair.armorKitSkillPointGainPerRepairPointMultiplier = Config.Services.RepairBox.ArmorSkillMult; + Repair.weaponTreatment.pointGainMultiplier = Config.Services.RepairBox.WeaponMaintenanceSkillMult; + Repair.repairKitIntellectGainMultiplier.weapon = Config.Services.RepairBox.IntellectSkillMultWeaponKit; + Repair.repairKitIntellectGainMultiplier.armor = Config.Services.RepairBox.IntellectSkillMultArmorKit; + Repair.maxIntellectGainPerRepair.kit = Config.Services.RepairBox.IntellectSkillLimitKit; + Repair.maxIntellectGainPerRepair.trader = Config.Services.RepairBox.IntellectSkillLimitTraders; + Repair.applyRandomizeDurabilityLoss = !Config.Services.RepairBox.NoRandomRepair; + if (Config.Services.EnableInsurance) { + Insurance.returnChancePercent["54cb50c76803fa8b248b4571"] = Config.Services.ReturnChancePrapor; + Insurance.returnChancePercent["54cb57776803fa99248b456e"] = Config.Services.ReturnChanceTherapist; + traders["54cb50c76803fa8b248b4571"].base.insurance.max_storage_time = Config.Services.PraporStorageTime; + traders["54cb57776803fa99248b456e"].base.insurance.max_storage_time = Config.Services.TherapistStorageTime; + traders["54cb50c76803fa8b248b4571"].base.insurance.min_return_hour = Config.Services.Prapor_Min; + traders["54cb50c76803fa8b248b4571"].base.insurance.max_return_hour = Config.Services.Prapor_Max; + traders["54cb57776803fa99248b456e"].base.insurance.min_return_hour = Config.Services.Therapist_Min; + traders["54cb57776803fa99248b456e"].base.insurance.max_return_hour = Config.Services.Therapist_Max; + Insurance.chanceNoAttachmentsTakenPercent = Config.Services.InsuranceAttachmentChance + //3.9.0 insurance fix + new fields + Insurance.runIntervalSeconds = Config.Services.InsuranceInterval + if (Config.Services.EnableTimeOverride) { + Insurance.returnTimeOverrideSeconds = Config.Services.InsuranceTimeOverride + } + let TherapistMult = [Config.Services.InsuranceMultTherapistLvl1, Config.Services.InsuranceMultTherapistLvl2, Config.Services.InsuranceMultTherapistLvl3, Config.Services.InsuranceMultTherapistLvl4] + for (let level in traders["54cb57776803fa99248b456e"].base.loyaltyLevels) { + traders["54cb57776803fa99248b456e"].base.loyaltyLevels[level].insurance_price_coef = TherapistMult[level] + } + let PraporMult = [Config.Services.InsuranceMultPraporLvl1, Config.Services.InsuranceMultPraporLvl2, Config.Services.InsuranceMultPraporLvl3, Config.Services.InsuranceMultPraporLvl4] + for (let level in traders["54cb50c76803fa8b248b4571"].base.loyaltyLevels) { + traders["54cb50c76803fa8b248b4571"].base.loyaltyLevels[level].insurance_price_coef = PraporMult[level] + } + } + //Enable all clothes available for both side + if (Config.Services.ClothesAnySide) { + for (let suit in suits) { + let suitData = suits[suit] + if (suitData._parent === "5cd944ca1388ce03a44dc2a4" || suitData._parent === "5cd944d01388ce000a659df9") { + suitData._props.Side = ["Bear", "Usec"]; + } + } + } + if (Config.Services.ClothesFree || Config.Services.ClothesLevelUnlock) { + for (let tradercloth in traders) { + if (traders[tradercloth].suits) { + for (let file in traders[tradercloth].suits) { + let fileData = traders[tradercloth].suits[file] + if (Config.Services.ClothesLevelUnlock) { + fileData.requirements.loyaltyLevel = 1; + fileData.requirements.profileLevel = 1; + fileData.requirements.standing = 0; + fileData.requirements.questRequirements = [];//Only adik hits this + fileData.requirements.achievementRequirements = []; // 1.10.1 Adik once again - removing the requirement for 'Master of Ultra' achievement. + } + //fileData.requirements.skillRequirements = [];//This is useless, it always stands for empty + if (Config.Services.ClothesFree) { + fileData.requirements.itemRequirements = []; + } + } + } + } + } + if (Config.Services.EnableHealMarkup) { + let TherapistLevels = [Config.Services.TherapistLvl1, Config.Services.TherapistLvl2, Config.Services.TherapistLvl3, Config.Services.TherapistLvl4] + for (let level in traders["54cb57776803fa99248b456e"].base.loyaltyLevels) { + traders["54cb57776803fa99248b456e"].base.loyaltyLevels[level].heal_price_coef = TherapistLevels[level] * 100 + } + globals.Health.HealPrice.TrialLevels = Config.Services.FreeHealLvl + globals.Health.HealPrice.TrialRaids = Config.Services.FreeHealRaids + } + if (Config.Services.EnableRepair) { + for (let CurTrader in traders) { + if (CurTrader !== "ragfair" && (CurTrader == "5a7c2eca46aef81a7ca2145d" || CurTrader == "5ac3b934156ae10c4430e83c" || CurTrader == "5c0647fdd443bc2504c2d371" || CurTrader == "54cb50c76803fa8b248b4571" || CurTrader == "54cb57776803fa99248b456e" || CurTrader == "579dc571d53a0658a154fbec" || CurTrader == "5935c25fb3acc3127c3d8cd9" || CurTrader == "58330581ace78e27b8b10cee")) { + for (let level in traders[CurTrader].base.loyaltyLevels) { + traders[CurTrader].base.loyaltyLevels[level].repair_price_coef *= Config.Services.RepairBox.RepairMult; + } + } + } + if (Config.Services.RepairBox.OpArmorRepair) { + for (let armormats in globals.ArmorMaterials) { + globals.ArmorMaterials[armormats].MaxRepairDegradation = 0 + globals.ArmorMaterials[armormats].MinRepairDegradation = 0 + globals.ArmorMaterials[armormats].MaxRepairKitDegradation = 0 + globals.ArmorMaterials[armormats].MinRepairKitDegradation = 0 + } + } + if (Config.Services.RepairBox.OpGunRepair) { + for (let stuff in items) { + if (items[stuff]._props.MaxRepairDegradation !== undefined && items[stuff]._props.MaxRepairKitDegradation !== undefined) { + EditSimpleItemData(stuff, "MinRepairDegradation", 0); + EditSimpleItemData(stuff, "MaxRepairDegradation", 0); + EditSimpleItemData(stuff, "MinRepairKitDegradation", 0); + EditSimpleItemData(stuff, "MaxRepairKitDegradation", 0); + } + } + } + } + } + //############## CSM SECTION ################## + if (Config.CSM.EnableCSM) { + if (Config.CSM.CustomPocket) { + const JsonUtil = container.resolve("JsonUtil"); + let CustomPocketItem = JsonUtil.clone(items["627a4e6b255f7527fb05a0f6"]) + let PocketSize = Config.CSM.Pockets + CustomPocketItem._id = "a8edfb0bce53d103d3f62b9b"; + for (let cell in CustomPocketItem._props.Grids)//tried to make less code, made more, smh. + { + CustomPocketItem._props.Grids[cell]._parent = "a8edfb0bce53d103d3f62b9b" + } + for (let cell in CustomPocketItem._props.Slots) { + CustomPocketItem._props.Slots[cell]._parent = "a8edfb0bce53d103d3f62b9b" + } + CustomPocketItem._props.Grids[0]._id = "a8edfb0bce53d103d3f62b0b" + CustomPocketItem._props.Grids[0]._props.cellsH = PocketSize.FirstWidth + CustomPocketItem._props.Grids[0]._props.cellsV = PocketSize.FirstHeight + CustomPocketItem._props.Grids[1]._id = "a8edfb0bce53d103d3f62b1b" + CustomPocketItem._props.Grids[1]._props.cellsH = PocketSize.SecondWidth + CustomPocketItem._props.Grids[1]._props.cellsV = PocketSize.SecondHeight + CustomPocketItem._props.Grids[2]._id = "a8edfb0bce53d103d3f62b2b" + CustomPocketItem._props.Grids[2]._props.cellsH = PocketSize.ThirdWidth + CustomPocketItem._props.Grids[2]._props.cellsV = PocketSize.ThirdHeight + CustomPocketItem._props.Grids[3]._id = "a8edfb0bce53d103d3f62b3b" + CustomPocketItem._props.Grids[3]._props.cellsH = PocketSize.FourthWidth + CustomPocketItem._props.Grids[3]._props.cellsV = PocketSize.FourthHeight + CustomPocketItem._props.Slots[0]._id = "a8edfb0bce53d103d3f62b4b" + CustomPocketItem._props.Slots[1]._id = "a8edfb0bce53d103d3f62b5b" + CustomPocketItem._props.Slots[2]._id = "a8edfb0bce53d103d3f62b6b" + if (PocketSize.FourthWidth == 0 || PocketSize.FourthHeight == 0) { + CustomPocketItem._props.Grids.splice(3, 1); + } + if (PocketSize.ThirdWidth == 0 || PocketSize.ThirdHeight == 0) { + CustomPocketItem._props.Grids.splice(2, 1); + } + if (PocketSize.SecondWidth == 0 || PocketSize.SecondHeight == 0) { + CustomPocketItem._props.Grids.splice(1, 1); + } + if (PocketSize.FirstWidth == 0 || PocketSize.FirstHeight == 0) { + CustomPocketItem._props.Grids.splice(0, 1); + } + + switch (true) { + case Config.CSM.Pockets.SpecSlots == 0: + CustomPocketItem._props.Slots.splice(0, 3); + break; + case Config.CSM.Pockets.SpecSlots == 1: + CustomPocketItem._props.Slots.splice(1, 2); + break; + case Config.CSM.Pockets.SpecSlots == 2: + CustomPocketItem._props.Slots.splice(2, 1); + break; + case Config.CSM.Pockets.SpecSlots == 3: + break; + case Config.CSM.Pockets.SpecSlots >= 4://Graduality done, switched `switch` to true statement and expressions. + CustomPocketItem._props.Slots[3] = JsonUtil.clone(CustomPocketItem._props.Slots[2]) + CustomPocketItem._props.Slots[3]._id = "a8edfb0bce53d103d3f62b7b" + CustomPocketItem._props.Slots[3]._name = "SpecialSlot4" + CustomPocketItem._props.Slots[3]._parent = "a8edfb0bce53d103d3f62b9b" + Insurance.blacklistedEquipment.push("SpecialSlot4") + case Config.CSM.Pockets.SpecSlots == 5: + CustomPocketItem._props.Slots[4] = JsonUtil.clone(CustomPocketItem._props.Slots[2]) + CustomPocketItem._props.Slots[4]._id = "a8edfb0bce53d103d3f62b8b" + CustomPocketItem._props.Slots[4]._name = "SpecialSlot5" + CustomPocketItem._props.Slots[4]._parent = "a8edfb0bce53d103d3f62b9b" + Insurance.blacklistedEquipment.push("SpecialSlot5") + break; + } + //This is a solution to avoid removing cases from bodies if they die. + let IDsToFilter = ["5783c43d2459774bbe137486", "60b0f6c058e0b0481a09ad11", "619cbf9e0a7c3a1a2731940a", "619cbf7d23893217ec30b689", "59fafd4b86f7745ca07e1232", "62a09d3bcf4a99369e262447"]; + let Pockets = Config.CSM.Pockets + let CasesToFilter = [Pockets.SpecSimpleWallet, Pockets.SpecWZWallet, Pockets.SpecKeycardHolder, Pockets.SpecInjectorCase, Pockets.SpecKeytool, Pockets.SpecGKeychain]; + for (let ID in IDsToFilter) { + items[IDsToFilter[ID]]._props.DiscardLimit = -1; + items[IDsToFilter[ID]]._props.InsuranceDisabled = true; + } + for (let specialslots in CustomPocketItem._props.Slots) { + for (let element in IDsToFilter) { + if (CasesToFilter[element]) { + CustomPocketItem._props.Slots[specialslots]._props.filters[0].Filter.push(IDsToFilter[element]) + } + } + //items[IDsToFilter[specialslots]]._props.HideEntrails = true; + } + items["a8edfb0bce53d103d3f62b9b"] = CustomPocketItem; + //items["5795f317245977243854e041"]._props.HideEntrails = true; Still unsure what does it do + } + if (Config.CSM.EnableSecureCases) { + const SecCon = Config.CSM.SecureContainers + + const SecHeight = [ + SecCon.AlphaHeight, + SecCon.KappaHeight, + SecCon.BetaHeight, + SecCon.EpsilonHeight, + SecCon.GammaHeight, + SecCon.GammaTUEHeight, + SecCon.WaistPouchHeight, + SecCon.DevHeight + ]; + const SecWidth = [ + SecCon.AlphaWidth, + SecCon.KappaWidth, + SecCon.BetaWidth, + SecCon.EpsilonWidth, + SecCon.GammaWidth, + SecCon.GammaTUEWidth, + SecCon.WaistPouchWidth, + SecCon.DevWidth + ]; + for (let SecConts in Arrays.SecConID) { + items[Arrays.SecConID[SecConts]]._props.Grids[0]._props["cellsV"] = SecHeight[SecConts]; + items[Arrays.SecConID[SecConts]]._props.Grids[0]._props["cellsH"] = SecWidth[SecConts]; + } + } + if (Config.CSM.EnableCases) { + const Cases = Config.CSM.Cases + const Size = [ + Cases.MoneyCase, + Cases.SimpleWallet, + Cases.WZWallet, + Cases.GrenadeCase, + Cases.ItemsCase, + Cases.WeaponCase, + Cases.LuckyScav, + Cases.AmmunitionCase, + Cases.MagazineCase, + Cases.DogtagCase, + Cases.MedicineCase, + Cases.ThiccItemsCase, + Cases.ThiccWeaponCase, + Cases.SiccCase, + Cases.Keytool, + Cases.DocumentsCase, + Cases.PistolCase, + Cases.Holodilnick, + Cases.InjectorCase, + Cases.KeycardHolderCase, + Cases.GKeychain, + Cases.StreamerCase, + Cases.ArmorPlateCase + ] + const Filts = [ // I think i can shortcut this eventually + Cases.MoneyCase.Filter, + Cases.SimpleWallet.Filter, + Cases.WZWallet.Filter, + Cases.GrenadeCase.Filter, + Cases.ItemsCase.Filter, + Cases.WeaponCase.Filter, + Cases.LuckyScav.Filter, + Cases.AmmunitionCase.Filter, + Cases.MagazineCase.Filter, + Cases.DogtagCase.Filter, + Cases.MedicineCase.Filter, + Cases.ThiccItemsCase.Filter, + Cases.ThiccWeaponCase.Filter, + Cases.SiccCase.Filter, + Cases.Keytool.Filter, + Cases.DocumentsCase.Filter, + Cases.PistolCase.Filter, + Cases.Holodilnick.Filter, + Cases.InjectorCase.Filter, + Cases.KeycardHolderCase.Filter, + Cases.GKeychain.Filter, + Cases.StreamerCase.Filter, + Cases.ArmorPlateCase.Filter + ] + for (let Case in Arrays.CasesID) { + items[Arrays.CasesID[Case]]._props.Grids[0]._props["cellsV"] = Size[Case].Height; + items[Arrays.CasesID[Case]]._props.Grids[0]._props["cellsH"] = Size[Case].Width; + } + //Filters + for (let Filters in Filts) { + if (Filts[Filters]) // To check whether checkmark is true or false + { + items[Arrays.CasesID[Filters]]._props.Grids[0]._props.filters = []; + } + } + } + } + //############## ITEMS SECTION ################ + if (Config.Items.EnableItems) { + + //Price Modifier + for (const item in DB.templates.handbook.Items) { + if (DB.templates.handbook.Items[item].ParentId !== "5b5f78b786f77447ed5636af" && DB.templates.handbook.Items[item].Price != null) { + DB.templates.handbook.Items[item].Price = (DB.templates.handbook.Items[item].Price * Config.Items.ItemPriceMult) + } + } + //Loading-Unloading rounds in a magazine + globals.BaseUnloadTime = globals.BaseUnloadTime * Config.Items.AmmoLoadSpeed; + globals.BaseLoadTime = globals.BaseLoadTime * Config.Items.AmmoLoadSpeed; + //Signal Pistol into Special slots + if (Config.Items.AddSignalPistolToSpec) { + if (items["a8edfb0bce53d103d3f62b9b"] !== undefined) { + for (let specialslots in items["a8edfb0bce53d103d3f62b9b"]._props.Slots) { + items["a8edfb0bce53d103d3f62b9b"]._props.Slots[specialslots]._props.filters[0].Filter.push("620109578d82e67e7911abf2") + } + } + if (items["627a4e6b255f7527fb05a0f6"] !== undefined) { + for (let specialslots in items["627a4e6b255f7527fb05a0f6"]._props.Slots) { + items["627a4e6b255f7527fb05a0f6"]._props.Slots[specialslots]._props.filters[0].Filter.push("620109578d82e67e7911abf2") + } + } + if (items["65e080be269cbd5c5005e529"] !== undefined) { + for (let specialslots in items["65e080be269cbd5c5005e529"]._props.Slots) { + items["65e080be269cbd5c5005e529"]._props.Slots[specialslots]._props.filters[0].Filter.push("620109578d82e67e7911abf2") + } + } + } + for (const id in items) { + let base = items[id] + //Examining time + if (base._type == "Item" && base._props.ExamineTime !== undefined) { + EditSimpleItemData(id, "ExamineTime", Config.Items.ExamineTime); + } + //Fragmentation Multiplier + if (base._props.FragmentationChance !== undefined) { + EditSimpleItemData(id, "FragmentationChance", parseFloat(base._props.FragmentationChance * Config.Items.FragmentMult).toFixed(2)); + } + //Heat Factor Multiplier + if (base._props.HeatFactor !== undefined) { + EditSimpleItemData(id, "HeatFactor", parseFloat(base._props.HeatFactor * Config.Items.HeatFactor).toFixed(4)); + } + //Dropping items in raid rather deleting them + if (base._type == "Item" && base._props.DiscardLimit !== undefined && Config.Items.RaidDrop) { + EditSimpleItemData(id, "DiscardLimit", -1); + } + //Turns off weapon overheat + if (base._props.AllowOverheat !== undefined && Config.Items.WeaponHeatOff) { + EditSimpleItemData(id, "AllowOverheat", false); + } + //Malfunction chance + if ((base._parent == "5447b5cf4bdc2d65278b4567" || base._parent == "5447b6254bdc2dc3278b4568" || items[id]._parent == "5447b5f14bdc2d61278b4567" || items[id]._parent == "5447bed64bdc2d97278b4568" || items[id]._parent == "5447b6094bdc2dc3278b4567" || items[id]._parent == "5447b5e04bdc2d62278b4567" || items[id]._parent == "5447b6194bdc2d67278b4567") && items[id]._props.BaseMalfunctionChance !== undefined) { + EditSimpleItemData(id, "BaseMalfunctionChance", parseFloat(base._props.BaseMalfunctionChance * Config.Items.MalfunctChanceMult).toFixed(6)); + } + if (base._parent == "5448bc234bdc2d3c308b4569" && base._props.MalfunctionChance !== undefined) { + EditSimpleItemData(id, "MalfunctionChance", parseFloat(base._props.MalfunctionChance * Config.Items.MalfunctChanceMult).toFixed(2)); + } + //Misfire chance + if (base._parent == "5485a8684bdc2da71d8b4567" && base._props.MalfMisfireChance !== undefined) { + EditSimpleItemData(id, "MalfMisfireChance", parseFloat(base._props.MalfMisfireChance * Config.Items.MisfireChance).toFixed(3)); + } + //Examine all items + if (Config.Items.AllExaminedItems && Config.Items.ExamineKeys) { + EditSimpleItemData(id, "ExaminedByDefault", true); + } + //Examine all items EXCEPT KEYS, checking for parent IDs of mechanical, keycards and keys in general just in case. + else if (Config.Items.AllExaminedItems && base._parent !== "5c99f98d86f7745c314214b3" && base._parent !== "5c164d2286f774194c5e69fa" && base._parent !== "543be5e94bdc2df1348b4568") { + EditSimpleItemData(id, "ExaminedByDefault", true); + } + //Change the weight + if (base._type !== "Node" && base._type !== undefined && (base._parent !== "557596e64bdc2dc2118b4571" || base._parent !== "55d720f24bdc2d88028b456d")) { + EditSimpleItemData(id, "Weight", parseFloat(Config.Items.WeightChanger * base._props.Weight).toFixed(3)); + } + //Remove gear penalty + if (Config.Items.NoGearPenalty) { + if (base._props.mousePenalty) { + EditSimpleItemData(id, "mousePenalty", 0) + } + if (base._props.weaponErgonomicPenalty) { + EditSimpleItemData(id, "weaponErgonomicPenalty", 0) + } + if (base._props.speedPenaltyPercent) { + EditSimpleItemData(id, "speedPenaltyPercent", 0) + } + } + //Ammo Stacks + if (base._parent.includes("5485a8684bdc2da71d8b4567") && Config.Items.AmmoSwitch) { + let str = base._name//.split("_", 2) + if (AmmoFilter(Arrays.Pistol, str)) { + EditSimpleItemData(id, "StackMaxSize", Config.Items.AmmoStacks.PistolRound) + } + else if (AmmoFilter(Arrays.Shotgun, str)) { + EditSimpleItemData(id, "StackMaxSize", Config.Items.AmmoStacks.ShotgunRound) + } + else if (AmmoFilter(Arrays.ARifle, str)) { + EditSimpleItemData(id, "StackMaxSize", Config.Items.AmmoStacks.RifleRound) + } + else if (AmmoFilter(Arrays.MRifle, str)) { + EditSimpleItemData(id, "StackMaxSize", Config.Items.AmmoStacks.MarksmanRound) + } + } + //Change money stacks + if (base._parent == "543be5dd4bdc2deb348b4569" && base._props.StackMaxSize !== undefined && Config.Items.EnableCurrency) { + switch (base._id) { + case "569668774bdc2da2298b4568": + EditSimpleItemData(id, "StackMaxSize", Config.Items.EuroStack); + break; + case "5696686a4bdc2da3298b456a": + EditSimpleItemData(id, "StackMaxSize", Config.Items.DollarStack); + break; + case "5d235b4d86f7742e017bc88a": + EditSimpleItemData(id, "StackMaxSize", Config.Items.GPStack); + break; + default: + EditSimpleItemData(id, "StackMaxSize", Config.Items.RubStack); + break; + } + } + //Allow armored rigs with armors + if (Config.Items.EquipRigsWithArmors && base._props.BlocksArmorVest !== undefined) { + EditSimpleItemData(id, "BlocksArmorVest", false); + } + //Remove filters + if (Config.Items.RemoveSecureContainerFilters && base._parent == "5448bf274bdc2dfc2f8b456a" && base._props.Grids[0]._props.filters !== undefined) { + base._props.Grids[0]._props.filters = []; + } + if (Config.Items.RemoveBackpacksRestrictions && base._parent == "5448e53e4bdc2d60728b4567" && base._props.Grids[0]._props.filters !== undefined) { + base._props.Grids[0]._props.filters = []; + } + //Change items experience gain + if (base._props.LootExperience !== undefined) { + let calculation = Math.round(base._props.LootExperience * Config.Items.LootExp); + EditSimpleItemData(id, "LootExperience", calculation); + } + if (base._props.ExamineExperience !== undefined) { + let calculation = Math.round(base._props.ExamineExperience * Config.Items.ExamineExp); + EditSimpleItemData(id, "ExamineExperience", calculation); + } + //Remove the keys usage - God i hate how i wrote it + if (Config.Items.EnableKeys) { + if ((base._parent == "5c99f98d86f7745c314214b3") && base._props.MaximumNumberOfUsage !== undefined && Config.Items.InfiniteKeys) { + if (base._parent == "5c99f98d86f7745c314214b3" && base._props.MaximumNumberOfUsage == 1 && !Config.Items.AvoidSingleKeys) { + base._props.MaximumNumberOfUsage = 0 + } + if (Arrays.MarkedKeys.includes(base._id) && !Config.Items.AvoidMarkedKeys) { + base._props.MaximumNumberOfUsage = 0 + } + if (Arrays.OddKeys.includes(base._id) && !Config.Items.AvoidOddKeys)//Currently list is static, maybe i'll rework to just consider changing due to odd numbers. + { + base._props.MaximumNumberOfUsage = 0 + } + if (!Arrays.MarkedKeys.includes(base._id) && !Arrays.OddKeys.includes(base._id) && base._props.MaximumNumberOfUsage !== 1) { + base._props.MaximumNumberOfUsage = 0 + } + } + + if (base._parent == "5c164d2286f774194c5e69fa" && base._props.MaximumNumberOfUsage !== undefined && Config.Items.InfiniteKeycards) { + base._props.MaximumNumberOfUsage = 0 + } + if (base._parent == "5c99f98d86f7745c314214b3" && base._props.MaximumNumberOfUsage != 0) { + base._props.MaximumNumberOfUsage *= Config.Items.KeyUseMult + if (base._props.MaximumNumberOfUsage > Config.Items.KeyDurabilityThreshold) { + base._props.MaximumNumberOfUsage = Config.Items.KeyDurabilityThreshold + } + } + if (base._parent == "5c164d2286f774194c5e69fa" && base._props.MaximumNumberOfUsage != 0) { + base._props.MaximumNumberOfUsage *= Config.Items.KeycardUseMult + if (base._props.MaximumNumberOfUsage > Config.Items.KeyDurabilityThreshold) { + base._props.MaximumNumberOfUsage = Config.Items.KeyDurabilityThreshold + } + } + } + } + if (Config.Items.SMGToHolster) { + items["55d7217a4bdc2d86028b456d"]._props.Slots[2]._props.filters[0].Filter.push("5447b5e04bdc2d62278b4567"); + } + if (Config.Items.PistolToMain) { + items["55d7217a4bdc2d86028b456d"]._props.Slots[0]._props.filters[0].Filter.push("5447b5cf4bdc2d65278b4567", "617f1ef5e8b54b0998387733"); + items["55d7217a4bdc2d86028b456d"]._props.Slots[1]._props.filters[0].Filter.push("5447b5cf4bdc2d65278b4567", "617f1ef5e8b54b0998387733"); + } + if (Config.Items.RemoveRaidRestr) { + globals.RestrictionsInRaid = [] + } + if (Config.Items.IDChanger) { + //Edit item properties, i know it looks stupid, but hey - it works and i like it. + //5th revision, now including separate fields for filters, parents and expressions. + Logger.info("[SVM] Custom Properties is loading", "blue") + try { + if (Config.Items.IDParent.length > 0) { //ID=ParentID, same as above + let ParentList = Config.Items.IDParent.split("\r\n") + let IDArray = []; + for (let Line in ParentList) { + if (!ParentList[Line].startsWith("#") && !ParentList[Line].startsWith("//") && !ParentList[Line] == "") { + const Variables = ParentList[Line].split(":") + Logger.info("Parent: " + Variables) + for (let ids in items) { + if (Variables[0] == items[ids]._parent) { + IDArray.push(items[ids]._id); + } + } + Logger.info("Affected by parent: ") + Logger.info(IDArray) + for (let ID in IDArray) { + Variables[0] = IDArray[ID] + IDChanger(Variables) + } + } + } + } + if (Config.Items.IDDefault.length > 0) {//ID:Variable:Value + let DefaultList = Config.Items.IDDefault.split("\r\n") + for (let Line in DefaultList) { + if (!DefaultList[Line].startsWith("#") && !DefaultList[Line].startsWith("//") && !DefaultList[Line] == "") { + let Variables = DefaultList[Line].split(":") + Logger.info("Default: " + Variables) + IDChanger(Variables) + } + } + } + if (Config.Items.IDFilter.length > 0) { //ID:Slots/Grids:Grid/Slot Number:Filter/ExcludedFilter:PushIntoArray + let FilterList = Config.Items.IDFilter.split("\r\n") + for (let Line in FilterList) { + const Variables = FilterList[Line].split(":") + Logger.info("Filter: " + Variables) + if (Variables.length === 5) { + let check = CheckType(Variables[4]) + for (let fields in check) { + items[Variables[0]]._props[Variables[1]][Variables[2]]._props.filters[0][Variables[3]].push(check[fields]) + } + } + else { + Logger.error("[SVM] INVENTORY AND ITEMS - Filters ID - failed to apply\n") + } + } + } + if (Config.Items.IDPrice.length > 0) { //ID:Expression:Number + const handbook = DB.templates.handbook.Items + let IDPriceLines = Config.Items.IDPrice.split("\r\n") + for (let Line in IDPriceLines) { + if (!IDPriceLines[Line].startsWith("#") && !IDPriceLines[Line].startsWith("//") && !IDPriceLines[Line] == "") { + const Variables = IDPriceLines[Line].split(":") + Logger.info("Price: " + Variables) + let IDChecker = true; + for (let Target in handbook) { + if (handbook[Target].Id.includes(Variables[0])) { + handbook[Target].Price = Calculus(handbook[Target].Price, Variables[1], Variables[2]) + IDChecker = false; + break; + } + } + + if (IDChecker) { + Logger.warning("[SVM] INVENTORY AND ITEMS - Price ID - " + Variables[0] + " - This ID is not found in handbook.\nChecking as ParentID") + let childs = [] + for (let ID in items) { + if (items[ID]._parent == Variables[0]) { + childs.push(items[ID]._id) + } + } + if (childs.length > 0) { + Logger.success("[SVM] Success, Changing prices of Child IDs") + Logger.info(childs) + for (let child in childs) { + for (let ID in handbook) { + if (handbook[ID].Id.includes(childs[child])) { + handbook[ID].Price = Calculus(handbook[ID].Price, Variables[1], Variables[2]) + break; + } + } + } + } + else { + Logger.error("[SVM] Price ID Failed, this ID doesn't exist in Items.json") + } + } + } + } + } + Logger.success("[SVM] Custom properties successfully loaded") + } + catch (e) { + Logger.error("[SVM] INVENTORY AND ITEMS - Custom properties failed to load, error of the code:\n" + e) + } + } + } + //############## PLAYER SECTION ############### + if (Config.Player.EnablePlayer) { + //Skill box + globals.SkillsSettings.SkillProgressRate = Config.Player.SkillProgMult; + globals.SkillsSettings.WeaponSkillProgressRate = Config.Player.WeaponSkillMult; + //############## Health after raid status ############## + Health.healthMultipliers.death = Config.Player.DiedHealth.Health_death; + Health.healthMultipliers.blacked = Config.Player.DiedHealth.Health_blacked; + Health.save.health = Config.Player.DiedHealth.Savehealth; + Health.save.effects = Config.Player.DiedHealth.Saveeffects; + // skill eff box + if (Config.Player.EnableFatigue) { + globals.SkillMinEffectiveness = Config.Player.Skills.SkillMinEffect; + globals.SkillFatiguePerPoint = Config.Player.Skills.SkillFatiguePerPoint; + globals.SkillFreshEffectiveness = Config.Player.Skills.SkillFreshEffect; + globals.SkillFreshPoints = Config.Player.Skills.SkillFPoints; + globals.SkillPointsBeforeFatigue = Config.Player.Skills.SkillPointsBeforeFatigue; + globals.SkillFatigueReset = Config.Player.Skills.SkillFatigueReset; + } + //############## Player level XP box ############## + globals.exp.kill.victimBotLevelExp = Config.Player.CharXP.ScavKill; + globals.exp.kill.victimLevelExp = Config.Player.CharXP.PMCKill; + globals.exp.kill.botHeadShotMult = Config.Player.CharXP.ScavHMult; + globals.exp.kill.pmcHeadShotMult = Config.Player.CharXP.PMCHMult + //############## XP mults Box ############## + globals.exp.match_end.runnerMult = Config.Player.RaidMult.Runner + globals.exp.match_end.miaMult = Config.Player.RaidMult.MIA + globals.exp.match_end.survivedMult = Config.Player.RaidMult.Survived + globals.exp.match_end.killedMult = Config.Player.RaidMult.Killed + + //############## Stamina ############## + if (Config.Player.EnableStaminaLegs) { + globals.Stamina.Capacity = Config.Player.MaxStaminaLegs + globals.Stamina.BaseRestorationRate = Config.Player.RegenStaminaLegs + globals.Stamina.JumpConsumption = Config.Player.JumpConsumption + globals.Stamina.StandupConsumption.x = Config.Player.LayToStand + globals.Stamina.PoseLevelConsumptionPerNotch.x = Config.Player.CrouchToStand / 10; + } + if (Config.Player.EnableStaminaHands) { + // globals.Stamina.AimDrainRate = Config.Player. + globals.Stamina.HandsCapacity = Config.Player.MaxStaminaHands + globals.Stamina.HandsRestoration = Config.Player.RegenStaminaHands + globals.Stamina.AimConsumptionByPose.x = Config.Player.LyingDown + globals.Stamina.AimConsumptionByPose.y = Config.Player.Crouching + globals.Stamina.AimConsumptionByPose.z = Config.Player.Standing + } + if (Config.Player.UnlimitedStamina) { + globals.Stamina.Capacity = 500; + globals.Stamina.BaseRestorationRate = 500; + globals.Stamina.StaminaExhaustionCausesJiggle = false; + globals.Stamina.StaminaExhaustionStartsBreathSound = false; + globals.Stamina.StaminaExhaustionRocksCamera = false; + globals.Stamina.SprintDrainRate = 0; + globals.Stamina.JumpConsumption = 0; + globals.Stamina.AimDrainRate = 0; + globals.Stamina.SitToStandConsumption = 0; + } + if (Config.Player.FallDamage) { + globals.Health.Falling.SafeHeight = 200 + globals.Health.Falling.DamagePerMeter = 0 + } + globals.Health.Effects.Existence.HydrationLoopTime = (globals.Health.Effects.Existence.HydrationLoopTime / Config.Player.HydrationLoss) + globals.Health.Effects.Existence.EnergyLoopTime = (globals.Health.Effects.Existence.EnergyLoopTime / Config.Player.EnergyLoss) + globals.Health.Effects.Existence.DestroyedStomachEnergyTimeFactor = Config.Player.BlackStomach; + globals.Health.Effects.Existence.DestroyedStomachHydrationTimeFactor = Config.Player.BlackStomach; + } + //############## HIDEOUT SECTION ############## + if (Config.Hideout.EnableHideout) { + //Change hideout fuel consumption + hideout.settings.generatorFuelFlowRate *= Config.Hideout.FuelConsumptionRate; + hideout.settings.generatorSpeedWithoutFuel *= Config.Hideout.NoFuelMult; + //hideoutC.fuelDrainRateMultipler = Config.Hideout.FuelConsumptionRate; + hideout.settings.airFilterUnitFlowRate *= Config.Hideout.AirFilterRate; + hideout.settings.gpuBoostRate *= Config.Hideout.GPUBoostRate; + HideoutConfig.cultistCircle.maxRewardItemCount = Config.Hideout.CultistMaxRewards + HideoutConfig.cultistCircle.hideoutTaskRewardTimeSeconds = parseInt(HideoutConfig.cultistCircle.hideoutTaskRewardTimeSeconds * Config.Hideout.CultistTime) + for (let time in HideoutConfig.cultistCircle.craftTimeThreshholds) { + HideoutConfig.cultistCircle.craftTimeThreshholds[time].craftTimeSeconds = parseInt(HideoutConfig.cultistCircle.craftTimeThreshholds[time].craftTimeSeconds * Config.Hideout.CultistTime) + } + for (let time in HideoutConfig.cultistCircle.directRewards) { + HideoutConfig.cultistCircle.directRewards[time].craftTimeSeconds = parseInt(HideoutConfig.cultistCircle.directRewards[time].craftTimeSeconds * Config.Hideout.CultistTime) + } + + if (Config.Hideout.EnableStash) { + items["566abbc34bdc2d92178b4576"]._props.Grids[0]._props.cellsV = Config.Hideout.Stash.StashLvl1 + items["5811ce572459770cba1a34ea"]._props.Grids[0]._props.cellsV = Config.Hideout.Stash.StashLvl2 + items["5811ce662459770f6f490f32"]._props.Grids[0]._props.cellsV = Config.Hideout.Stash.StashLvl3 + items["5811ce772459770e9e5f9532"]._props.Grids[0]._props.cellsV = Config.Hideout.Stash.StashLvl4 + items["6602bcf19cc643f44a04274b"]._props.Grids[0]._props.cellsV = Config.Hideout.Stash.StashTUE + } + //Enable hideout fast constructions + for (const data in hideout.areas) { + let areaData = hideout.areas[data] + for (const i in areaData.stages) { + if (areaData.stages[i].constructionTime > 0) { + areaData.stages[i].constructionTime = parseInt(areaData.stages[i].constructionTime * Config.Hideout.HideoutConstMult) + if (areaData.stages[i].constructionTime < 1) { + areaData.stages[i].constructionTime = 2 + } + } + } + } + //Enable fast hideout production + for (const data in hideout.production.recipes) { + let productionData = hideout.production.recipes[data]; + + if (productionData._id == "5d5589c1f934db045e6c5492") { + productionData.productionTime = Config.Hideout.WaterFilterTime * 60 + productionData.requirements[1].resource = Config.Hideout.WaterFilterRate + } + if (productionData._id == "5d5c205bd582a50d042a3c0e") { + productionData.productionLimitCount = Config.Hideout.MaxBitcoins; + productionData.productionTime = Config.Hideout.BitcoinTime * 60; + } + if (!productionData.continuous && productionData.productionTime >= 10) { + productionData.productionTime = parseInt(productionData.productionTime * Config.Hideout.HideoutProdMult) + if (productionData.productionTime < 1) { + productionData.productionTime = 2 + } + } + } + //Scav cases modifications + for (const scav in hideout.production.scavRecipes) { + let caseData = hideout.production.scavRecipes[scav]; + if (caseData.productionTime >= 10) { + caseData.productionTime = parseInt(caseData.productionTime * Config.Hideout.ScavCaseTime); + if (caseData.productionTime < 1) { + caseData.productionTime = 2 + } + } + } + for (const scase in hideout.production.scavRecipes) { + let caseData = hideout.production.scavRecipes[scase]; + if (caseData.requirements[0].templateId == "5449016a4bdc2d6f028b456f" || caseData.requirements[0].templateId == "5696686a4bdc2da3298b456a" || caseData.requirements[0].templateId == "569668774bdc2da2298b4568") { + caseData.requirements[0].count = parseInt(caseData.requirements[0].count * Config.Hideout.ScavCasePrice); + } + } + //Remove construction requirements + if (Config.Hideout.RemoveConstructionsRequirements || Config.Hideout.RemoveSkillRequirements || Config.Hideout.RemoveTraderLevelRequirements || Config.Hideout.RemoveConstructionsFIRRequirements) { + for (const data in hideout.areas) { + let areaData = hideout.areas[data] + for (const stage in areaData.stages) { + if (areaData.stages[stage].requirements !== undefined && areaData.stages[stage].requirements.length > 0) { + let rewriter = []; + for (let req in areaData.stages[stage].requirements)//This is horrible + { + if (areaData.stages[stage].requirements[req].hasOwnProperty("isSpawnedInSession") && Config.Hideout.RemoveConstructionsFIRRequirements) { + areaData.stages[stage].requirements[req].isSpawnedInSession = false; + } + if (areaData.stages[stage].requirements[req].hasOwnProperty("templateId") && !Config.Hideout.RemoveConstructionsRequirements) { + rewriter.push(areaData.stages[stage].requirements[req]) + } + else if (areaData.stages[stage].requirements[req].hasOwnProperty("skillName") && !Config.Hideout.RemoveSkillRequirements) { + rewriter.push(areaData.stages[stage].requirements[req]) + } + else if (areaData.stages[stage].requirements[req].hasOwnProperty("traderId") && !Config.Hideout.RemoveTraderLevelRequirements) { + rewriter.push(areaData.stages[stage].requirements[req]) + } + else if (areaData.stages[stage].requirements[req].hasOwnProperty("areaType"))//Just for sanity check to avoid certain errors like building bitcoin farm while there is no generator. + { + rewriter.push(areaData.stages[stage].requirements[req]) + } + } + areaData.stages[stage].requirements = rewriter + } + } + } + } + //Hideout regen menu + for (let limb in globals.Health.Effects.Regeneration.BodyHealth) { + globals.Health.Effects.Regeneration.BodyHealth[limb].Value *= Config.Hideout.Regeneration.HealthRegen + } + globals.Health.Effects.Regeneration.Energy = Config.Hideout.Regeneration.EnergyRegen + globals.Health.Effects.Regeneration.Hydration = Config.Hideout.Regeneration.HydrationRegen + + for (const data in hideout.areas) { + let areaData = hideout.areas[data] + for (const i in areaData.stages) { + for (const x in areaData.stages[i].bonuses) { + if (Config.Hideout.Regeneration.HideoutHydration && areaData.stages[i].bonuses[x].type == "HydrationRegeneration") { + areaData.stages[i].bonuses[x].value = 0; + } + if (Config.Hideout.Regeneration.HideoutEnergy && areaData.stages[i].bonuses[x].type == "EnergyRegeneration") { + areaData.stages[i].bonuses[x].value = 0; + } + if (Config.Hideout.Regeneration.HideoutHealth && areaData.stages[i].bonuses[x].type == "HealthRegeneration") { + areaData.stages[i].bonuses[x].value = 0; + } + } + } + } + } + + //############## RAIDS SECTION ################ + if (Config.Raids.EnableRaids) { + //############## INRAID SECTION ################## + if (Config.Raids.RaidStartup.EnableRaidStartup) { + Inraid.raidMenuSettings.aiAmount = Arrays.AIAmount[Config.Raids.RaidStartup.AIAmount]; + Inraid.raidMenuSettings.aiDifficulty = Arrays.AIDifficulty[Config.Raids.RaidStartup.AIDifficulty]; + Inraid.raidMenuSettings.bossEnabled = Config.Raids.RaidStartup.EnableBosses; + Inraid.raidMenuSettings.scavWars = Config.Raids.RaidStartup.ScavWars; + Inraid.raidMenuSettings.taggedAndCursed = Config.Raids.RaidStartup.TaggedAndCursed; + Inraid.save.loot = Config.Raids.RaidStartup.SaveLoot; + } + if (Config.Raids.ForceSeason) { + WeatherValues.overrideSeason = Config.Raids.Season; + } + trader.fence.coopExtractGift.sendGift = !Config.Raids.Exfils.FenceGift; + const Midcore = configServer.getConfig("spt-lostondeath"); + if (Config.Raids.SaveQuestItems) { + Midcore.questItems = false; + } + //Low Ground zero level access + locations["sandbox"].base.RequiredPlayerLevelMax = Config.Raids.SandboxAccessLevel; + //Time acceleration + WeatherValues.acceleration = Config.Raids.Timeacceleration + //Deploy Window time + globals.TimeBeforeDeployLocal = Config.Raids.RaidStartup.TimeBeforeDeployLocal + //Always survived + if (Config.Raids.NoRunThrough) { + globals.exp.match_end.survived_exp_requirement = 0; + globals.exp.match_end.survived_seconds_requirement = 0; + } + DB.locations["laboratory"].base.Insurance = Config.Raids.LabInsurance; + //Remove labs entry keycard + if (Config.Raids.Removelabkey) { + locations["laboratory"].base.AccessKeys = [] + } + + if (Config.Raids.Exfils.ArmorExtract) { + globals.RequirementReferences.Alpinist.splice(2, 1) + } + if (Config.Raids.Exfils.GearExtract) { + globals.RequirementReferences.Alpinist.splice(0, 2) + } + //Remove extracts restrictions + for (let i in locations) { + if (i !== "base") { + let ExitNames = locations[i].base.exits // 3.10 TODO CHECK + for (let x in ExitNames) { + if (ExitNames !== "EXFIL_Train" && (!ExitNames.includes("lab") || ExitNames == "lab_Vent") && ExitNames !== "Saferoom Exfil") {//Ok, i feel dumb again, but i was in a rush ok? + + if (Config.Raids.Exfils.GearExtract && Config.Raids.Exfils.ArmorExtract && locations[i].base.exits[x].PassageRequirement == "Reference") { + FreeExit(locations[i].base.exits[x]) + } + if (Config.Raids.Exfils.NoBackpack && locations[i].base.exits[x].PassageRequirement == "Empty") { + FreeExit(locations[i].base.exits[x]) + } + if (locations[i].base.exits[x].PassageRequirement == "TransferItem" && Config.Raids.EnableCarCoop) { + locations[i].base.exits[x].ExfiltrationTime = Config.Raids.Exfils.CarExtractTime; + locations[i].base.exits[x].ExfiltrationTimePVE = Config.Raids.Exfils.CarExtractTime; + switch (i) { + case "woods": + if (Config.Raids.Exfils.CarWoods !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarWoods; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "interchange": + if (Config.Raids.Exfils.CarInterchange !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarInterchange; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "bigmap": + if (Config.Raids.Exfils.CarCustoms !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarCustoms; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "tarkovstreets": + if (Config.Raids.Exfils.CarStreets !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarStreets; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "lighthouse": + if (Config.Raids.Exfils.CarLighthouse !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarLighthouse; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "shoreline": + if (Config.Raids.Exfils.CarShoreline !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarShoreline; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "sandbox": + case "sandbox_high": + if (Config.Raids.Exfils.CarSandbox !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CarSandbox; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + default: + break; + } + } + if (Config.Raids.Exfils.CoopPaid && Config.Raids.EnableCarCoop && locations[i].base.exits[x].PassageRequirement == "ScavCooperation") { + locations[i].base.exits[x].PassageRequirement = "TransferItem"; + locations[i].base.exits[x].ExfiltrationType = "SharedTimer"; + locations[i].base.exits[x].Id = "5449016a4bdc2d6f028b456f"; + locations[i].base.exits[x].PlayersCount = 0; + locations[i].base.exits[x].RequirementTip = "EXFIL_Item"; + switch (i) { + case "woods": + if (Config.Raids.Exfils.CoopPaidWoods !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidWoods; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "tarkovstreets": + if (Config.Raids.Exfils.CoopPaidStreets !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidStreets; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "interchange": + if (Config.Raids.Exfils.CoopPaidInterchange !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidInterchange; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "lighthouse": + if (Config.Raids.Exfils.CoopPaidLighthouse !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidLighthouse; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "rezervbase": + if (Config.Raids.Exfils.CoopPaidReserve !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidReserve; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "shoreline": + if (Config.Raids.Exfils.CoopPaidShoreline !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidShoreline; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + case "sandbox": + case "sandbox_high": + if (Config.Raids.Exfils.CoopPaidSandbox !== 0) { + locations[i].base.exits[x].Count = Config.Raids.Exfils.CoopPaidSandbox; + } + else { + FreeExit(locations[i].base.exits[x]) + } + break; + default: + break; + } + } + if (Config.Raids.Exfils.FreeCoop && Config.Raids.EnableCarCoop && locations[i].base.exits[x].PassageRequirement == "ScavCooperation") { + FreeExit(locations[i].base.exits[x]) + } + } + } + } + } + //Make all extractions available to extract + if (Config.Raids.Exfils.ChanceExtracts) { + for (let i in locations) { + if (i !== "base") { + for (let x in locations[i].base.exits) { + if (locations[i].base.exits[x].Name !== "EXFIL_Train") { + locations[i].base.exits[x].Chance = 100; + locations[i].base.exits[x].ChancePVE = 100; + } + } + } + } + } + //Extend raids time + if (Config.Raids.RaidTime != 0) { + for (let map in locations) { + if (map !== "base") { + if (isJSONValueDefined(locations[map].base.exit_access_time)) { + locations[map].base.exit_access_time += Config.Raids.RaidTime + } + if (isJSONValueDefined(locations[map].base.EscapeTimeLimit)) { + locations[map].base.EscapeTimeLimit += Config.Raids.RaidTime + } + } + } + } + //Make all extractions of the map available regardless of the infill + if (Config.Raids.Exfils.ExtendedExtracts) { + for (let map in locations) { + switch (map) { + case "bigmap": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "Customs,Boiler Tanks" + } + break; + case "interchange": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "MallSE,MallNW" + } + break; + case "shoreline": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "Village,Riverside" + } + break; + case "woods": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "House,Old Station" + } + break; + case "lighthouse": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "Tunnel,North" + } + break; + case "tarkovstreets": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "E1_2,E6_1,E2_3,E3_4,E4_5,E5_6,E6_1" + } + break; + case "sandbox": + case "sandbox_high": + for (const extract in locations[map].base.exits) { + locations[map].base.exits[extract].EntryPoints = "west,east" + } + break; + default: + break; + } + } + } + //Removing that weird event ceasefire. + if (Config.Raids.RaidEvents.DisableHalloweenAIFriendly) { + for (let bottype in Events.hostilitySettingsForEvent.zombies.default) { + if (Events.hostilitySettingsForEvent.zombies.default[bottype].BotRole == "pmcBEAR") { + Events.hostilitySettingsForEvent.zombies.default[bottype].SavagePlayerBehaviour = "AlwaysEnemies" + for (let behavior in Events.hostilitySettingsForEvent.zombies.default[bottype]) { + if (Events.hostilitySettingsForEvent.zombies.default[bottype].Neutral[behavior] == "pmcUSEC") { + Events.hostilitySettingsForEvent.zombies.default[bottype].Neutral.splice(behavior, 1) + } + } + Events.hostilitySettingsForEvent.zombies.default[bottype].AlwaysEnemies.push("pmcUSEC") + } + else if (Events.hostilitySettingsForEvent.zombies.default[bottype].BotRole == "pmcUSEC") { + Events.hostilitySettingsForEvent.zombies.default[bottype].SavagePlayerBehaviour = "AlwaysEnemies" + for (let behavior in Events.hostilitySettingsForEvent.zombies.default[bottype]) { + if (Events.hostilitySettingsForEvent.zombies.default[bottype].Neutral[behavior] == "pmcBEAR") { + Events.hostilitySettingsForEvent.zombies.default[bottype].Neutral.splice(behavior, 1) + } + } + Events.hostilitySettingsForEvent.zombies.default[bottype].AlwaysEnemies.push("pmcBEAR") + } + else { + Events.hostilitySettingsForEvent.zombies.default[bottype].BearPlayerBehaviour = "AlwaysEnemies" + Events.hostilitySettingsForEvent.zombies.default[bottype].UsecPlayerBehaviour = "AlwaysEnemies" + } + } + } + Quest.showNonSeasonalEventQuests = Config.Raids.RaidEvents.NonSeasonalQuests + Events.events[0].settings.zombieSettings.enabled = !Config.Raids.RaidEvents.DisableZombies + + if (Config.Raids.RaidEvents.RandomInfectionLevel) { + Events.events[0].settings.zombieSettings.mapInfectionAmount = + { + "laboratory": 100, + "bigmap": Math.floor(Math.random() * 100) + 1, + "Woods": Math.floor(Math.random() * 100) + 1, + "Shoreline": Math.floor(Math.random() * 100) + 1, + "Sandbox": Math.floor(Math.random() * 100) + 1, + "RezervBase": Math.floor(Math.random() * 100) + 1, + "TarkovStreets": Math.floor(Math.random() * 100) + 1, + "factory4": Math.floor(Math.random() * 100) + 1, + "Lighthouse": Math.floor(Math.random() * 100) + 1, + "Interchange": Math.floor(Math.random() * 100) + 1 + } + //Hopefully a temporary fix + for (let map in Events.eventBossSpawns.halloweenzombies) { + for (let wave in Events.eventBossSpawns.halloweenzombies[map]) { + switch (map)//Feature - Infection level affects spawn chances. + { + case "factory4_day": + Events.eventBossSpawns.halloweenzombies[map][wave].BossChance = Events.events[0].settings.zombieSettings.mapInfectionAmount.factory4; + break; + case "factory4_night": + Events.eventBossSpawns.halloweenzombies[map][wave].BossChance = Events.events[0].settings.zombieSettings.mapInfectionAmount.factory4; + break; + case "sandbox": + Events.eventBossSpawns.halloweenzombies[map][wave].BossChance = Events.events[0].settings.zombieSettings.mapInfectionAmount.Sandbox; + break; + case "sandbox_high": + Events.eventBossSpawns.halloweenzombies[map][wave].BossChance = Events.events[0].settings.zombieSettings.mapInfectionAmount.Sandbox; + break; + default: + if (Events.events[0].settings.zombieSettings.mapInfectionAmount[map] !== undefined) { + Events.eventBossSpawns.halloweenzombies[map][wave].BossChance = Events.events[0].settings.zombieSettings.mapInfectionAmount[map]; + } + break; + } + } + } + } + Events.enableSeasonalEventDetection = !Config.Raids.RaidEvents.DisableEvents + if (Config.Raids.RaidEvents.RaidersEverywhere) // 3.9.0 Raider rework, need to split them up into 3 fields - Start of the raid Scavs, PMC and general waves. + { + for (let i in locations)//Locations DB + { + if (i !== "base" && locations[i].base.waves) { + for (let x in locations[i].base.waves) { + locations[i].base.waves[x].WildSpawnType = "pmcBot" + } + } + } + for (let loc in locs.customWaves.boss) { + for (let ai in locs.customWaves.boss[loc]) { + locs.customWaves.boss[loc][ai].BossName = "pmcBot"; + locs.customWaves.boss[loc][ai].BossEscortType = "pmcBot"; + } + } + for (let loc in locs.customWaves.normal) { + for (let ai in locs.customWaves.normal[loc]) { + locs.customWaves.normal[loc][ai].WildSpawnType = "pmcBot" + } + } + } + if (Config.Raids.RaidEvents.KillaFactory) { + const KillaWave = CreateBoss("bossKilla", Config.Raids.RaidEvents.KillaFactoryChance, "followerBully", 0, locations["factory4_day"].base.OpenZones) + locations["factory4_day"].base.BossLocationSpawn.push(KillaWave) + locations["factory4_night"].base.BossLocationSpawn.push(KillaWave) + } + + if (Config.Raids.RaidEvents.TagillaInterchange) { + for (let bosscheck in locations["interchange"].base.BossLocationSpawn)//Looking for exactly Killa wave, even tho he is the only boss here, safety measure + { + if (locations["interchange"].base.BossLocationSpawn[bosscheck].BossName == "bossKilla") { + locations["interchange"].base.BossLocationSpawn[bosscheck].BossEscortAmount = 1 + locations["interchange"].base.BossLocationSpawn[bosscheck].BossEscortType = "bossTagilla" + } + } + } + const Waves = require('../src/Waves.json'); + if (Config.Raids.RaidEvents.BossesOnReserve) { + let BossWave = CreateBoss("bossKilla", 100, "followerBully", "0", locations["rezervbase"].base.OpenZones) + locations["rezervbase"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossBully", 100, "followerBully", "4", locations["rezervbase"].base.OpenZones) + locations["rezervbase"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossKojaniy", 100, "followerKojaniy", "2", locations["rezervbase"].base.OpenZones) + locations["rezervbase"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossSanitar", 100, "followerSanitar", "2", locations["rezervbase"].base.OpenZones) + locations["rezervbase"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossTagilla", 100, "followerBully", "0", locations["rezervbase"].base.OpenZones) + locations["rezervbase"].base.BossLocationSpawn.push(BossWave) + if (Config.Raids.RaidEvents.IncludeStreetBosses) { + const Kaban = Waves.Kaban + Kaban.BossZone = locations["rezervbase"].base.OpenZones + locations["rezervbase"].base.BossLocationSpawn.push(Kaban) + const Kolontay = Waves.Kolontay + Kaban.BossZone = locations["rezervbase"].base.OpenZones + locations["rezervbase"].base.BossLocationSpawn.push(Kolontay) + } + } + if (Config.Raids.RaidEvents.BossesOnHealthResort) { + if (Config.Raids.RaidEvents.HealthResortIncludeGuards) { + let BossWave = CreateBoss("bossKilla", 100, "followerBully", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossBully", 100, "followerBully", 4, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossKojaniy", 100, "followerKojaniy", 2, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossSanitar", 100, "followerSanitar", 2, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossTagilla", 100, "followerBully", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + const Goons = Waves.Goons + Goons.BossZone = "ZoneSanatorium1,ZoneSanatorium2" + locations["shoreline"].base.BossLocationSpawn.push(Goons) + const Glukhar = Waves.Glukhar + Glukhar.BossZone = "ZoneSanatorium1,ZoneSanatorium2" + locations["shoreline"].base.BossLocationSpawn.push(Glukhar) + const Kaban = Waves.Kaban + Kaban.BossZone = "ZoneSanatorium1,ZoneSanatorium2" + locations["shoreline"].base.BossLocationSpawn.push(Kaban) + const Kolontay = Waves.Kolontay + Kolontay.BossZone = "ZoneSanatorium1,ZoneSanatorium2" + locations["shoreline"].base.BossLocationSpawn.push(Kolontay)//can be shorted harder, will leave it for the next time. + } + else { + let BossWave = CreateBoss("bossKilla", 100, "followerBully", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossBully", 100, "followerBully", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossKojaniy", 100, "followerKojaniy", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossSanitar", 100, "followerSanitar", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossTagilla", 100, "followerBully", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossGluhar", 100, "followerBully", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossBoar", 100, "followerKojaniy", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossKolontay", 100, "followerSanitar", 0, "ZoneSanatorium1,ZoneSanatorium2") + locations["shoreline"].base.BossLocationSpawn.push(BossWave) + const Goons = Waves.Goons + Goons.BossZone = "ZoneSanatorium1,ZoneSanatorium2" + locations["shoreline"].base.BossLocationSpawn.push(Goons) + } + } + if (Config.Raids.RaidEvents.BossesOnCustoms) { + for (let bosses in locations["bigmap"].base.BossLocationSpawn) { + if (locations["bigmap"].base.BossLocationSpawn[bosses].BossName == "bossBully") { + locations["bigmap"].base.BossLocationSpawn[bosses].BossChance = 100; + } + } + let BossWave = CreateBoss("bossKilla", 100, "followerBully", 0, "ZoneOldAZS") + locations["bigmap"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossKojaniy", 100, "followerKojaniy", 2, "ZoneFactoryCenter") + locations["bigmap"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossSanitar", 100, "followerSanitar", 2, "ZoneGasStation") + locations["bigmap"].base.BossLocationSpawn.push(BossWave) + BossWave = CreateBoss("bossTagilla", 100, "followerBully", 0, "ZoneOldAZS") + locations["bigmap"].base.BossLocationSpawn.push(BossWave) + const Glukhar = Waves.Glukhar + Glukhar.BossZone = "ZoneScavBase" + locations["bigmap"].base.BossLocationSpawn.push(Glukhar) + } + if (Config.Raids.RaidEvents.CultistBosses) { + const Cultists = Waves.Cultists; + Cultists.BossChance = Config.Raids.RaidEvents.CultistBossesChance + Cultists.OpenZones = locations["bigmap"].base.OpenZones + locations["bigmap"].base.BossLocationSpawn.push(Cultists) + Cultists.OpenZones = locations["shoreline"].base.OpenZones + locations["shoreline"].base.BossLocationSpawn.push(Cultists) + Cultists.OpenZones = locations["woods"].base.OpenZones + locations["woods"].base.BossLocationSpawn.push(Cultists) + Cultists.OpenZones = locations["lighthouse"].base.OpenZones + locations["lighthouse"].base.BossLocationSpawn.push(Cultists) + } + if (Config.Raids.RaidEvents.GoonsFactory) { + const Goons = Waves.Goons; + Goons.BossZone = "BotZone"; + Goons.BossChance = Config.Raids.RaidEvents.GoonsFactoryChance; + locations["factory4_day"].base.BossLocationSpawn.push(Goons) + locations["factory4_night"].base.BossLocationSpawn.push(Goons) + } + if (Config.Raids.RaidEvents.GlukharLabs) {//BossZone": "BotZoneFloor1,BotZoneFloor2", // "BossChance": 43, + const Glukhar = Waves.Glukhar + Glukhar.BossZone = "BotZoneFloor1,BotZoneFloor2" + locations["laboratory"].base.BossLocationSpawn.push(Glukhar) + } + for (let i in locations)//Bloodhounds events spawn chance - this is bad solution, but i made it on a quick hand, not sure this event lasts either. + { + if (i !== "base" && locations[i].base.BossLocationSpawn) { + for (let x in locations[i].base.BossLocationSpawn) { + if (locations[i].base.BossLocationSpawn[x].BossName == "arenaFighterEvent" && i == "bigmap") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Raids.RaidEvents.HoundsCustoms + } + if (locations[i].base.BossLocationSpawn[x].BossName == "arenaFighterEvent" && i == "woods") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Raids.RaidEvents.HoundsWoods + } + if (locations[i].base.BossLocationSpawn[x].BossName == "peacemaker" && i == "shoreline") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Raids.RaidEvents.PeaceFighters + } + if (locations[i].base.BossLocationSpawn[x].BossName == "skier" && i == "bigmap") { + locations[i].base.BossLocationSpawn[x].BossChance = Config.Raids.RaidEvents.SkierFighters + } + } + } + } + if (Config.Raids.ForceTransitStash) { + for (let levels in globals.FenceSettings.Levels) { + globals.FenceSettings.Levels[levels].TransitGridSize["x"] = Config.Raids.TransitWidth + globals.FenceSettings.Levels[levels].TransitGridSize["y"] = Config.Raids.TransitHeight + } + } + //############## BTR STUFF + if (Config.Raids.EnableBTR) { + if (Config.Raids.ForceBTRFriendly) { + for (let levels in globals.FenceSettings.Levels) { + globals.FenceSettings.Levels[levels].CanInteractWithBtr = true; + } + } + if (Config.Raids.ForceBTRStash) { + for (let levels in globals.FenceSettings.Levels) { + globals.FenceSettings.Levels[levels].DeliveryGridSize["x"] = Config.Raids.BTRWidth + globals.FenceSettings.Levels[levels].DeliveryGridSize["y"] = Config.Raids.BTRHeight + } + } + globals.BTRSettings.BasePriceTaxi = Config.Raids.BTRTaxiPrice + globals.BTRSettings.CleanUpPrice = Config.Raids.BTRCoverPrice + globals.BTRSettings.BearPriceMod = Config.Raids.BearMult + globals.BTRSettings.UsecPriceMod = Config.Raids.UsecMult + globals.BTRSettings.ScavPriceMod = Config.Raids.ScavMult + } + } + //############## TRADERS SECTION ############## + if (Config.Traders.EnableTraders) { + if (Config.Traders.Fence.EnableFence) { + trader.fence.assortSize = Config.Traders.Fence.AmountOnSale; + trader.fence.discountOptions.assortSize = Config.Traders.Fence.PremiumAmountOnSale; + trader.fence.weaponPresetMinMax.min = Config.Traders.Fence.PresetCount; + trader.fence.weaponPresetMinMax.max = Config.Traders.Fence.PresetCount; + trader.fence.presetPriceMult = Config.Traders.Fence.PresetMult; + trader.fence.itemPriceMult = Config.Traders.Fence.PriceMult; + for (let stock in trader.updateTime)//useless cycle for now, will remove later. + { + if (trader.updateTime[stock].traderId === "579dc571d53a0658a154fbec") { + trader.updateTime[stock].seconds.min = Config.Traders.Fence.StockTime_Min * 60; + trader.updateTime[stock].seconds.max = Config.Traders.Fence.StockTime_Max * 60; + } + } + trader.fence.weaponDurabilityPercentMinMax.current.min = Config.Traders.Fence.GunDurability_Min + trader.fence.weaponDurabilityPercentMinMax.current.max = Config.Traders.Fence.GunDurability_Max + trader.fence.armorMaxDurabilityPercentMinMax.current.min = Config.Traders.Fence.ArmorDurability_Min + trader.fence.armorMaxDurabilityPercentMinMax.current.max = Config.Traders.Fence.ArmorDurability_Max + let BlacklistArray = Config.Traders.Fence.Blacklist.split("\r\n"); + BlackItems.blacklist.push(BlacklistArray); + } + globals.TradingSettings.BuyoutRestrictions.MinDurability = Config.Traders.MinDurabSell / 100 + + Quest.mailRedeemTimeHours.default = Config.Traders.QuestRedeemDefault; + Quest.mailRedeemTimeHours.unheard_edition = Config.Traders.QuestRedeemUnheard; + + trader.purchasesAreFoundInRaid = Config.Traders.FIRTrade; + traders["5c0647fdd443bc2504c2d371"].base.unlockedByDefault = Config.Traders.UnlockJaeger + traders["6617beeaa9cfa777ca915b7c"].base.unlockedByDefault = Config.Traders.UnlockRef + const Mark = Config.Traders.TraderMarkup; + const MarkArray = [Mark.Prapor, + Mark.Therapist, + Mark.Fence, + Mark.Skier, + Mark.Peacekeeper, + Mark.Mechanic, + Mark.Ragman, + Mark.Jaeger, + Mark.Ref + ] + for (let CurTrader in Arrays.traderArray) { + for (let level in traders[Arrays.traderArray[CurTrader]].base.loyaltyLevels) { + traders[Arrays.traderArray[CurTrader]].base.loyaltyLevels[level].buy_price_coef = 100 - MarkArray[CurTrader] + } + } + //Enable all the quests + if (Config.Traders.AllQuestsAvailable) { + for (let id in Quests) { + let QuestData = Quests[id] + QuestData.conditions.AvailableForStart = [] + } + } + if (Config.Traders.FIRRestrictsQuests) { + for (const id in Quests) { + let condition = Quests[id].conditions.AvailableForFinish + for (const requirements in condition) { + if (condition[requirements].onlyFoundInRaid !== undefined) { + condition[requirements].onlyFoundInRaid = false; + } + } + } + } + if (Config.Traders.RemoveTimeCondition) { + for (const id in Quests) { + let condition = Quests[id].conditions.AvailableForStart + for (const requirements in condition) { + if (condition[requirements].availableAfter !== undefined) { + condition[requirements].availableAfter = 0; + } + } + } + } + //Enable all traders 4 stars + if (Config.Traders.TradersLvl4) { + for (let traderID in traders) { + let loyaltyLevels = traders[traderID].base.loyaltyLevels; + for (let level in loyaltyLevels) { + loyaltyLevels[level].minLevel = 1 + loyaltyLevels[level].minSalesSum = 0 + loyaltyLevels[level].minStanding = 0 + } + } + } + if (Config.Traders.UnlockQuestAssort) { + for (let AssortR in traders) { + if (AssortR !== "ragfair" && AssortR !== "638f541a29ffd1183d187f57" && traders[AssortR].questassort.success !== undefined) { + traders[AssortR].questassort.success = {} + } + } + } + if (Config.Traders.RemoveTradeLimits) { + for (let AssortR in traders) { + if (AssortR !== "ragfair" && AssortR !== "638f541a29ffd1183d187f57") { + for (let level in traders[AssortR].assort.items) { + if (traders[AssortR].assort.items[level].upd !== undefined && traders[AssortR].assort.items[level].upd["BuyRestrictionMax"] !== undefined) { + traders[AssortR].assort.items[level].upd["BuyRestrictionMax"] = 999999; + } + } + } + } + } + if (Config.Traders.IncreaseAssort) { + for (let AssortR in traders) { + if (AssortR !== "ragfair" && AssortR !== "638f541a29ffd1183d187f57") { + for (let level in traders[AssortR].assort.items) { + if (traders[AssortR].assort.items[level].upd !== undefined && traders[AssortR].assort.items[level].upd["StackObjectsCount"] !== undefined) { + traders[AssortR].assort.items[level].upd["StackObjectsCount"] = 1337420; + } + } + } + } + } + //sell assort + const Sell = Config.Traders.TraderSell; + const SellArray = [Sell.Prapor, + Sell.Therapist, + Sell.Skier, + Sell.Peacekeeper, + Sell.Mechanic, + Sell.Ragman, + Sell.Jaeger, + Sell.Ref + ] + let p = 0; + for (let CurTrader in Arrays.traderArray) { + if (Arrays.traderArray[CurTrader] != "579dc571d53a0658a154fbec") { //Bandaid, added it to fit markup yet there is no assort to edit for fence + for (let assortment in traders[Arrays.traderArray[CurTrader]].assort.barter_scheme) { + let TradeAssort = traders[Arrays.traderArray[CurTrader]].assort.barter_scheme[assortment][0][0]; + switch (TradeAssort._tpl) { + case "5449016a4bdc2d6f028b456f": + case "569668774bdc2da2298b4568": + case "5696686a4bdc2da3298b456a": + case "5d235b4d86f7742e017bc88a": + if (TradeAssort.count !== undefined) { + TradeAssort.count = parseFloat((TradeAssort.count * SellArray[p]).toFixed(2)); + } + break; + } + } + p++; + } + } + if (Config.Traders.RemoveCurrencyOffers || Config.Traders.RemoveBarterOffers) { + for (let CurTrader in traders) { + if (CurTrader !== "ragfair" && CurTrader !== "638f541a29ffd1183d187f57" && CurTrader !== "579dc571d53a0658a154fbec") //avoid ragfair, lighthouse trader and fence + { + for (let assortment in traders[CurTrader].assort.barter_scheme) { + let TradeAssort = traders[CurTrader].assort.barter_scheme[assortment][0][0]; + switch (TradeAssort._tpl) { + case "5449016a4bdc2d6f028b456f": + case "569668774bdc2da2298b4568": + case "5696686a4bdc2da3298b456a": + if (Config.Traders.RemoveCurrencyOffers) { + for (let DeletElem in traders[CurTrader].assort.items) {//3.10 rework instead of deleting assort - set everything to 0 instead. + if (traders[CurTrader].assort.items[DeletElem]._id == assortment) { + if (traders[CurTrader].assort.items[DeletElem].upd.UnlimitedCount !== undefined) { + traders[CurTrader].assort.items[DeletElem].upd.UnlimitedCount = false; + } + traders[CurTrader].assort.items[DeletElem].upd["StackObjectsCount"] = 0; + } + } + } + break; + default: + if (Config.Traders.RemoveBarterOffers) { + for (let DeletElem in traders[CurTrader].assort.items) { + if (traders[CurTrader].assort.items[DeletElem]._id == assortment) { + if (traders[CurTrader].assort.items[DeletElem].upd.UnlimitedCount !== undefined) { + traders[CurTrader].assort.items[DeletElem].upd.UnlimitedCount = false; + } + traders[CurTrader].assort.items[DeletElem].upd["StackObjectsCount"] = 0; + } + } + } + break; + } + } + } + } + } + } + //############## PMC SECTION ################## + if (Config.PMC.EnablePMC) { + PMC.isUsec = Config.PMC.PMCRatio; + for (let i in locations) { + if (i !== "base" && locations[i].base.BossLocationSpawn !== undefined) {//I Really think this is overkill, but oh well. + for (let ai in locations[i].base.BossLocationSpawn) { + if (locations[i].base.BossLocationSpawn[ai].BossName == "pmcBEAR" || locations[i].base.BossLocationSpawn[ai].BossName == "pmcUSEC") { + let randnum = Math.floor(Math.random() * 100) + 1 + if (randnum > Config.PMC.PMCRatio) { + locations[i].base.BossLocationSpawn[ai].BossName = "pmcBEAR"; + } + else { + locations[i].base.BossLocationSpawn[ai].BossName = "pmcUSEC"; + } + } + } + } + } + PMC.botRelativeLevelDeltaMax = Config.PMC.LevelUpMargin; + PMC.botRelativeLevelDeltaMin = Config.PMC.LevelDownMargin; + if (Config.PMC.ChancesEnable) { + //1.10.1 Hostility + PMC.hostilitySettings.pmcbear.usecEnemyChance = Config.PMC.PMCChance.HostilePMC + PMC.hostilitySettings.pmcbear.bearEnemyChance = Config.PMC.PMCChance.HostileSamePMC + PMC.hostilitySettings.pmcusec.bearEnemyChance = Config.PMC.PMCChance.HostilePMC + PMC.hostilitySettings.pmcusec.usecEnemyChance = Config.PMC.PMCChance.HostileSamePMC + for (let diffs in Bot["pmcusec"].difficulty) { + Bot["pmcusec"].difficulty[diffs].Mind.DEFAULT_USEC_BEHAVIOUR = "ChancedEnemies";//Something that live dumps and SPT configs have in conflict + Bot["pmcusec"].difficulty[diffs].Mind.DEFAULT_BEAR_BEHAVIOUR = "ChancedEnemies"; + Bot["usec"].difficulty[diffs].Mind.DEFAULT_USEC_BEHAVIOUR = "ChancedEnemies";//No clue whether just 'usec' or 'bear' is required. + Bot["usec"].difficulty[diffs].Mind.DEFAULT_BEAR_BEHAVIOUR = "ChancedEnemies"; + } + for (let diffs in Bot["pmcbear"].difficulty) { + Bot["pmcbear"].difficulty[diffs].Mind.DEFAULT_USEC_BEHAVIOUR = "ChancedEnemies"; + Bot["pmcbear"].difficulty[diffs].Mind.DEFAULT_BEAR_BEHAVIOUR = "ChancedEnemies"; + Bot["bear"].difficulty[diffs].Mind.DEFAULT_USEC_BEHAVIOUR = "ChancedEnemies"; + Bot["bear"].difficulty[diffs].Mind.DEFAULT_BEAR_BEHAVIOUR = "ChancedEnemies"; + } + AIHostility("pmcBEAR", "pmcUSEC") + AIHostility("pmcUSEC", "pmcBEAR") + PMC.looseWeaponInBackpackChancePercent = Config.PMC.PMCChance.PMCLooseWep; + PMC.weaponHasEnhancementChancePercent = Config.PMC.PMCChance.PMCWepEnhance; + PMC.addPrefixToSameNamePMCAsPlayerChance = Config.PMC.PMCChance.PMCNamePrefix; + PMC.allPMCsHavePlayerNameWithRandomPrefixChance = Config.PMC.PMCChance.PMCAllNamePrefix; + } + //Lootable melees + for (const id in items) { + let base = items[id] + if (base._parent === "5447e1d04bdc2dff2f8b4567" && base._id !== "6087e570b998180e9f76dc24" && Config.PMC.LootableMelee) { + EditSimpleItemData(id, "Unlootable", false); + items[id]._props.UnlootableFromSide = []; + } + } + if (Config.PMC.DisableLowLevelPMC) { + Bots.equipment.pmc.randomisation[0].levelRange.max = 1; + Bots.equipment.pmc.randomisation[1].levelRange.min = 1; + Bots.equipment.pmc.randomisation[2].levelRange.min = 1; + Bots.equipment.pmc.randomisation[3].levelRange.min = 1; + //Bots.equipment.pmc.randomisation[4].levelRange.min = 1; + } + if (Config.PMC.NamesEnable) { + if (Config.PMC.NameOverride) { + let Names = Config.PMC.PMCNameList.split("\r\n") + Bot["pmcusec"].firstName = Names; + Bot["pmcbear"].firstName = Names; + Bot["usec"].firstName = Names; + Bot["bear"].firstName = Names; + } + else { + let Names = Config.PMC.PMCNameList.split("\r\n") + for (const name in Names)//I don't really remember should i even have this cycle here, but eh, cba. + { + Bot["pmcusec"].firstName.push(Names[name]) + Bot["pmcbear"].firstName.push(Names[name]) + Bot["usec"].firstName.push(Names[name]) + Bot["bear"].firstName.push(Names[name]) + } + } + } + } + //############## REPEATABLE QUESTS SECTION ############# + if (Config.Quests.EnableQuests) { + const Daily = Config.Quests.DailyQuests; + const Weekly = Config.Quests.WeeklyQuests; + const ScavDaily = Config.Quests.ScavQuests; + //Logger.info(DB.templates.repeatableQuests.templates) + if (Config.Quests.EnableQuestsMisc) { + for (let types in DB.templates.repeatableQuests.templates) { + DB.templates.repeatableQuests.templates[types].changeCost[0].count *= Config.Quests.QuestCostMult + } + if (Config.Quests.QuestRepToZero) { + for (let types in Quest.repeatableQuests) { + Quest.repeatableQuests[types].standingChangeCost = [0]; + } + } + } + //Requirements + QuestDetails(Daily, "0") + QuestDetails(Weekly, "1") + QuestDetails(ScavDaily, "2") + //Rewards + QuestReward(Daily, "0") + QuestReward(Weekly, "1") + QuestReward(ScavDaily, "2") + } + //############## SCAV SECTION ############## I wish i never made one, but here we are + if (Config.Scav.EnableScav) { + //Base Fence rep given by car extract + Inraid.carExtractBaseStandingGain = Config.Scav.CarBaseStanding + //Allow Scav into Lab + locations["laboratory"].base.DisabledForScav = !Config.Scav.ScavLab; + //Scav Cooldown Timer + globals.SavagePlayCooldown = Config.Scav.ScavTimer; + + for (let levels in globals.FenceSettings.Levels)//Damn it looks counter intuitive + { + if (Config.Scav.HostileScavs) { + globals.FenceSettings.Levels[levels].HostileScavs = Config.Scav.HostileScavs + } + if (Config.Scav.HostileBosses) { + globals.FenceSettings.Levels[levels].HostileBosses = Config.Scav.HostileScavs + } + if (Config.Scav.FriendlyScavs) { + globals.FenceSettings.Levels[levels].HostileScavs = !Config.Scav.FriendlyScavs + } + if (Config.Scav.FriendlyBosses) { + globals.FenceSettings.Levels[levels].HostileBosses = !Config.Scav.FriendlyBosses + } + } + if (Config.Scav.ScavCustomPockets) { + const JsonUtil = container.resolve("JsonUtil"); + let ScavCustomPocketItem = JsonUtil.clone(items["557ffd194bdc2d28148b457f"]) + let ScavPocketSize = Config.Scav.SCAVPockets + ScavCustomPocketItem._id = "a8edfb0bce53d103d3f6219b" + for (let cell in ScavCustomPocketItem._props.Grids)//tried to make less code, made more, smh. + { + ScavCustomPocketItem._props.Grids[cell]._parent = "a8edfb0bce53d103d3f6219b" + } + ScavCustomPocketItem._props.Grids[0]._id = "a8edfb0bce53d103d3f6229b" + ScavCustomPocketItem._props.Grids[0]._props.cellsH = ScavPocketSize.FirstWidth + ScavCustomPocketItem._props.Grids[0]._props.cellsV = ScavPocketSize.FirstHeight + ScavCustomPocketItem._props.Grids[1]._id = "a8edfb0bce53d103d3f6239b" + ScavCustomPocketItem._props.Grids[1]._props.cellsH = ScavPocketSize.SecondWidth + ScavCustomPocketItem._props.Grids[1]._props.cellsV = ScavPocketSize.SecondHeight + ScavCustomPocketItem._props.Grids[2]._id = "a8edfb0bce53d103d3f6249b" + ScavCustomPocketItem._props.Grids[2]._props.cellsH = ScavPocketSize.ThirdWidth + ScavCustomPocketItem._props.Grids[2]._props.cellsV = ScavPocketSize.ThirdHeight + ScavCustomPocketItem._props.Grids[3]._id = "a8edfb0bce53d103d3f6259b" + ScavCustomPocketItem._props.Grids[3]._props.cellsH = ScavPocketSize.FourthWidth + ScavCustomPocketItem._props.Grids[3]._props.cellsV = ScavPocketSize.FourthHeight + switch (true) { + case ScavPocketSize.FourthWidth == 0 || ScavPocketSize.FourthHeight == 0: + ScavCustomPocketItem._props.Grids.splice(3, 1) + case ScavPocketSize.ThirdWidth == 0 || ScavPocketSize.ThirdHeight == 0: + ScavCustomPocketItem._props.Grids.splice(2, 1); + case ScavPocketSize.SecondWidth == 0 || ScavPocketSize.SecondHeight == 0: + ScavCustomPocketItem._props.Grids.splice(1, 1); + case ScavPocketSize.FirstWidth == 0 || ScavPocketSize.FirstHeight == 0: + ScavCustomPocketItem._props.Grids.splice(0, 1); + break; + default: + break; + } + items["a8edfb0bce53d103d3f6219b"] = ScavCustomPocketItem; + } + } + //############## CUSTOM SECTION ############## + if (Config.Custom.EnableCustom) { + if (Config.Custom.LoggerIntoServer) { + Logger.warning("[SVM] PRESET IS BEING LOGGED INTO SERVER, DO NOT USE THIS FEATURE UNDER NORMAL CIRCUMSTANCES") + Logger.debug(Config) + } + const Core = configServer.getConfig("spt-core"); + Core.features.chatbotFeatures.sptFriendEnabled = !Config.Custom.DisableSPTFriend + Core.features.chatbotFeatures.commandoEnabled = !Config.Custom.DisableCommando + if (Config.Custom.DisablePMCMessages) { + const Chat = configServer.getConfig("spt-pmcchatresponse"); + Chat.victim.responseChancePercent = 0; + Chat.killer.responseChancePercent = 0; + } + + //If you're reading here, maybe you checked that custom fields exist now, + //feel free to use this place to run your own little scripts using SVM as a framework, Search word is `banana` + //Mind you, Custom section needs to be enabled, you can however write stuff after the bracket there to run the code if at least preset exist. + //Fields names are `CustomCheck1,2,3,4` and `CustomNumber1,2,3,4` + } + //##### + + //############## FUNCTIONS ############## + //Set a Unique AI type spawn within selected location, with a lot of variables to come in. + function AIHostility(First, Second) { + let temp; + if (First == "pmcUSEC") { + temp = "pmcusec" + } + else { + temp = "pmcbear" + } + for (let ai in PMC.hostilitySettings[temp].chancedEnemies) { + if (PMC.hostilitySettings[temp].chancedEnemies[ai].Role == Second) { + PMC.hostilitySettings[temp].chancedEnemies[ai].EnemyChance = Config.PMC.PMCChance.HostilePMC; + } + if (PMC.hostilitySettings[temp].chancedEnemies[ai].Role == First) { + PMC.hostilitySettings[temp].chancedEnemies[ai].EnemyChance = Config.PMC.PMCChance.HostileSamePMC; + } + } + for (let i in locations) { + if (i !== "base" && locations[i].base.BotLocationModifier.AdditionalHostilitySettings !== undefined) { + for (let ai in locations[i].base.BotLocationModifier.AdditionalHostilitySettings) { + if (locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].BotRole == First) { + locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].bearEnemyChance = Config.PMC.PMCChance.HostilePMC + locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].usecEnemyChance = Config.PMC.PMCChance.HostileSamePMC + for (let hostility in locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].ChancedEnemies) { + if (locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].ChancedEnemies[hostility].Role == Second) {//Because one PMC type has entry of other type and not themselves + locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].ChancedEnemies[hostility].EnemyChance = Config.PMC.PMCChance.HostilePMC + } + } + } + else//Due to namings of the variables, this extra thing goes + { + locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].usecEnemyChance = Config.PMC.PMCChance.HostilePMC + locations[i].base.BotLocationModifier.AdditionalHostilitySettings[ai].bearEnemyChance = Config.PMC.PMCChance.HostileSamePMC + } + } + } + } + + + } + function CreateBoss(role, chance, followers, escortAmount, zones) { + return { + "BossName": role, + "BossChance": chance, + "BossZone": zones, + "BossPlayer": false, + "BossDifficult": "normal", + "BossEscortType": followers, + "BossEscortDifficult": "normal", + "BossEscortAmount": escortAmount, + "Time": -1 + } + } + function Filter(value) { + let test = value.substring(1, value.length - 1) + let result = test.split(",") + return result + } + function EditSimpleItemData(id, data, value) { + if (isNaN(value) && value !== 'true' && value !== 'false') { + items[id]._props[data] = value + } + else { + items[id]._props[data] = JSON.parse(value) + } + } + function QuestDetails(Type, Digit) { + Quest.repeatableQuests[Digit].resetTime = Type.Lifespan * 60; + Quest.repeatableQuests[Digit].types = [] + if (Digit < 2) { + switch (Type.Types)//Horrible + { + case 0: Quest.repeatableQuests[Digit].types.push(Arrays.Types[0]) + break; + case 1: Quest.repeatableQuests[Digit].types.push(Arrays.Types[1]) + break; + case 2: Quest.repeatableQuests[Digit].types.push(Arrays.Types[2]) + break; + case 3: Quest.repeatableQuests[Digit].types.push(Arrays.Types[0], Arrays.Types[1]) + break; + case 4: Quest.repeatableQuests[Digit].types.push(Arrays.Types[1], Arrays.Types[2]) + break; + case 5: Quest.repeatableQuests[Digit].types.push(Arrays.Types[0], Arrays.Types[2]) + break; + case 6: Quest.repeatableQuests[Digit].types.push(Arrays.Types[0], Arrays.Types[1], Arrays.Types[2]) + break; + } + } + else { + switch (Type.Types) { + case 0: Quest.repeatableQuests[2].types.push(Arrays.Types[0]) + break; + case 1: Quest.repeatableQuests[2].types.push(Arrays.Types[1]) + break; + case 2: Quest.repeatableQuests[2].types.push(Arrays.Types[0], Arrays.Types[1]) + } + } + Quest.repeatableQuests[Digit].numQuests = Type.QuestAmount; + Quest.repeatableQuests[Digit].freeChanges = Type.Reroll + Quest.repeatableQuests[Digit].freeChangesAvailable = Type.Reroll + Quest.repeatableQuests[Digit].minPlayerLevel = Type.Access + Quest.repeatableQuests[Digit].rewardScaling.rewardSpread = Type.Spread; + Quest.repeatableQuests[Digit].questConfig.Exploration.maxExtracts = Type.Extracts; + Quest.repeatableQuests[Digit].questConfig.Completion.minRequestedAmount = Type.MinItems; + Quest.repeatableQuests[Digit].questConfig.Completion.maxRequestedAmount = Type.MaxItems; + Quest.repeatableQuests[Digit].questConfig.Elimination[0].minKills = Type.MinKillsLR1; + Quest.repeatableQuests[Digit].questConfig.Elimination[0].maxKills = Type.MaxKillsLR1; + Quest.repeatableQuests[Digit].questConfig.Elimination[1].minKills = Type.MinKillsLR2; + Quest.repeatableQuests[Digit].questConfig.Elimination[1].maxKills = Type.MaxKillsLR2; + if (Digit < 2) { + Quest.repeatableQuests[Digit].questConfig.Elimination[2].minKills = Type.MinKillsLR3; + Quest.repeatableQuests[Digit].questConfig.Elimination[2].maxKills = Type.MaxKillsLR3; + } + } + function AirdropContents(DBType, Type) { + if (Airdrop.loot[DBType] != undefined) { + Airdrop.loot[DBType].itemCount.min = Type.BarterMin + Airdrop.loot[DBType].itemCount.max = Type.BarterMax + Airdrop.loot[DBType].weaponPresetCount.min = Type.PresetMin + Airdrop.loot[DBType].weaponPresetCount.max = Type.PresetMax + Airdrop.loot[DBType].armorPresetCount.min = Type.ArmorMin + Airdrop.loot[DBType].armorPresetCount.max = Type.ArmorMax + Airdrop.loot[DBType].weaponCrateCount.min = Type.CratesMin + Airdrop.loot[DBType].weaponCrateCount.max = Type.CratesMax + } + } + function QuestReward(Type, Digit) { + try { + let Levels = Type.Levels.split(","); + let Exp = Type.Experience.split(","); + let Reputation = Type.Reputation.split(","); + let ItemsReward = Type.ItemsReward.split(","); + let Roubles = Type.Roubles.split(","); + let GPcoins = Type.GPcoins.split(","); + let SkillChance = Type.SkillChance.split(","); + let SkillPoint = Type.SkillPoint.split(","); + + if ((Levels.length == Exp.length) && (Levels.length == Reputation.length) && + (Levels.length == ItemsReward.length) && (Levels.length == Roubles.length) && + (Levels.length == GPcoins.length) && (Levels.length == SkillChance.length) && (Levels.length == SkillPoint.length)) { + Quest.repeatableQuests[Digit].rewardScaling.levels = ApplyQuestRewardChange(Levels) + Quest.repeatableQuests[Digit].rewardScaling.experience = ApplyQuestRewardChange(Exp) + Quest.repeatableQuests[Digit].rewardScaling.reputation = ApplyQuestRewardChange(Reputation) + Quest.repeatableQuests[Digit].rewardScaling.ItemsReward = ApplyQuestRewardChange(ItemsReward) + Quest.repeatableQuests[Digit].rewardScaling.roubles = ApplyQuestRewardChange(Roubles) + Quest.repeatableQuests[Digit].rewardScaling.gpCoins = ApplyQuestRewardChange(GPcoins) + Quest.repeatableQuests[Digit].rewardScaling.SkillChance = ApplyQuestRewardChange(SkillChance) + Quest.repeatableQuests[Digit].rewardScaling.SkillPoint = ApplyQuestRewardChange(SkillPoint) + } + else {//I think at this point this one is redundant. + Logger.error("[SVM] REPEATABLE QUESTS - Daily rewards scales written wrongly, read FAQ, changes ignored.") + } + } + catch { + Logger.error("[SVM] REPEATABLE QUESTS - Daily rewards scales written wrongly, read FAQ, changes ignored.") + } + } + function ApplyQuestRewardChange(Item) { + if (!Item.map(Number).includes(NaN)) { + return Item.map(Number) + } + else { + Logger.error("[SVM] REPEATABLE QUESTS - Certain field is not a number: " + Item) + throw new Error() + } + } + function isJSONValueDefined(value) { + return value !== undefined && !value.isNaN; + } + function FreeExit(Exit) { + Exit.PassageRequirement = "None"; + Exit.ExfiltrationType = "Individual"; + Exit.Id = ''; + Exit.Count = 0; + Exit.PlayersCount = 0; + Exit.RequirementTip = ''; + if (Exit.RequiredSlot) { + delete Exit.RequiredSlot; + } + } + function IDChanger(Variables) { + try { + switch (Variables.length) { + case 3: + items[Variables[0]]._props[Variables[1]] = CheckType(Variables[2]) + break; + case 4: + if (SymbolCheck(Variables[2])) { + items[Variables[0]]._props[Variables[1]] = Calculus(items[Variables[0]]._props[Variables[1]], Variables[2], Variables[3]) + } + else { + items[Variables[0]]._props[Variables[1]][Variables[2]] = CheckType(Variables[3]) + } + break; + case 5: + if (SymbolCheck(Variables[3])) { + items[Variables[0]]._props[Variables[1]][Variables[2]] = Calculus(items[Variables[0]]._props[Variables[1]][Variables[2]], Variables[3], Variables[4]) + } + else { + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]] = CheckType(Variables[4]) + } + break; + case 6: + if (SymbolCheck(Variables[4])) { + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]] = Calculus(items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]], Variables[4], Variables[5]) + } + else { + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]][Variables[4]] = CheckType(Variables[5]) + } + break; + case 7: + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]][Variables[4]][Variables[5]] = CheckType(Variables[6]) + break; + case 8: + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]][Variables[4]][Variables[5]][Variables[6]] = CheckType(Variables[7]) + break; + case 9: + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]][Variables[4]][Variables[5]][Variables[6]][Variables[7]] = CheckType(Variables[8]) + break; + case 10: + items[Variables[0]]._props[Variables[1]][Variables[2]][Variables[3]][Variables[4]][Variables[5]][Variables[6]][Variables[7]][Variables[8]] = CheckType(Variables[9]) + break; + default: + Logger.error("[SVM] INVENTORY AND ITEMS - Custom properties line failed, More than 10 or less than 3 variables?") + break; + } + } + catch (e) { + Logger.error("[SVM] INVENTORY AND ITEMS - Custom properties line failed, something ain't right\n" + e) + } + } + function CheckType(object) { + if (object.includes(",") || object.includes("[")) { + return Filter(object) + } + else if (isNaN(object) && object !== 'true' && object !== 'false') { + return object; + } + else { + return JSON.parse(object) + } + } + function AdjustDurab(Type, WepMin, WepMax, ArmMin, ArmMax) { + Type.weapon.lowestMax = WepMin; + Type.weapon.highestMax = WepMax; + Type.armor.maxDelta = 100 - ArmMax; + Type.armor.minDelta = 100 - ArmMin; + } + function SymbolCheck(Value) { + return (Value == "*" || Value == "/" || Value == "+" || Value == "-"); + } + function Calculus(Field, Operand, Value) { + switch (Operand) { + case "/": + Field = parseInt(parseInt(Field) / parseFloat(Value)) + break; + case "*": + Field = parseInt(parseInt(Field) * parseFloat(Value)) + break; + case "+": + Field = parseInt(parseInt(Field) + parseFloat(Value)) + break; + case "-": + Field = parseInt(parseInt(Field) - parseFloat(Value)) + break; + case "=": + Field = parseFloat(Value) + break; + } + return Field + } + function AmmoFilter(AID, Comp) { + for (let ID in AID) { + if (Comp.includes(AID[ID])) { + return true; + } + } + return false; + } + //initialise complete logger + const Misc = require('../src/Misc.json'); + Logger.log(`[SVM] Initialization complete. ` + Misc.funni[Math.floor(Math.random() * Misc.funni.length)], "blue"); + if (PresetLoader.CurrentlySelectedPreset != "" && PresetLoader.CurrentlySelectedPreset != undefined) { + Logger.log("[SVM] Preset - " + PresetLoader.CurrentlySelectedPreset + " - successfully loaded", "blue"); + } + } +} +module.exports = { + mod: new MainSVM +}; \ No newline at end of file diff --git a/user/mods/[SVM] Server Value Modifier/src/Waves.json b/user/mods/[SVM] Server Value Modifier/src/Waves.json new file mode 100644 index 0000000..6c67933 --- /dev/null +++ b/user/mods/[SVM] Server Value Modifier/src/Waves.json @@ -0,0 +1,212 @@ +{ + "Glukhar": { + "BossChance": 100, + "BossDifficult": "normal", + "BossEscortAmount": "2", + "BossEscortDifficult": "normal", + "BossEscortType": "followerGluharSecurity", + "BossName": "bossGluhar", + "BossPlayer": false, + "BossZone": "", + "Delay": 0, + "ForceSpawn": false, + "IgnoreMaxBots": true, + "RandomTimeSpawn": false, + "SpawnMode": [ + "regular", + "pve" + ], + "Supports": [ + { + "BossEscortAmount": "2", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerGluharAssault" + }, + { + "BossEscortAmount": "2", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerGluharSecurity" + }, + { + "BossEscortAmount": "2", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerGluharScout" + } + ], + "Time": -1, + "TriggerId": "", + "TriggerName": "" + }, + "Kaban": { + "BossChance": 100, + "BossDifficult": "normal", + "BossEscortAmount": "6", + "BossEscortDifficult": "normal", + "BossEscortType": "followerBoar", + "BossName": "bossBoar", + "BossPlayer": false, + "BossZone": "", + "Delay": 0, + "ForceSpawn": false, + "IgnoreMaxBots": true, + "RandomTimeSpawn": false, + "SpawnMode": [ + "regular", + "pve" + ], + "Supports": [ + { + "BossEscortAmount": "4", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerBoar" + }, + { + "BossEscortAmount": "1", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerBoarClose1" + }, + { + "BossEscortAmount": "1", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerBoarClose2" + } + ], + "Time": -1, + "TriggerId": "", + "TriggerName": "" + }, + "Kolontay": { + "BossChance": 100, + "BossDifficult": "normal", + "BossEscortAmount": "2", + "BossEscortDifficult": "normal", + "BossEscortType": "followerKolontaySecurity", + "BossName": "bossKolontay", + "BossPlayer": false, + "BossZone": "", + "Delay": 0, + "ForceSpawn": false, + "IgnoreMaxBots": true, + "RandomTimeSpawn": false, + "SpawnMode": [ + "regular", + "pve" + ], + "Supports": [ + { + "BossEscortAmount": "2", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerKolontayAssault" + }, + { + "BossEscortAmount": "2", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerKolontaySecurity" + }, + { + "BossEscortAmount": "0", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerGluharScout" + } + ], + "Time": -1, + "TriggerId": "", + "TriggerName": "" + }, + "Goons": { + "BossChance": 100, + "BossDifficult": "normal", + "BossEscortAmount": "2", + "BossEscortDifficult": "normal", + "BossEscortType": "exUsec", + "BossName": "bossKnight", + "BossPlayer": false, + "BossZone": "", + "Delay": 0, + "DependKarma": false, + "DependKarmaPVE": false, + "ForceSpawn": false, + "IgnoreMaxBots": true, + "RandomTimeSpawn": true, + "SpawnMode": [ + "regular", + "pve" + ], + "Supports": [ + { + "BossEscortAmount": "1", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerBigPipe" + }, + { + "BossEscortAmount": "1", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "followerBirdEye" + } + ], + "Time": -1, + "TriggerId": "", + "TriggerName": "" + }, + "Cultists": { + "BossChance": 100, + "BossDifficult": "normal", + "BossEscortAmount": "2", + "BossEscortDifficult": "normal", + "BossEscortType": "sectantWarrior", + "BossName": "sectantPredvestnik", + "BossPlayer": false, + "BossZone": "", + "Delay": 0, + "DependKarma": false, + "DependKarmaPVE": false, + "ForceSpawn": false, + "IgnoreMaxBots": true, + "RandomTimeSpawn": true, + "SpawnMode": [ + "regular", + "pve" + ], + "Supports": [ + { + "BossEscortAmount": "1", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "sectantOni" + }, + { + "BossEscortAmount": "1", + "BossEscortDifficult": [ + "normal" + ], + "BossEscortType": "sectantPrizrak" + } + ], + "Time": -1, + "TriggerId": "", + "TriggerName": "" + } +} \ No newline at end of file diff --git a/user/mods/fika-server/assets/configs/fika.jsonc b/user/mods/fika-server/assets/configs/fika.jsonc index bfb87f2..d7b8bfa 100644 --- a/user/mods/fika-server/assets/configs/fika.jsonc +++ b/user/mods/fika-server/assets/configs/fika.jsonc @@ -1,59 +1,59 @@ { - "background": { - "easteregg": false, - "enable": true - }, - "client": { - "allowFreeCam": false, - "allowSpectateFreeCam": false, - "anyoneCanStartRaid": true, - "blacklistedItems": [], - "canEditRaidSettings": true, - "dynamicVExfils": false, - "enableTransits": true, - "forceSaveOnDeath": false, - "friendlyFire": true, - "mods": { - "optional": [], - "required": [] - }, - "sharedQuestProgression": true, - "useBtr": true, - "useInertia": true - }, - "headless": { - "profiles": { - "aliases": {}, - "amount": 1 - }, - "restartAfterAmountOfRaids": 0, - "scripts": { - "forceIp": "", - "generate": true - }, - "setLevelToAverageOfLobby": true - }, - "natPunchServer": { - "enable": "", - "natIntroduceAmount": "", - "port": "" - }, - "server": { - "SPT": { - "disableSPTChatBots": true, - "http": { - "backendIp": "0.0.0.0", - "backendPort": 6969, - "ip": "0.0.0.0", - "port": 6969 - } - }, - "allowItemSending": true, - "launcherListAllProfiles": false, - "logClientModsInConsole": false, - "sentItemsLoseFIR": false, - "sessionTimeout": 5, - "showDevProfile": false, - "showNonStandardProfile": false - } + "client": { + "useBtr": true, + "friendlyFire": true, + "dynamicVExfils": false, + "allowFreeCam": false, + "allowSpectateFreeCam": false, + "blacklistedItems": [], + "forceSaveOnDeath": true, + "mods": { + "required": [], + "optional": [] + }, + "useInertia": true, + "sharedQuestProgression": true, + "canEditRaidSettings": true, + "enableTransits": true, + "anyoneCanStartRaid": true + }, + "server": { + "SPT": { + "http": { + "ip": "0.0.0.0", + "port": 6969, + "backendIp": "0.0.0.0", + "backendPort": 6969 + }, + "disableSPTChatBots": true + }, + "allowItemSending": true, + "sentItemsLoseFIR": true, + "launcherListAllProfiles": false, + "sessionTimeout": 5, + "showDevProfile": false, + "showNonStandardProfile": false, + "logClientModsInConsole": false + }, + "natPunchServer": { + "enable": false, + "port": 6790, + "natIntroduceAmount": 1 + }, + "headless": { + "profiles": { + "amount": 1, + "aliases": {} + }, + "scripts": { + "generate": true, + "forceIp": "" + }, + "setLevelToAverageOfLobby": true, + "restartAfterAmountOfRaids": 1 + }, + "background": { + "enable": true, + "easteregg": false + } } \ No newline at end of file diff --git a/user/mods/fika-server/assets/scripts/Start_headless_687a982bf3ffa8709400227e.ps1 b/user/mods/fika-server/assets/scripts/Start_headless_687a982bf3ffa8709400227e.ps1 new file mode 100644 index 0000000..1b893ab --- /dev/null +++ b/user/mods/fika-server/assets/scripts/Start_headless_687a982bf3ffa8709400227e.ps1 @@ -0,0 +1,70 @@ +$Version = "1.1" +$ProfileId = "687a982bf3ffa8709400227e" +$BackendUrl = "https://127.0.0.1:6969" +$WaitTime = 2 + +$Host.UI.RawUI.WindowTitle = "Fika Headless Watcher v$Version" + +Write-Host "Fika Headless Watcher v$Version" +Write-Host +Write-Host "Profile Id: $ProfileId" +Write-Host "Backend Url: $BackendUrl" +Write-Host + +if (!(Test-Path "$PSScriptRoot\EscapeFromTarkov.exe")) { + Write-Host "Could not find 'EscapeFromTarkov.exe'. Please move this launch script into the root directory of your headless client SPT install." -ForegroundColor Red + Write-Host "Press [ENTER] or close this window to exit..." + Read-Host + exit +} + +if (!(Test-Path "$PSScriptRoot\BepInEx\plugins\Fika.Headless.dll")) { + Write-Host "Could not find 'Fika.Headless.dll'. Please install the Headless plugin before launching this script." -ForegroundColor Red + Write-Host "Press [ENTER] or close this window to exit..." + Read-Host + exit +} + +if (!(Test-Path "$PSScriptRoot\BepInEx\plugins\Fika.Core.dll")) { + Write-Host "Could not find 'Fika.Core.dll'. If you have not made a copy of a working SPT+Fika install, please start over from the first step of the instructions on the wiki. If you have mistakenly deleted Fika.Core.dll, please reinstall it." -ForegroundColor Red + Write-Host "Press [ENTER] or close this window to exit..." + Read-Host + exit +} + +$graphicsMode = $false + +for ($i = 0; $i -lt $WaitTime; $i++) { + $countDown = $WaitTime - $i + + Write-Progress -Activity "Starting headless in $countDown... press G to start the headless in graphics mode." -PercentComplete ((100/$WaitTime)*($i+1)) + Start-Sleep -Seconds 1 + + if ([Console]::KeyAvailable) { + $key = [Console]::ReadKey($true).Key + + if ($key -eq "G") { + $graphicsMode = $true + break + } + } +} + +Write-Progress -Activity "Starting headless in..." -Completed + +if ($graphicsMode) { + Write-Host "Starting in graphics mode..." + Start-Process "$PSScriptRoot\EscapeFromTarkov.exe" -WorkingDirectory $PSScriptRoot -ArgumentList "-token=$ProfileId", "-config={'BackendUrl':'$BackendUrl','Version':'live'}", "--enable-console true" -Wait + exit +} + +Write-Host "[INFO]" -ForegroundColor Blue +Write-Host " - This script will restart the headless client console if it crashes or closes" +Write-Host " - To force the headless client to restart after X number of raids, change 'restartAfterAmountOfRaids' in the server mod configuration" +Write-Host +Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Starting headless client" + +while ($true) { + Start-Process "$PSScriptRoot\EscapeFromTarkov.exe" -WorkingDirectory $PSScriptRoot -ArgumentList "-token=$ProfileId", "-config={'BackendUrl':'$BackendUrl','Version':'live'}", "-batchmode", "-nographics", "--enable-console true" -Wait + Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Headless client closed, restarting" +} diff --git a/user/mods/fika-server/cache/playerRelations.json b/user/mods/fika-server/cache/playerRelations.json index cc5e3f7..765db47 100644 --- a/user/mods/fika-server/cache/playerRelations.json +++ b/user/mods/fika-server/cache/playerRelations.json @@ -1 +1 @@ -{"6879deb69450db5e1800223e":{"Friends":[],"Ignore":[]}} \ No newline at end of file +{"6879f6c10002c57d66dfeb39":{"Friends":[],"Ignore":[]},"687a982bf3ffa8709400227e":{"Friends":[],"Ignore":[]}} \ No newline at end of file diff --git a/user/mods/fika-server/src/Fika.js b/user/mods/fika-server/src/Fika.js new file mode 100644 index 0000000..56543b0 --- /dev/null +++ b/user/mods/fika-server/src/Fika.js @@ -0,0 +1,204 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Fika = void 0; +const node_path_1 = __importDefault(require("node:path")); +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const ImageRouter_1 = require("C:/snapshot/project/obj/routers/ImageRouter"); +const DatabaseServer_1 = require("C:/snapshot/project/obj/servers/DatabaseServer"); +const ImporterUtil_1 = require("C:/snapshot/project/obj/utils/ImporterUtil"); +const node_fs_1 = require("node:fs"); +const ConfigTypes_1 = require("C:/snapshot/project/obj/models/enums/ConfigTypes"); +const ConfigServer_1 = require("C:/snapshot/project/obj/servers/ConfigServer"); +const FileSystem_1 = require("C:/snapshot/project/obj/utils/FileSystem"); +const JsonUtil_1 = require("C:/snapshot/project/obj/utils/JsonUtil"); +const Overrider_1 = require("./overrides/Overrider"); +const FikaClientService_1 = require("./services/FikaClientService"); +const FikaPlayerRelationsCacheService_1 = require("./services/cache/FikaPlayerRelationsCacheService"); +const FikaHeadlessProfileService_1 = require("./services/headless/FikaHeadlessProfileService"); +const FikaConfig_1 = require("./utils/FikaConfig"); +const FikaServerTools_1 = require("./utils/FikaServerTools"); +let Fika = class Fika { + logger; + databaseServer; + configServer; + overrider; + fikaServerTools; + fikaConfig; + fikaClientService; + fikaHeadlessProfileService; + imageRouter; + importerUtil; + jsonUtil; + fileSystem; + fikaPlayerRelationCacheServce; + modPath; + natPunchServerConfig; + headlessConfig; + backgroundConfig; + constructor(logger, databaseServer, configServer, overrider, fikaServerTools, fikaConfig, fikaClientService, fikaHeadlessProfileService, imageRouter, importerUtil, jsonUtil, fileSystem, fikaPlayerRelationCacheServce) { + this.logger = logger; + this.databaseServer = databaseServer; + this.configServer = configServer; + this.overrider = overrider; + this.fikaServerTools = fikaServerTools; + this.fikaConfig = fikaConfig; + this.fikaClientService = fikaClientService; + this.fikaHeadlessProfileService = fikaHeadlessProfileService; + this.imageRouter = imageRouter; + this.importerUtil = importerUtil; + this.jsonUtil = jsonUtil; + this.fileSystem = fileSystem; + this.fikaPlayerRelationCacheServce = fikaPlayerRelationCacheServce; + this.modPath = fikaConfig.getModPath(); + } + async preSptLoad(container) { + await this.fikaConfig.preInit(); + this.natPunchServerConfig = this.fikaConfig.getConfig().natPunchServer; + this.headlessConfig = this.fikaConfig.getConfig().headless; + this.backgroundConfig = this.fikaConfig.getConfig().background; + await this.fikaClientService.preInit(); + await this.overrider.override(container); + } + async postSptLoad(_container) { + if (this.natPunchServerConfig.enable) { + this.fikaServerTools.startService("NatPunchServer"); + } + if (this.headlessConfig.profiles.amount > 0) { + await this.fikaHeadlessProfileService.init(); + } + await this.addFikaClientLocales(); + this.blacklistSpecialProfiles(); + this.fikaPlayerRelationCacheServce.postInit(); + if (this.backgroundConfig.enable) { + const image = this.backgroundConfig.easteregg ? "assets/images/launcher/bg-senko.png" : "assets/images/launcher/bg.png"; + this.imageRouter.addRoute("/files/launcher/bg", node_path_1.default.join(this.modPath, image)); + } + this.watchFikaConfig(); + } + async addFikaClientLocales() { + const database = this.databaseServer.getTables(); + const databasePath = node_path_1.default.join(this.fikaConfig.getModPath(), "assets/database/").replace(/\\/g, "/"); + const locales = await this.importerUtil.loadAsync(`${databasePath}locales/`, databasePath); + for (const folderName in locales) { + if (folderName === "global") { + for (const localeKey in locales.global) { + const localeData = locales.global[localeKey]; + database.locales.global[localeKey] = { ...database.locales.global[localeKey], ...localeData }; + } + } + } + } + async blacklistSpecialProfiles() { + const coreConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.CORE); + const profileBlacklist = coreConfig.features.createNewProfileTypesBlacklist; + if (!this.fikaConfig.getConfig().server.showDevProfile) { + profileBlacklist.push("SPT Developer"); + } + if (!this.fikaConfig.getConfig().server.showNonStandardProfile) { + for (const id of ["Tournament", "SPT Easy start", "SPT Zero to hero"]) { + profileBlacklist.push(id); + } + } + } + watchFikaConfig() { + const configPath = node_path_1.default.join(this.modPath, "assets/configs/fika.jsonc"); + let fileChangeTimeout = null; + // At the moment this doesn't reload: + // Nat punch server (Requires additional setup) + // SPT Http configuration (Can't be changed once initialized) + // Backgrounds on the launcher (cached?) + // Any client options if a client is already in-game, client will have to restart his game. + (0, node_fs_1.watch)(configPath, async (eventType, _filename) => { + if (eventType === "change") { + if (fileChangeTimeout) { + clearTimeout(fileChangeTimeout); + } + // Timeout is required here, sometimes Windows will send three events if a file has changed. + fileChangeTimeout = setTimeout(async () => { + let config = this.jsonUtil.deserializeJsonC(await this.fileSystem.read(configPath)); + if (!config) { + this.logger.error("[Fika Server] could not hot-reload configuration, is the syntax correct?"); + return; + } + const oldHeadlessAmount = this.fikaConfig.getConfig().headless.profiles.amount; + if (this.fikaConfig.updateFikaConfig(config)) { + // Re-initialize new headless profiles if the number changed. + if (this.fikaConfig.getConfig().headless.profiles.amount > oldHeadlessAmount) { + await this.fikaHeadlessProfileService.init(); + } + // Re-initialize required & optional mods + await this.fikaClientService.preInit(); + // Re-initialize background + if (this.backgroundConfig.enable) { + const image = this.backgroundConfig.easteregg ? "assets/images/launcher/bg-senko.png" : "assets/images/launcher/bg.png"; + this.imageRouter.addRoute("/files/launcher/bg", node_path_1.default.join(this.modPath, image)); + } + // Re-initialize profile preset blacklist + const coreConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.CORE); + // Re-initialize showing of dev profile + if (this.fikaConfig.getConfig().server.showDevProfile) { + // Remove the blacklisted developer template + coreConfig.features.createNewProfileTypesBlacklist = coreConfig.features.createNewProfileTypesBlacklist.filter((item) => item !== "SPT Developer"); + } + else { + // Re-add the blacklisted developer template + if (!coreConfig.features.createNewProfileTypesBlacklist.includes("SPT Developer")) { + coreConfig.features.createNewProfileTypesBlacklist.push("SPT Developer"); + } + } + if (this.fikaConfig.getConfig().server.showNonStandardProfile) { + for (const id of ["Tournament", "SPT Easy start", "SPT Zero to hero"]) { + // Remove each blacklisted template + coreConfig.features.createNewProfileTypesBlacklist = coreConfig.features.createNewProfileTypesBlacklist.filter((item) => item !== id); + } + } + else { + for (const id of ["Tournament", "SPT Easy start", "SPT Zero to hero"]) { + // Re-add the blacklisted templates + if (!coreConfig.features.createNewProfileTypesBlacklist.includes(id)) { + coreConfig.features.createNewProfileTypesBlacklist.push(id); + } + } + } + this.logger.info("[Fika Server] Configuration hot-reloaded successfully"); + } + }, 750); + } + }); + } +}; +exports.Fika = Fika; +exports.Fika = Fika = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("WinstonLogger")), + __param(1, (0, tsyringe_1.inject)("DatabaseServer")), + __param(2, (0, tsyringe_1.inject)("ConfigServer")), + __param(3, (0, tsyringe_1.inject)("Overrider")), + __param(4, (0, tsyringe_1.inject)("FikaServerTools")), + __param(5, (0, tsyringe_1.inject)("FikaConfig")), + __param(6, (0, tsyringe_1.inject)("FikaClientService")), + __param(7, (0, tsyringe_1.inject)("FikaHeadlessProfileService")), + __param(8, (0, tsyringe_1.inject)("ImageRouter")), + __param(9, (0, tsyringe_1.inject)("ImporterUtil")), + __param(10, (0, tsyringe_1.inject)("JsonUtil")), + __param(11, (0, tsyringe_1.inject)("FileSystem")), + __param(12, (0, tsyringe_1.inject)("FikaPlayerRelationsCacheService")), + __metadata("design:paramtypes", [Object, typeof (_a = typeof DatabaseServer_1.DatabaseServer !== "undefined" && DatabaseServer_1.DatabaseServer) === "function" ? _a : Object, typeof (_b = typeof ConfigServer_1.ConfigServer !== "undefined" && ConfigServer_1.ConfigServer) === "function" ? _b : Object, typeof (_c = typeof Overrider_1.Overrider !== "undefined" && Overrider_1.Overrider) === "function" ? _c : Object, typeof (_d = typeof FikaServerTools_1.FikaServerTools !== "undefined" && FikaServerTools_1.FikaServerTools) === "function" ? _d : Object, typeof (_e = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _e : Object, typeof (_f = typeof FikaClientService_1.FikaClientService !== "undefined" && FikaClientService_1.FikaClientService) === "function" ? _f : Object, typeof (_g = typeof FikaHeadlessProfileService_1.FikaHeadlessProfileService !== "undefined" && FikaHeadlessProfileService_1.FikaHeadlessProfileService) === "function" ? _g : Object, typeof (_h = typeof ImageRouter_1.ImageRouter !== "undefined" && ImageRouter_1.ImageRouter) === "function" ? _h : Object, typeof (_j = typeof ImporterUtil_1.ImporterUtil !== "undefined" && ImporterUtil_1.ImporterUtil) === "function" ? _j : Object, typeof (_k = typeof JsonUtil_1.JsonUtil !== "undefined" && JsonUtil_1.JsonUtil) === "function" ? _k : Object, typeof (_l = typeof FileSystem_1.FileSystem !== "undefined" && FileSystem_1.FileSystem) === "function" ? _l : Object, typeof (_m = typeof FikaPlayerRelationsCacheService_1.FikaPlayerRelationsCacheService !== "undefined" && FikaPlayerRelationsCacheService_1.FikaPlayerRelationsCacheService) === "function" ? _m : Object]) +], Fika); +//# sourceMappingURL=Fika.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/Fika.js.map b/user/mods/fika-server/src/Fika.js.map index b9f2e4d..fc2d1db 100644 --- a/user/mods/fika-server/src/Fika.js.map +++ b/user/mods/fika-server/src/Fika.js.map @@ -6,5 +6,5 @@ "Fika.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js b/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js new file mode 100644 index 0000000..3d3672f --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js @@ -0,0 +1,56 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaClientCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaClientController_1 = require("../controllers/FikaClientController"); +let FikaClientCallbacks = class FikaClientCallbacks { + httpResponseUtil; + fikaClientController; + constructor(httpResponseUtil, fikaClientController) { + this.httpResponseUtil = httpResponseUtil; + this.fikaClientController = fikaClientController; + // empty + } + /** Handle /fika/client/config */ + handleClientConfig(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaClientController.handleClientConfig()); + } + /** Handle /fika/natpunchserver/config */ + handleNatPunchServerConfig(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaClientController.handleNatPunchServerConfig()); + } + /** Handle /fika/client/check/mods */ + handleCheckMods(_url, info, sessionID) { + return this.httpResponseUtil.noBody(this.fikaClientController.handleCheckMods(info, sessionID)); + } + /** Handle /fika/profile/download */ + handleProfileDownload(_url, _info, sessionID) { + return this.httpResponseUtil.noBody(this.fikaClientController.handleProfileDownload(sessionID)); + } + /** Handle /fika/client/check/version */ + handleVersionCheck(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaClientController.handleVersionCheck()); + } +}; +exports.FikaClientCallbacks = FikaClientCallbacks; +exports.FikaClientCallbacks = FikaClientCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaClientController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaClientController_1.FikaClientController !== "undefined" && FikaClientController_1.FikaClientController) === "function" ? _b : Object]) +], FikaClientCallbacks); +//# sourceMappingURL=FikaClientCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js.map index 3601509..253a858 100644 --- a/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaClientCallbacks.js.map @@ -6,5 +6,5 @@ "FikaClientCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,mFAAgF;AAEhF,8EAA2E;AAKpE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAEc;IACI;IAF9C,YAC0C,gBAAkC,EAC9B,oBAA0C;QAD9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC9B,yBAAoB,GAApB,oBAAoB,CAAsB;QAEpF,QAAQ;IACZ,CAAC;IAED,iCAAiC;IAC1B,kBAAkB,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QAC3F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,yCAAyC;IAClC,0BAA0B,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QACnG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,qCAAqC;IAC9B,eAAe,CAAC,IAAY,EAAE,IAA8B,EAAE,SAAiB;QAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,oCAAoC;IAC7B,qBAAqB,CAAC,IAAY,EAAE,KAAU,EAAE,SAAiB;QACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,wCAAwC;IACjC,kBAAkB,CAAC,IAAY,EAAE,KAAU,EAAE,UAAkB;QAClE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxF,CAAC;CACJ,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,sBAAsB,CAAC,CAAA;yDADyB,mCAAgB,oBAAhB,mCAAgB,oDACR,2CAAoB,oBAApB,2CAAoB;GAH/E,mBAAmB,CAgC/B" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,qFAAkF;AAElF,8EAA2E;AAKpE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAEc;IACI;IAF9C,YAC0C,gBAAkC,EAC9B,oBAA0C;QAD9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC9B,yBAAoB,GAApB,oBAAoB,CAAsB;QAEpF,QAAQ;IACZ,CAAC;IAED,iCAAiC;IAC1B,kBAAkB,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QAC3F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,yCAAyC;IAClC,0BAA0B,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QACnG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,qCAAqC;IAC9B,eAAe,CAAC,IAAY,EAAE,IAA8B,EAAE,SAAiB;QAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,oCAAoC;IAC7B,qBAAqB,CAAC,IAAY,EAAE,KAAU,EAAE,SAAiB;QACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,wCAAwC;IACjC,kBAAkB,CAAC,IAAY,EAAE,KAAU,EAAE,UAAkB;QAClE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxF,CAAC;CACJ,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,sBAAsB,CAAC,CAAA;yDADyB,mCAAgB,oBAAhB,mCAAgB,oDACR,2CAAoB,oBAApB,2CAAoB;GAH/E,mBAAmB,CAgC/B" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js b/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js new file mode 100644 index 0000000..5dc2760 --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js @@ -0,0 +1,52 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaHeadlessController_1 = require("../controllers/FikaHeadlessController"); +let FikaHeadlessCallbacks = class FikaHeadlessCallbacks { + httpResponseUtil; + fikaHeadlessController; + constructor(httpResponseUtil, fikaHeadlessController) { + this.httpResponseUtil = httpResponseUtil; + this.fikaHeadlessController = fikaHeadlessController; + // empty + } + /** Handle /fika/headless/get */ + handleGetHeadlesses(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaHeadlessController.handleGetHeadlesses()); + } + /** Handle /fika/headless/available */ + handleAvailableHeadlesses(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaHeadlessController.handleGetAvailableHeadlesses()); + } + /** Handle /fika/headless/restartafterraidamount */ + handleRestartAfterRaidAmount(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaHeadlessController.handleRestartAfterRaidAmount()); + } + /** Handle /fika/headless/questtemplates */ + handleGetAllQuestTemplates(_url, _info, _sessionID) { + return this.httpResponseUtil.getBody(this.fikaHeadlessController.handleGetAllQuestTemplates()); + } +}; +exports.FikaHeadlessCallbacks = FikaHeadlessCallbacks; +exports.FikaHeadlessCallbacks = FikaHeadlessCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaHeadlessController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaHeadlessController_1.FikaHeadlessController !== "undefined" && FikaHeadlessController_1.FikaHeadlessController) === "function" ? _b : Object]) +], FikaHeadlessCallbacks); +//# sourceMappingURL=FikaHeadlessCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js.map index 176f50d..243d0ea 100644 --- a/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaHeadlessCallbacks.js.map @@ -6,5 +6,5 @@ "FikaHeadlessCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,mFAAgF;AAIhF,kFAA+E;AAIxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACM;IAFhD,YAC0C,gBAAkC,EAC5B,sBAA8C;QADpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC5B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1F,QAAQ;IACZ,CAAC;IAED,gCAAgC;IACzB,mBAAmB,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QAC5F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,sCAAsC;IAC/B,yBAAyB,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QAClG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,mDAAmD;IAC5C,4BAA4B,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QACrG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,2CAA2C;IACpC,0BAA0B,CAAC,IAAY,EAAE,KAAU,EAAE,UAAkB;QAC1E,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACnG,CAAC;CACJ,CAAA;AA3BY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDADuB,mCAAgB,oBAAhB,mCAAgB,oDACJ,+CAAsB,oBAAtB,+CAAsB;GAHrF,qBAAqB,CA2BjC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,qFAAkF;AAIlF,kFAA+E;AAIxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACM;IAFhD,YAC0C,gBAAkC,EAC5B,sBAA8C;QADpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC5B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1F,QAAQ;IACZ,CAAC;IAED,gCAAgC;IACzB,mBAAmB,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QAC5F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,sCAAsC;IAC/B,yBAAyB,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QAClG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,mDAAmD;IAC5C,4BAA4B,CAAC,IAAY,EAAE,KAAmC,EAAE,UAAkB;QACrG,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,2CAA2C;IACpC,0BAA0B,CAAC,IAAY,EAAE,KAAU,EAAE,UAAkB;QAC1E,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACnG,CAAC;CACJ,CAAA;AA3BY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDADuB,mCAAgB,oBAAhB,mCAAgB,oDACJ,+CAAsB,oBAAtB,+CAAsB;GAHrF,qBAAqB,CA2BjC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js b/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js new file mode 100644 index 0000000..a79e6b2 --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js @@ -0,0 +1,40 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaLocationCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaLocationController_1 = require("../controllers/FikaLocationController"); +let FikaLocationCallbacks = class FikaLocationCallbacks { + httpResponseUtil; + fikaLocationController; + constructor(httpResponseUtil, fikaLocationController) { + this.httpResponseUtil = httpResponseUtil; + this.fikaLocationController = fikaLocationController; + // empty + } + /** Handle /fika/location/raids */ + handleGetRaids(_url, info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaLocationController.handleGetRaids(info)); + } +}; +exports.FikaLocationCallbacks = FikaLocationCallbacks; +exports.FikaLocationCallbacks = FikaLocationCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaLocationController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaLocationController_1.FikaLocationController !== "undefined" && FikaLocationController_1.FikaLocationController) === "function" ? _b : Object]) +], FikaLocationCallbacks); +//# sourceMappingURL=FikaLocationCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js.map index 4524767..d499974 100644 --- a/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaLocationCallbacks.js.map @@ -6,5 +6,5 @@ "FikaLocationCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAG7E,mFAAgF;AAEhF,kFAA+E;AAGxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACM;IAFhD,YAC0C,gBAAkC,EAC5B,sBAA8C;QADpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC5B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1F,QAAQ;IACZ,CAAC;IAED,kCAAkC;IAC3B,cAAc,CAAC,IAAY,EAAE,IAAsC,EAAE,UAAkB;QAC1F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;CACJ,CAAA;AAZY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDADuB,mCAAgB,oBAAhB,mCAAgB,oDACJ,+CAAsB,oBAAtB,+CAAsB;GAHrF,qBAAqB,CAYjC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAG/E,qFAAkF;AAElF,kFAA+E;AAGxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACM;IAFhD,YAC0C,gBAAkC,EAC5B,sBAA8C;QADpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC5B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1F,QAAQ;IACZ,CAAC;IAED,kCAAkC;IAC3B,cAAc,CAAC,IAAY,EAAE,IAAsC,EAAE,UAAkB;QAC1F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;CACJ,CAAA;AAZY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDADuB,mCAAgB,oBAAhB,mCAAgB,oDACJ,+CAAsB,oBAAtB,+CAAsB;GAHrF,qBAAqB,CAYjC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js b/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js new file mode 100644 index 0000000..dff0c24 --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js @@ -0,0 +1,56 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaNotificationCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const EEFTNotificationIconType_1 = require("../models/enums/EEFTNotificationIconType"); +const EFikaNotifications_1 = require("../models/enums/EFikaNotifications"); +const FikaNotificationWebSocket_1 = require("../websockets/FikaNotificationWebSocket"); +let FikaNotificationCallbacks = class FikaNotificationCallbacks { + httpResponseUtil; + fikaNotificationWebSocket; + constructor(httpResponseUtil, fikaNotificationWebSocket) { + this.httpResponseUtil = httpResponseUtil; + this.fikaNotificationWebSocket = fikaNotificationWebSocket; + // empty + } + /** Handle /fika/notification/push */ + async handlePushNotification(_url, info, _sessionID) { + // Yes, technically this needs a controller to fit into this format. But I cant be bothered setting up a whole controller for a few checks. + if (!info.notification) { + return this.httpResponseUtil.nullResponse(); + } + info.type = EFikaNotifications_1.EFikaNotifications.PushNotification; + // Set default notification icon if data for this has not been correctly given. + if (!info.notificationIcon || typeof info.notificationIcon != "number") { + info.notificationIcon = EEFTNotificationIconType_1.EEFTNotificationIconType.Default; + } + //Do some exception handling for the client, icon 6 seems to cause an exception as well as going out of the enum's bounds. + if (info.notificationIcon == 6 || info.notificationIcon > 14) { + info.notificationIcon = EEFTNotificationIconType_1.EEFTNotificationIconType.Default; + } + await this.fikaNotificationWebSocket.broadcast(info); + return this.httpResponseUtil.nullResponse(); + } +}; +exports.FikaNotificationCallbacks = FikaNotificationCallbacks; +exports.FikaNotificationCallbacks = FikaNotificationCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaNotificationWebSocket")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaNotificationWebSocket_1.FikaNotificationWebSocket !== "undefined" && FikaNotificationWebSocket_1.FikaNotificationWebSocket) === "function" ? _b : Object]) +], FikaNotificationCallbacks); +//# sourceMappingURL=FikaNotificationCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js.map index c893963..5c21264 100644 --- a/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaNotificationCallbacks.js.map @@ -6,5 +6,5 @@ "FikaNotificationCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,mFAAgF;AAGhF,uFAAoF;AACpF,2EAAwE;AAExE,uFAAoF;AAG7E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEQ;IACS;IAFnD,YAC0C,gBAAkC,EACzB,yBAAoD;QAD7D,qBAAgB,GAAhB,gBAAgB,CAAkB;QACzB,8BAAyB,GAAzB,yBAAyB,CAA2B;QAEnG,QAAQ;IACZ,CAAC;IAED,qCAAqC;IAC9B,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,IAAuB,EAAE,UAAkB;QACzF,2IAA2I;QAC3I,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,uCAAkB,CAAC,gBAAgB,CAAC;QAEhD,+EAA+E;QAC/E,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,IAAI,CAAC,gBAAgB,IAAI,QAAQ,EAAE,CAAC;YACrE,IAAI,CAAC,gBAAgB,GAAG,mDAAwB,CAAC,OAAO,CAAC;QAC7D,CAAC;QAED,0HAA0H;QAC1H,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,gBAAgB,GAAG,mDAAwB,CAAC,OAAO,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AA/BY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,2BAA2B,CAAC,CAAA;yDADoB,mCAAgB,oBAAhB,mCAAgB,oDACE,qDAAyB,oBAAzB,qDAAyB;GAH9F,yBAAyB,CA+BrC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,qFAAkF;AAGlF,uFAAoF;AACpF,2EAAwE;AAExE,uFAAoF;AAG7E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEQ;IACS;IAFnD,YAC0C,gBAAkC,EACzB,yBAAoD;QAD7D,qBAAgB,GAAhB,gBAAgB,CAAkB;QACzB,8BAAyB,GAAzB,yBAAyB,CAA2B;QAEnG,QAAQ;IACZ,CAAC;IAED,qCAAqC;IAC9B,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,IAAuB,EAAE,UAAkB;QACzF,2IAA2I;QAC3I,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,uCAAkB,CAAC,gBAAgB,CAAC;QAEhD,+EAA+E;QAC/E,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,IAAI,CAAC,gBAAgB,IAAI,QAAQ,EAAE,CAAC;YACrE,IAAI,CAAC,gBAAgB,GAAG,mDAAwB,CAAC,OAAO,CAAC;QAC7D,CAAC;QAED,0HAA0H;QAC1H,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,gBAAgB,GAAG,mDAAwB,CAAC,OAAO,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AA/BY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,2BAA2B,CAAC,CAAA;yDADoB,mCAAgB,oBAAhB,mCAAgB,oDACE,qDAAyB,oBAAzB,qDAAyB;GAH9F,yBAAyB,CA+BrC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js b/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js new file mode 100644 index 0000000..713e772 --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js @@ -0,0 +1,59 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaPresenceCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const EFikaPlayerPresences_1 = require("../models/enums/EFikaPlayerPresences"); +const FikaPresenceService_1 = require("../services/FikaPresenceService"); +let FikaPresenceCallbacks = class FikaPresenceCallbacks { + httpResponseUtil; + fikaPresenceService; + constructor(httpResponseUtil, fikaPresenceService) { + this.httpResponseUtil = httpResponseUtil; + this.fikaPresenceService = fikaPresenceService; + // empty + } + /** Handle /fika/presence/get */ + handleGetPresence(_url, _info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaPresenceService.getAllPlayersPresence()); + } + /** Handle /fika/presence/set */ + handleSetPresence(_url, data, sessionID) { + data.activity = this.setActivityValue(data.activity); + this.fikaPresenceService.updatePlayerPresence(sessionID, data); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/presence/setget */ + handleSetGetPresence(_url, data, sessionID) { + data.activity = this.setActivityValue(data.activity); + this.fikaPresenceService.updatePlayerPresence(sessionID, data); + return this.httpResponseUtil.noBody(this.fikaPresenceService.getAllPlayersPresence()); + } + setActivityValue(presence) { + if (Object.keys(EFikaPlayerPresences_1.EFikaPlayerPresences).includes(presence.toString())) { + presence = EFikaPlayerPresences_1.EFikaPlayerPresences[presence.toString()]; + } + return presence; + } +}; +exports.FikaPresenceCallbacks = FikaPresenceCallbacks; +exports.FikaPresenceCallbacks = FikaPresenceCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaPresenceService")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaPresenceService_1.FikaPresenceService !== "undefined" && FikaPresenceService_1.FikaPresenceService) === "function" ? _b : Object]) +], FikaPresenceCallbacks); +//# sourceMappingURL=FikaPresenceCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js.map index 4a6f36f..00a2187 100644 --- a/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaPresenceCallbacks.js.map @@ -6,5 +6,5 @@ "FikaPresenceCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,mFAAgF;AAGhF,+EAA4E;AAG5E,yEAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACG;IAF7C,YAC0C,gBAAkC,EAC/B,mBAAwC;QAD3C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC/B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEjF,QAAQ;IACZ,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAAC,IAAY,EAAE,KAAU,EAAE,UAAkB;QACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAAC,IAAY,EAAE,IAAsB,EAAE,SAAiB;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,mCAAmC;IAC5B,oBAAoB,CAAC,IAAY,EAAE,IAAsB,EAAE,SAAiB;QAC/E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1F,CAAC;IAES,gBAAgB,CAAC,QAA8B;QACrD,IAAI,MAAM,CAAC,IAAI,CAAC,2CAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAClE,QAAQ,GAAG,2CAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAA;AAtCY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAD0B,mCAAgB,oBAAhB,mCAAgB,oDACV,yCAAmB,oBAAnB,yCAAmB;GAH5E,qBAAqB,CAsCjC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,qFAAkF;AAGlF,+EAA4E;AAG5E,yEAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACG;IAF7C,YAC0C,gBAAkC,EAC/B,mBAAwC;QAD3C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC/B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEjF,QAAQ;IACZ,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAAC,IAAY,EAAE,KAAU,EAAE,UAAkB;QACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAAC,IAAY,EAAE,IAAsB,EAAE,SAAiB;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,mCAAmC;IAC5B,oBAAoB,CAAC,IAAY,EAAE,IAAsB,EAAE,SAAiB;QAC/E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC1F,CAAC;IAES,gBAAgB,CAAC,QAA8B;QACrD,IAAI,MAAM,CAAC,IAAI,CAAC,2CAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAClE,QAAQ,GAAG,2CAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAA;AAtCY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAD0B,mCAAgB,oBAAhB,mCAAgB,oDACV,yCAAmB,oBAAnB,yCAAmB;GAH5E,qBAAqB,CAsCjC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js b/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js new file mode 100644 index 0000000..ad5ef14 --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js @@ -0,0 +1,66 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaRaidCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaRaidController_1 = require("../controllers/FikaRaidController"); +let FikaRaidCallbacks = class FikaRaidCallbacks { + httpResponseUtil; + fikaRaidController; + constructor(httpResponseUtil, fikaRaidController) { + this.httpResponseUtil = httpResponseUtil; + this.fikaRaidController = fikaRaidController; + // empty + } + /** Handle /fika/raid/create */ + handleRaidCreate(_url, info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaRaidController.handleRaidCreate(info)); + } + /** Handle /fika/raid/join */ + handleRaidJoin(_url, info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaRaidController.handleRaidJoin(info)); + } + /** Handle /fika/raid/leave */ + handleRaidLeave(_url, info, _sessionID) { + this.fikaRaidController.handleRaidLeave(info); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/raid/gethost */ + handleRaidGetHost(_url, info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaRaidController.handleRaidGetHost(info)); + } + /** Handle /fika/raid/getsettings */ + handleRaidGetSettings(_url, info, _sessionID) { + return this.httpResponseUtil.noBody(this.fikaRaidController.handleRaidGetSettings(info)); + } + /** Handle /fika/raid/headless/start */ + async handleRaidStartHeadless(_url, info, sessionID) { + return this.httpResponseUtil.noBody(await this.fikaRaidController.handleRaidStartHeadless(sessionID, info)); + } + /** Handle /fika/raid/registerPlayer */ + handleRaidRegisterPlayer(_url, info, sessionID) { + this.fikaRaidController.handleRaidRegisterPlayer(sessionID, info); + return this.httpResponseUtil.nullResponse(); + } +}; +exports.FikaRaidCallbacks = FikaRaidCallbacks; +exports.FikaRaidCallbacks = FikaRaidCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaRaidController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaRaidController_1.FikaRaidController !== "undefined" && FikaRaidController_1.FikaRaidController) === "function" ? _b : Object]) +], FikaRaidCallbacks); +//# sourceMappingURL=FikaRaidCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js.map index d1b3414..c22e0aa 100644 --- a/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaRaidCallbacks.js.map @@ -6,5 +6,5 @@ "FikaRaidCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAI7E,mFAAgF;AAEhF,0EAAuE;AAQhE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEgB;IACE;IAF5C,YAC0C,gBAAkC,EAChC,kBAAsC;QADxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAE9E,QAAQ;IACZ,CAAC;IAED,+BAA+B;IACxB,gBAAgB,CAAC,IAAY,EAAE,IAAgC,EAAE,UAAkB;QACtF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,6BAA6B;IACtB,cAAc,CAAC,IAAY,EAAE,IAA8B,EAAE,UAAkB;QAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,8BAA8B;IACvB,eAAe,CAAC,IAAY,EAAE,IAA+B,EAAE,UAAkB;QACpF,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QACzF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,oCAAoC;IAC7B,qBAAqB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QAC7F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,uCAAuC;IAChC,KAAK,CAAC,uBAAuB,CAAC,IAAY,EAAE,IAA2B,EAAE,SAAiB;QAC7F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,uCAAuC;IAChC,wBAAwB,CAAC,IAAY,EAAE,IAAgC,EAAE,SAAiB;QAC7F,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AA9CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;yDAD2B,mCAAgB,oBAAhB,mCAAgB,oDACZ,uCAAkB,oBAAlB,uCAAkB;GAHzE,iBAAiB,CA8C7B" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAI/E,qFAAkF;AAElF,0EAAuE;AAQhE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEgB;IACE;IAF5C,YAC0C,gBAAkC,EAChC,kBAAsC;QADxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAE9E,QAAQ;IACZ,CAAC;IAED,+BAA+B;IACxB,gBAAgB,CAAC,IAAY,EAAE,IAAgC,EAAE,UAAkB;QACtF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,6BAA6B;IACtB,cAAc,CAAC,IAAY,EAAE,IAA8B,EAAE,UAAkB;QAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,8BAA8B;IACvB,eAAe,CAAC,IAAY,EAAE,IAA+B,EAAE,UAAkB;QACpF,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QACzF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,oCAAoC;IAC7B,qBAAqB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QAC7F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,uCAAuC;IAChC,KAAK,CAAC,uBAAuB,CAAC,IAAY,EAAE,IAA2B,EAAE,SAAiB;QAC7F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,uCAAuC;IAChC,wBAAwB,CAAC,IAAY,EAAE,IAAgC,EAAE,SAAiB;QAC7F,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AA9CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;yDAD2B,mCAAgB,oBAAhB,mCAAgB,oDACZ,uCAAkB,oBAAlB,uCAAkB;GAHzE,iBAAiB,CA8C7B" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js b/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js new file mode 100644 index 0000000..bc9ca3f --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js @@ -0,0 +1,43 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaSendItemCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaSendItemController_1 = require("../controllers/FikaSendItemController"); +let FikaSendItemCallbacks = class FikaSendItemCallbacks { + httpResponseUtil; + fikaSendItemController; + constructor(httpResponseUtil, fikaSendItemController) { + this.httpResponseUtil = httpResponseUtil; + this.fikaSendItemController = fikaSendItemController; + // empty + } + async handleSendItem(pmcData, body, sessionID) { + return await this.fikaSendItemController.sendItem(pmcData, body, sessionID); + } + /** Handle /fika/senditem/availablereceivers */ + handleAvailableReceivers(_url, _info, sessionID) { + return this.httpResponseUtil.noBody(this.fikaSendItemController.handleAvailableReceivers(sessionID)); + } +}; +exports.FikaSendItemCallbacks = FikaSendItemCallbacks; +exports.FikaSendItemCallbacks = FikaSendItemCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaSendItemController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaSendItemController_1.FikaSendItemController !== "undefined" && FikaSendItemController_1.FikaSendItemController) === "function" ? _b : Object]) +], FikaSendItemCallbacks); +//# sourceMappingURL=FikaSendItemCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js.map index fd8c6e0..4bda887 100644 --- a/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaSendItemCallbacks.js.map @@ -6,5 +6,5 @@ "FikaSendItemCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAI7E,mFAAgF;AAEhF,kFAA+E;AAKxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACM;IAFhD,YAC0C,gBAAkC,EAC5B,sBAA8C;QADpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC5B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1F,QAAQ;IACZ,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAAiB,EAAE,IAA8B,EAAE,SAAiB;QAC5F,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAED,+CAA+C;IACxC,wBAAwB,CAAC,IAAY,EAAE,KAAiD,EAAE,SAAiB;QAC9G,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;IACzG,CAAC;CACJ,CAAA;AAhBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDADuB,mCAAgB,oBAAhB,mCAAgB,oDACJ,+CAAsB,oBAAtB,+CAAsB;GAHrF,qBAAqB,CAgBjC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAI/E,qFAAkF;AAElF,kFAA+E;AAKxE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEY;IACM;IAFhD,YAC0C,gBAAkC,EAC5B,sBAA8C;QADpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC5B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1F,QAAQ;IACZ,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAAiB,EAAE,IAA8B,EAAE,SAAiB;QAC5F,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAED,+CAA+C;IACxC,wBAAwB,CAAC,IAAY,EAAE,KAAiD,EAAE,SAAiB;QAC9G,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;IACzG,CAAC;CACJ,CAAA;AAhBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDADuB,mCAAgB,oBAAhB,mCAAgB,oDACJ,+CAAsB,oBAAtB,+CAAsB;GAHrF,qBAAqB,CAgBjC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js b/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js new file mode 100644 index 0000000..ffb0c68 --- /dev/null +++ b/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js @@ -0,0 +1,71 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaUpdateCallbacks = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaUpdateController_1 = require("../controllers/FikaUpdateController"); +const EFikaMatchStatus_1 = require("../models/enums/EFikaMatchStatus"); +let FikaUpdateCallbacks = class FikaUpdateCallbacks { + httpResponseUtil; + fikaUpdateController; + constructor(httpResponseUtil, fikaUpdateController) { + this.httpResponseUtil = httpResponseUtil; + this.fikaUpdateController = fikaUpdateController; + // empty + } + /** Handle /fika/update/ping */ + handlePing(_url, info, _sessionID) { + this.fikaUpdateController.handlePing(info); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/update/playerspawn */ + handlePlayerspawn(_url, info, _sessionID) { + this.fikaUpdateController.handlePlayerspawn(info); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/update/sethost */ + handleSethost(_url, info, _sessionID) { + this.fikaUpdateController.handleSethost(info); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/update/setstatus */ + async handleSetStatus(_url, info, _sessionID) { + // Handle conversion of Enum so it can be properly used. + if (Object.keys(EFikaMatchStatus_1.EFikaMatchStatus).includes(info.status.toString())) { + info.status = EFikaMatchStatus_1.EFikaMatchStatus[info.status.toString()]; + } + await this.fikaUpdateController.handleSetStatus(info); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/update/addplayer */ + handleRaidAddPlayer(_url, info, _sessionID) { + this.fikaUpdateController.handleRaidAddPlayer(info); + return this.httpResponseUtil.nullResponse(); + } + /** Handle /fika/update/playerdied */ + handlePlayerDied(_url, info, _sessionID) { + this.fikaUpdateController.handleRaidPlayerDied(info); + return this.httpResponseUtil.nullResponse(); + } +}; +exports.FikaUpdateCallbacks = FikaUpdateCallbacks; +exports.FikaUpdateCallbacks = FikaUpdateCallbacks = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaUpdateController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaUpdateController_1.FikaUpdateController !== "undefined" && FikaUpdateController_1.FikaUpdateController) === "function" ? _b : Object]) +], FikaUpdateCallbacks); +//# sourceMappingURL=FikaUpdateCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js.map b/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js.map index 108e477..5d714e9 100644 --- a/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js.map +++ b/user/mods/fika-server/src/callbacks/FikaUpdateCallbacks.js.map @@ -6,5 +6,5 @@ "FikaUpdateCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAG7E,mFAAgF;AAEhF,8EAA2E;AAC3E,uEAAoE;AAQ7D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAEc;IACI;IAF9C,YAC0C,gBAAkC,EAC9B,oBAA0C;QAD9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC9B,yBAAoB,GAApB,oBAAoB,CAAsB;QAEpF,QAAQ;IACZ,CAAC;IAED,+BAA+B;IACxB,UAAU,CAAC,IAAY,EAAE,IAAgC,EAAE,UAAkB;QAChF,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,sCAAsC;IAC/B,iBAAiB,CAAC,IAAY,EAAE,IAAuC,EAAE,UAAkB;QAC9F,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,kCAAkC;IAC3B,aAAa,CAAC,IAAY,EAAE,IAAmC,EAAE,UAAkB;QACtF,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IAC7B,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAqC,EAAE,UAAkB;QAChG,wDAAwD;QACxD,IAAI,MAAM,CAAC,IAAI,CAAC,mCAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,GAAG,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IAC7B,mBAAmB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QAC3F,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,qCAAqC;IAC9B,gBAAgB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QACxF,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AAtDY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,sBAAsB,CAAC,CAAA;yDADyB,mCAAgB,oBAAhB,mCAAgB,oDACR,2CAAoB,oBAApB,2CAAoB;GAH/E,mBAAmB,CAsD/B" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAG/E,qFAAkF;AAElF,8EAA2E;AAC3E,uEAAoE;AAQ7D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAEc;IACI;IAF9C,YAC0C,gBAAkC,EAC9B,oBAA0C;QAD9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC9B,yBAAoB,GAApB,oBAAoB,CAAsB;QAEpF,QAAQ;IACZ,CAAC;IAED,+BAA+B;IACxB,UAAU,CAAC,IAAY,EAAE,IAAgC,EAAE,UAAkB;QAChF,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,sCAAsC;IAC/B,iBAAiB,CAAC,IAAY,EAAE,IAAuC,EAAE,UAAkB;QAC9F,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,kCAAkC;IAC3B,aAAa,CAAC,IAAY,EAAE,IAAmC,EAAE,UAAkB;QACtF,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IAC7B,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAqC,EAAE,UAAkB;QAChG,wDAAwD;QACxD,IAAI,MAAM,CAAC,IAAI,CAAC,mCAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,GAAG,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,oCAAoC;IAC7B,mBAAmB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QAC3F,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,qCAAqC;IAC9B,gBAAgB,CAAC,IAAY,EAAE,IAAkC,EAAE,UAAkB;QACxF,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AAtDY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,sBAAsB,CAAC,CAAA;yDADyB,mCAAgB,oBAAhB,mCAAgB,oDACR,2CAAoB,oBAApB,2CAAoB;GAH/E,mBAAmB,CAsD/B" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaAchievementController.js b/user/mods/fika-server/src/controllers/FikaAchievementController.js new file mode 100644 index 0000000..80c6f06 --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaAchievementController.js @@ -0,0 +1,59 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaAchievementController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const DatabaseService_1 = require("C:/snapshot/project/obj/services/DatabaseService"); +let FikaAchievementController = class FikaAchievementController { + saveServer; + databaseService; + constructor(saveServer, databaseService) { + this.saveServer = saveServer; + this.databaseService = databaseService; + // empty + } + getAchievementStatistics(_sessionID) { + const achievements = this.databaseService.getAchievements(); + const stats = {}; + const profiles = Object.values(this.saveServer.getProfiles()); + for (const achievement of achievements) { + let percentage = 0; + for (const profile of profiles) { + if (profile.info?.password === "fika-headless") { + continue; + } + if (!profile.characters?.pmc?.Achievements) { + continue; + } + if (!(achievement.id in profile.characters.pmc.Achievements)) { + continue; + } + percentage++; + } + percentage = (percentage / profiles.length) * 100; + stats[achievement.id] = percentage; + } + return { elements: stats }; + } +}; +exports.FikaAchievementController = FikaAchievementController; +exports.FikaAchievementController = FikaAchievementController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("SaveServer")), + __param(1, (0, tsyringe_1.inject)("DatabaseService")), + __metadata("design:paramtypes", [typeof (_a = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _a : Object, typeof (_b = typeof DatabaseService_1.DatabaseService !== "undefined" && DatabaseService_1.DatabaseService) === "function" ? _b : Object]) +], FikaAchievementController); +//# sourceMappingURL=FikaAchievementController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaAchievementController.js.map b/user/mods/fika-server/src/controllers/FikaAchievementController.js.map index a4fb2e7..b1c0104 100644 --- a/user/mods/fika-server/src/controllers/FikaAchievementController.js.map +++ b/user/mods/fika-server/src/controllers/FikaAchievementController.js.map @@ -6,5 +6,5 @@ "FikaAchievementController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAG7E,yEAAsE;AACtE,oFAAiF;AAG1E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEE;IACK;IAFzC,YACoC,UAAsB,EACjB,eAAgC;QADrC,eAAU,GAAV,UAAU,CAAY;QACjB,oBAAe,GAAf,eAAe,CAAiB;QAErE,QAAQ;IACZ,CAAC;IACM,wBAAwB,CAAC,UAAkB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACrC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAC7C,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;oBACzC,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3D,SAAS;gBACb,CAAC;gBAED,UAAU,EAAE,CAAC;YACjB,CAAC;YAED,UAAU,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YAClD,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;CACJ,CAAA;AArCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;IACpB,WAAA,IAAA,iBAAM,EAAC,iBAAiB,CAAC,CAAA;yDADkB,uBAAU,oBAAV,uBAAU,oDACA,iCAAe,oBAAf,iCAAe;GAHhE,yBAAyB,CAqCrC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAG/E,2EAAwE;AACxE,sFAAmF;AAG5E,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEE;IACK;IAFzC,YACoC,UAAsB,EACjB,eAAgC;QADrC,eAAU,GAAV,UAAU,CAAY;QACjB,oBAAe,GAAf,eAAe,CAAiB;QAErE,QAAQ;IACZ,CAAC;IACM,wBAAwB,CAAC,UAAkB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACrC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAC7C,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;oBACzC,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3D,SAAS;gBACb,CAAC;gBAED,UAAU,EAAE,CAAC;YACjB,CAAC;YAED,UAAU,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YAClD,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;CACJ,CAAA;AArCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;IACpB,WAAA,IAAA,iBAAM,EAAC,iBAAiB,CAAC,CAAA;yDADkB,uBAAU,oBAAV,uBAAU,oDACA,iCAAe,oBAAf,iCAAe;GAHhE,yBAAyB,CAqCrC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaClientController.js b/user/mods/fika-server/src/controllers/FikaClientController.js new file mode 100644 index 0000000..bc17d84 --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaClientController.js @@ -0,0 +1,69 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaClientController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaClientService_1 = require("../services/FikaClientService"); +let FikaClientController = class FikaClientController { + fikaClientService; + requiredMods = []; + allowedMods = []; + hasRequiredOrOptionalMods = true; + constructor(fikaClientService) { + this.fikaClientService = fikaClientService; + } + /** + * Handle /fika/client/config + */ + handleClientConfig() { + const clientConfig = this.fikaClientService.getClientConfig(); + //Here be dragons, this is technically not in the client config, or well it was.. But it was decided it was better for this configuration + //To be together with 'sentItemsLoseFIR' so users could find both options easier. + //Keep this here as this is really only supposed to be a 'client' config and it's really only used on the client. + clientConfig.allowItemSending = this.fikaClientService.getIsItemSendingAllowed(); + return clientConfig; + } + /** + * Handle /fika/natpunchserver/config + */ + handleNatPunchServerConfig() { + return this.fikaClientService.getNatPunchServerConfig(); + } + /** + * Handle /fika/client/check/mods + */ + handleCheckMods(request, sessionID) { + return this.fikaClientService.getCheckModsResponse(request, sessionID); + } + /** + * Handle /fika/profile/download + */ + handleProfileDownload(sessionID) { + return this.fikaClientService.getProfileBySessionID(sessionID); + } + /** + * Handle /fika/client/check/version + */ + handleVersionCheck() { + return this.fikaClientService.getVersion(); + } +}; +exports.FikaClientController = FikaClientController; +exports.FikaClientController = FikaClientController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaClientService")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaClientService_1.FikaClientService !== "undefined" && FikaClientService_1.FikaClientService) === "function" ? _a : Object]) +], FikaClientController); +//# sourceMappingURL=FikaClientController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaClientController.js.map b/user/mods/fika-server/src/controllers/FikaClientController.js.map index 501dbee..15edf12 100644 --- a/user/mods/fika-server/src/controllers/FikaClientController.js.map +++ b/user/mods/fika-server/src/controllers/FikaClientController.js.map @@ -6,5 +6,5 @@ "FikaClientController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAY7E,qEAAkE;AAI3D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAKsB;IAJzC,YAAY,GAAa,EAAE,CAAC;IAC5B,WAAW,GAAa,EAAE,CAAC;IAC3B,yBAAyB,GAAY,IAAI,CAAC;IAEpD,YAAmD,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAC3F;;OAEG;IACI,kBAAkB;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAE9D,yIAAyI;QACzI,iFAAiF;QACjF,iHAAiH;QAChH,YAAoB,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;QAE1F,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAiC,EAAE,SAAiB;QACvE,OAAO,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,kBAAkB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;CACJ,CAAA;AA/CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAMI,WAAA,IAAA,iBAAM,EAAC,mBAAmB,CAAC,CAAA;yDAA8B,qCAAiB,oBAAjB,qCAAiB;GAL9E,oBAAoB,CA+ChC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAY/E,qEAAkE;AAI3D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAKsB;IAJzC,YAAY,GAAa,EAAE,CAAC;IAC5B,WAAW,GAAa,EAAE,CAAC;IAC3B,yBAAyB,GAAY,IAAI,CAAC;IAEpD,YAAmD,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAC3F;;OAEG;IACI,kBAAkB;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAE9D,yIAAyI;QACzI,iFAAiF;QACjF,iHAAiH;QAChH,YAAoB,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;QAE1F,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAiC,EAAE,SAAiB;QACvE,OAAO,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACI,kBAAkB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;CACJ,CAAA;AA/CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAMI,WAAA,IAAA,iBAAM,EAAC,mBAAmB,CAAC,CAAA;yDAA8B,qCAAiB,oBAAjB,qCAAiB;GAL9E,oBAAoB,CA+ChC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaDialogueController.js b/user/mods/fika-server/src/controllers/FikaDialogueController.js new file mode 100644 index 0000000..cfd2c3d --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaDialogueController.js @@ -0,0 +1,310 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f, _g, _h, _j; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaDialogueController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const DialogueHelper_1 = require("C:/snapshot/project/obj/helpers/DialogueHelper"); +const ProfileHelper_1 = require("C:/snapshot/project/obj/helpers/ProfileHelper"); +const BackendErrorCodes_1 = require("C:/snapshot/project/obj/models/enums/BackendErrorCodes"); +const DialogueController_1 = require("C:/snapshot/project/obj/controllers/DialogueController"); +const MessageType_1 = require("C:/snapshot/project/obj/models/enums/MessageType"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const SptWebSocketConnectionHandler_1 = require("C:/snapshot/project/obj/servers/ws/SptWebSocketConnectionHandler"); +const HashUtil_1 = require("C:/snapshot/project/obj/utils/HashUtil"); +const TimeUtil_1 = require("C:/snapshot/project/obj/utils/TimeUtil"); +const FikaFriendRequestsHelper_1 = require("../helpers/FikaFriendRequestsHelper"); +const FikaPlayerRelationsHelper_1 = require("../helpers/FikaPlayerRelationsHelper"); +let FikaDialogueController = class FikaDialogueController { + profileHelper; + dialogueHelper; + fikaFriendRequestsHelper; + fikaPlayerRelationsHelper; + dialogueController; + saveServer; + hashUtil; + timeUtil; + webSocketHandler; + logger; + constructor(profileHelper, dialogueHelper, fikaFriendRequestsHelper, fikaPlayerRelationsHelper, dialogueController, saveServer, hashUtil, timeUtil, webSocketHandler, logger) { + this.profileHelper = profileHelper; + this.dialogueHelper = dialogueHelper; + this.fikaFriendRequestsHelper = fikaFriendRequestsHelper; + this.fikaPlayerRelationsHelper = fikaPlayerRelationsHelper; + this.dialogueController = dialogueController; + this.saveServer = saveServer; + this.hashUtil = hashUtil; + this.timeUtil = timeUtil; + this.webSocketHandler = webSocketHandler; + this.logger = logger; + // empty + } + getFriendList(sessionID) { + let botsAndFriends = this.dialogueController.getActiveChatBots(); + const friendsIds = this.fikaPlayerRelationsHelper.getFriendsList(sessionID); + for (const friendId of friendsIds) { + const profile = this.profileHelper.getPmcProfile(friendId); + if (!profile) { + this.fikaPlayerRelationsHelper.removeFriend(sessionID, friendId); + continue; + } + botsAndFriends.push({ + _id: profile._id, + aid: profile.aid, + Info: { + Nickname: profile.Info.Nickname, + Level: profile.Info.Level, + Side: profile.Info.Side, + MemberCategory: profile.Info.MemberCategory, + SelectedMemberCategory: profile.Info.SelectedMemberCategory, + }, + }); + } + return { + Friends: botsAndFriends, + Ignore: this.fikaPlayerRelationsHelper.getIgnoreList(sessionID), + InIgnoreList: this.fikaPlayerRelationsHelper.getInIgnoreList(sessionID), + }; + } + sendMessage(sessionID, request) { + const profiles = this.saveServer.getProfiles(); + if (!(sessionID in profiles) || !(request.dialogId in profiles)) { + // if it's not to another player let SPT handle it + return DialogueController_1.DialogueController.prototype.sendMessage.call(this.dialogueController, sessionID, request); + } + const receiverProfile = profiles[request.dialogId]; + const senderProfile = profiles[sessionID]; + if (!(request.dialogId in senderProfile.dialogues)) { + senderProfile.dialogues[request.dialogId] = { + attachmentsNew: 0, + new: 0, + pinned: false, + type: MessageType_1.MessageType.USER_MESSAGE, + messages: [], + Users: [], + _id: request.dialogId, + }; + } + const senderDialog = senderProfile.dialogues[request.dialogId]; + senderDialog.Users = [ + { + _id: receiverProfile.info.id, + aid: receiverProfile.info.aid, + Info: { + Nickname: receiverProfile.characters.pmc.Info.Nickname, + Side: receiverProfile.characters.pmc.Info.Side, + Level: receiverProfile.characters.pmc.Info.Level, + MemberCategory: receiverProfile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: receiverProfile.characters.pmc.Info.SelectedMemberCategory, + }, + }, + { + _id: senderProfile.info.id, + aid: senderProfile.info.aid, + Info: { + Nickname: senderProfile.characters.pmc.Info.Nickname, + Side: senderProfile.characters.pmc.Info.Side, + Level: senderProfile.characters.pmc.Info.Level, + MemberCategory: senderProfile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: receiverProfile.characters.pmc.Info.SelectedMemberCategory, + }, + }, + ]; + if (!(sessionID in receiverProfile.dialogues)) { + receiverProfile.dialogues[sessionID] = { + attachmentsNew: 0, + new: 0, + pinned: false, + type: MessageType_1.MessageType.USER_MESSAGE, + messages: [], + _id: sessionID, + Users: [], + }; + } + const receiverDialog = receiverProfile.dialogues[sessionID]; + receiverDialog.new++; + receiverDialog.Users = [ + { + _id: senderProfile.info.id, + aid: senderProfile.info.aid, + Info: { + Nickname: senderProfile.characters.pmc.Info.Nickname, + Side: senderProfile.characters.pmc.Info.Side, + Level: senderProfile.characters.pmc.Info.Level, + MemberCategory: senderProfile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: receiverProfile.characters.pmc.Info.SelectedMemberCategory, + }, + }, + { + _id: receiverProfile.info.id, + aid: receiverProfile.info.aid, + Info: { + Nickname: receiverProfile.characters.pmc.Info.Nickname, + Side: receiverProfile.characters.pmc.Info.Side, + Level: receiverProfile.characters.pmc.Info.Level, + MemberCategory: receiverProfile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: receiverProfile.characters.pmc.Info.SelectedMemberCategory, + }, + }, + ]; + const message = { + _id: this.hashUtil.generate(), + uid: sessionID, + type: request.type, + Member: { + Nickname: senderProfile.characters.pmc.Info.Nickname, + Side: senderProfile.characters.pmc.Info.Side, + Level: senderProfile.characters.pmc.Info.Level, + MemberCategory: senderProfile.characters.pmc.Info.MemberCategory, + Ignored: this.fikaPlayerRelationsHelper.getInIgnoreList(sessionID).includes(request.dialogId), + Banned: false, + }, + dt: this.timeUtil.getTimestamp(), + text: request.text, + rewardCollected: false, + }; + if (request.replyTo) { + const replyMessage = this.getMessageToReplyTo(request.dialogId, request.replyTo, sessionID); + if (replyMessage) { + message.replyTo = replyMessage; + } + } + senderDialog.messages.push(message); + receiverDialog.messages.push(message); + this.webSocketHandler.sendMessageAsync(receiverProfile.info.id, { + type: "new_message", + eventId: "new_message", + EventId: "new_message", + dialogId: sessionID, + message: message, + }); + return message._id; + } + /** + * @param recipientId The id of the recipient + * @param replyToId The id of the message to reply to + * @param dialogueId The id of the dialogue (traderId or profileId) + * @returns A new instance with data from the found message, otherwise undefined + */ + getMessageToReplyTo(recipientId, replyToId, dialogueId) { + let message = undefined; + const currentDialogue = this.dialogueHelper.getDialogueFromProfile(recipientId, dialogueId); + if (!currentDialogue) { + this.logger.warning(`Could not find dialogue ${dialogueId} from sender`); + return message; + } + for (const dialogueMessage of currentDialogue.messages) { + if (dialogueMessage._id === replyToId) { + message = { + _id: dialogueMessage._id, + dt: dialogueMessage.dt, + type: dialogueMessage.type, + uid: dialogueMessage.uid, + text: dialogueMessage.text, + }; + break; + } + } + return message; + } + listOutbox(sessionID) { + const sentFriendRequests = this.fikaFriendRequestsHelper.getSentFriendRequests(sessionID); + for (const sentFriendRequest of sentFriendRequests) { + const profile = this.profileHelper.getPmcProfile(sentFriendRequest.to); + if (!profile) { + continue; + } + sentFriendRequest.profile = { + _id: profile._id, + aid: profile.aid, + Info: { + Nickname: profile.Info.Nickname, + Side: profile.Info.Side, + Level: profile.Info.Level, + MemberCategory: profile.Info.MemberCategory, + }, + }; + } + return sentFriendRequests; + } + listInbox(sessionID) { + const receivedFriendRequests = this.fikaFriendRequestsHelper.getReceivedFriendRequests(sessionID); + for (const receivedFriendRequest of receivedFriendRequests) { + const profile = this.profileHelper.getPmcProfile(receivedFriendRequest.from); + if (!profile) { + continue; + } + receivedFriendRequest.profile = { + _id: profile._id, + aid: profile.aid, + Info: { + Nickname: profile.Info.Nickname, + Side: profile.Info.Side, + Level: profile.Info.Level, + MemberCategory: profile.Info.MemberCategory, + }, + }; + } + return receivedFriendRequests; + } + sendFriendRequest(from, to) { + this.fikaFriendRequestsHelper.addFriendRequest(from, to); + return { + status: BackendErrorCodes_1.BackendErrorCodes.NONE, + requestId: from, + retryAfter: 0, + }; + } + acceptAllFriendRequests(sessionID) { + const receivedFriendRequests = this.fikaFriendRequestsHelper.getReceivedFriendRequests(sessionID); + for (const friendRequest of receivedFriendRequests) { + this.acceptFriendRequest(friendRequest.from, friendRequest.to); + } + } + acceptFriendRequest(from, to) { + this.fikaFriendRequestsHelper.removeFriendRequest(from, to, "accept"); + this.fikaPlayerRelationsHelper.addFriend(from, to); + } + cancelFriendRequest(from, to) { + this.fikaFriendRequestsHelper.removeFriendRequest(from, to, "cancel"); + } + declineFriendRequest(from, to) { + this.fikaFriendRequestsHelper.removeFriendRequest(from, to, "decline"); + } + deleteFriend(fromId, friendId) { + this.fikaPlayerRelationsHelper.removeFriend(fromId, friendId); + } + ignoreFriend(fromId, friendId) { + this.fikaPlayerRelationsHelper.addToIgnoreList(fromId, friendId); + } + unIgnoreFriend(fromId, friendId) { + this.fikaPlayerRelationsHelper.removeFromIgnoreList(fromId, friendId); + } +}; +exports.FikaDialogueController = FikaDialogueController; +exports.FikaDialogueController = FikaDialogueController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("ProfileHelper")), + __param(1, (0, tsyringe_1.inject)("DialogueHelper")), + __param(2, (0, tsyringe_1.inject)("FikaFriendRequestsHelper")), + __param(3, (0, tsyringe_1.inject)("FikaPlayerRelationsHelper")), + __param(4, (0, tsyringe_1.inject)("DialogueController")), + __param(5, (0, tsyringe_1.inject)("SaveServer")), + __param(6, (0, tsyringe_1.inject)("HashUtil")), + __param(7, (0, tsyringe_1.inject)("TimeUtil")), + __param(8, (0, tsyringe_1.inject)("SptWebSocketConnectionHandler")), + __param(9, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof ProfileHelper_1.ProfileHelper !== "undefined" && ProfileHelper_1.ProfileHelper) === "function" ? _a : Object, typeof (_b = typeof DialogueHelper_1.DialogueHelper !== "undefined" && DialogueHelper_1.DialogueHelper) === "function" ? _b : Object, typeof (_c = typeof FikaFriendRequestsHelper_1.FikaFriendRequestsHelper !== "undefined" && FikaFriendRequestsHelper_1.FikaFriendRequestsHelper) === "function" ? _c : Object, typeof (_d = typeof FikaPlayerRelationsHelper_1.FikaPlayerRelationsHelper !== "undefined" && FikaPlayerRelationsHelper_1.FikaPlayerRelationsHelper) === "function" ? _d : Object, typeof (_e = typeof DialogueController_1.DialogueController !== "undefined" && DialogueController_1.DialogueController) === "function" ? _e : Object, typeof (_f = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _f : Object, typeof (_g = typeof HashUtil_1.HashUtil !== "undefined" && HashUtil_1.HashUtil) === "function" ? _g : Object, typeof (_h = typeof TimeUtil_1.TimeUtil !== "undefined" && TimeUtil_1.TimeUtil) === "function" ? _h : Object, typeof (_j = typeof SptWebSocketConnectionHandler_1.SptWebSocketConnectionHandler !== "undefined" && SptWebSocketConnectionHandler_1.SptWebSocketConnectionHandler) === "function" ? _j : Object, Object]) +], FikaDialogueController); +//# sourceMappingURL=FikaDialogueController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaDialogueController.js.map b/user/mods/fika-server/src/controllers/FikaDialogueController.js.map index 9d389d9..6d7c771 100644 --- a/user/mods/fika-server/src/controllers/FikaDialogueController.js.map +++ b/user/mods/fika-server/src/controllers/FikaDialogueController.js.map @@ -6,5 +6,5 @@ "FikaDialogueController.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaHeadlessController.js b/user/mods/fika-server/src/controllers/FikaHeadlessController.js new file mode 100644 index 0000000..7d87ab9 --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaHeadlessController.js @@ -0,0 +1,82 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const QuestHelper_1 = require("C:/snapshot/project/obj/helpers/QuestHelper"); +const QuestStatus_1 = require("C:/snapshot/project/obj/models/enums/QuestStatus"); +const FikaHeadlessHelper_1 = require("../helpers/FikaHeadlessHelper"); +const FikaConfig_1 = require("../utils/FikaConfig"); +let FikaHeadlessController = class FikaHeadlessController { + fikaHeadlessHelper; + fikaConfig; + questHelper; + constructor(fikaHeadlessHelper, fikaConfig, questHelper) { + this.fikaHeadlessHelper = fikaHeadlessHelper; + this.fikaConfig = fikaConfig; + this.questHelper = questHelper; + } + /** + * Handle /fika/headless/get + */ + handleGetHeadlesses() { + const data = { + headlesses: {}, + }; + for (const [headlessSessionID, headless] of this.fikaHeadlessHelper.getHeadlessClients()) { + data.headlesses[headlessSessionID] = { + state: headless.state, + players: headless.players, + requesterSessionID: headless.requesterSessionID, + hasNotifiedRequester: headless.hasNotifiedRequester, + }; + } + return data; + } + /** + * Handle /fika/headless/available + */ + handleGetAvailableHeadlesses() { + return this.fikaHeadlessHelper.getAvailableHeadlessClients(); + } + /** + * Handle /fika/headless/restartafterraidamount + */ + handleRestartAfterRaidAmount() { + const data = { + amount: this.fikaConfig.getConfig().headless.restartAfterAmountOfRaids, + }; + return data; + } + /** + * Handle /fika/headless/questtemplates + */ + handleGetAllQuestTemplates() { + const quests = this.questHelper.getQuestsFromDb(); + for (const quest of quests) { + quest.sptStatus = QuestStatus_1.QuestStatus.AvailableForStart; + } + return quests; + } +}; +exports.FikaHeadlessController = FikaHeadlessController; +exports.FikaHeadlessController = FikaHeadlessController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaHeadlessHelper")), + __param(1, (0, tsyringe_1.inject)("FikaConfig")), + __param(2, (0, tsyringe_1.inject)("QuestHelper")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaHeadlessHelper_1.FikaHeadlessHelper !== "undefined" && FikaHeadlessHelper_1.FikaHeadlessHelper) === "function" ? _a : Object, typeof (_b = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _b : Object, typeof (_c = typeof QuestHelper_1.QuestHelper !== "undefined" && QuestHelper_1.QuestHelper) === "function" ? _c : Object]) +], FikaHeadlessController); +//# sourceMappingURL=FikaHeadlessController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaHeadlessController.js.map b/user/mods/fika-server/src/controllers/FikaHeadlessController.js.map index 904d06c..8162e98 100644 --- a/user/mods/fika-server/src/controllers/FikaHeadlessController.js.map +++ b/user/mods/fika-server/src/controllers/FikaHeadlessController.js.map @@ -6,5 +6,5 @@ "FikaHeadlessController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,2EAAwE;AAExE,gFAA6E;AAC7E,sEAAmE;AAInE,oDAAiD;AAG1C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEa;IACR;IACC;IAHrC,YAC4C,kBAAsC,EAC9C,UAAsB,EACrB,WAAwB;QAFjB,uBAAkB,GAAlB,kBAAkB,CAAoB;QAC9C,eAAU,GAAV,UAAU,CAAY;QACrB,gBAAW,GAAX,WAAW,CAAa;IAC1D,CAAC;IAEJ;;OAEG;IACI,mBAAmB;QACtB,MAAM,IAAI,GAAqB;YAC3B,UAAU,EAAE,EAAE;SACjB,CAAC;QAEF,KAAK,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG;gBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;aACtD,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,4BAA4B;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,EAAE,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,4BAA4B;QAC/B,MAAM,IAAI,GAAuC;YAC7C,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,yBAAyB;SACzE,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAElD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,KAAK,CAAC,SAAS,GAAG,yBAAW,CAAC,iBAAiB,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAzDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;IACpB,WAAA,IAAA,iBAAM,EAAC,aAAa,CAAC,CAAA;yDAFsC,uCAAkB,oBAAlB,uCAAkB,oDAClC,uBAAU,oBAAV,uBAAU,oDACR,yBAAW,oBAAX,yBAAW;GAJpD,sBAAsB,CAyDlC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,6EAA0E;AAE1E,kFAA+E;AAC/E,sEAAmE;AAInE,oDAAiD;AAG1C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEa;IACR;IACC;IAHrC,YAC4C,kBAAsC,EAC9C,UAAsB,EACrB,WAAwB;QAFjB,uBAAkB,GAAlB,kBAAkB,CAAoB;QAC9C,eAAU,GAAV,UAAU,CAAY;QACrB,gBAAW,GAAX,WAAW,CAAa;IAC1D,CAAC;IAEJ;;OAEG;IACI,mBAAmB;QACtB,MAAM,IAAI,GAAqB;YAC3B,UAAU,EAAE,EAAE;SACjB,CAAC;QAEF,KAAK,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG;gBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;aACtD,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,4BAA4B;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,EAAE,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,4BAA4B;QAC/B,MAAM,IAAI,GAAuC;YAC7C,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,yBAAyB;SACzE,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAElD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,KAAK,CAAC,SAAS,GAAG,yBAAW,CAAC,iBAAiB,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AAzDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;IACpB,WAAA,IAAA,iBAAM,EAAC,aAAa,CAAC,CAAA;yDAFsC,uCAAkB,oBAAlB,uCAAkB,oDAClC,uBAAU,oBAAV,uBAAU,oDACR,yBAAW,oBAAX,yBAAW;GAJpD,sBAAsB,CAyDlC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaLocationController.js b/user/mods/fika-server/src/controllers/FikaLocationController.js new file mode 100644 index 0000000..d816c87 --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaLocationController.js @@ -0,0 +1,67 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaLocationController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaHeadlessHelper_1 = require("../helpers/FikaHeadlessHelper"); +const FikaMatchService_1 = require("../services/FikaMatchService"); +let FikaLocationController = class FikaLocationController { + fikaMatchService; + fikaHeadlessHelper; + constructor(fikaMatchService, fikaHeadlessHelper) { + this.fikaMatchService = fikaMatchService; + this.fikaHeadlessHelper = fikaHeadlessHelper; + // empty + } + /** + * Handle /fika/location/raids + * @param request + * @returns + */ + handleGetRaids(_request) { + const matches = []; + for (const [matchId, match] of this.fikaMatchService.getAllMatches()) { + const players = {}; + for (const [profileId, player] of match.players) { + players[profileId] = player.isDead; + } + let hostUsername = match.hostUsername; + if (match.isHeadless) { + hostUsername = this.fikaHeadlessHelper.getHeadlessNickname(matchId); + } + matches.push({ + serverId: matchId, + hostUsername: hostUsername, + playerCount: match.players.size, + status: match.status, + location: match.raidConfig.location, + side: match.side, + time: match.time, + players: players, + isHeadless: match.isHeadless, + headlessRequesterNickname: this.fikaHeadlessHelper.getRequesterUsername(matchId) || "", //Set this to an empty string if there is no requester. + }); + } + return matches; + } +}; +exports.FikaLocationController = FikaLocationController; +exports.FikaLocationController = FikaLocationController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaMatchService")), + __param(1, (0, tsyringe_1.inject)("FikaHeadlessHelper")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaMatchService_1.FikaMatchService !== "undefined" && FikaMatchService_1.FikaMatchService) === "function" ? _a : Object, typeof (_b = typeof FikaHeadlessHelper_1.FikaHeadlessHelper !== "undefined" && FikaHeadlessHelper_1.FikaHeadlessHelper) === "function" ? _b : Object]) +], FikaLocationController); +//# sourceMappingURL=FikaLocationController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaLocationController.js.map b/user/mods/fika-server/src/controllers/FikaLocationController.js.map index 8ec83d9..998fe33 100644 --- a/user/mods/fika-server/src/controllers/FikaLocationController.js.map +++ b/user/mods/fika-server/src/controllers/FikaLocationController.js.map @@ -6,5 +6,5 @@ "FikaLocationController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAI7E,sEAAmE;AAEnE,mEAAgE;AAGzD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEW;IACE;IAF5C,YAC0C,gBAAkC,EAChC,kBAAsC;QADxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAE9E,QAAQ;IACZ,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,QAA0C;QAC5D,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC;YACnE,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC;YAED,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAEtC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxE,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;gBACnC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,yBAAyB,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,uDAAuD;aAClJ,CAAC,CAAC;QACP,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ,CAAA;AA5CY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;yDAD2B,mCAAgB,oBAAhB,mCAAgB,oDACZ,uCAAkB,oBAAlB,uCAAkB;GAHzE,sBAAsB,CA4ClC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAI/E,sEAAmE;AAEnE,mEAAgE;AAGzD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEW;IACE;IAF5C,YAC0C,gBAAkC,EAChC,kBAAsC;QADxC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAE9E,QAAQ;IACZ,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,QAA0C;QAC5D,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC;YACnE,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC;YAED,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAEtC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxE,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;gBACnC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,yBAAyB,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,uDAAuD;aAClJ,CAAC,CAAC;QACP,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ,CAAA;AA5CY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;yDAD2B,mCAAgB,oBAAhB,mCAAgB,oDACZ,uCAAkB,oBAAlB,uCAAkB;GAHzE,sBAAsB,CA4ClC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaRaidController.js b/user/mods/fika-server/src/controllers/FikaRaidController.js new file mode 100644 index 0000000..78fece3 --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaRaidController.js @@ -0,0 +1,158 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaRaidController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const InraidController_1 = require("C:/snapshot/project/obj/controllers/InraidController"); +const FikaHeadlessHelper_1 = require("../helpers/FikaHeadlessHelper"); +const EFikaMatchEndSessionMessages_1 = require("../models/enums/EFikaMatchEndSessionMessages"); +const EFikaNotifications_1 = require("../models/enums/EFikaNotifications"); +const FikaMatchService_1 = require("../services/FikaMatchService"); +const FikaHeadlessService_1 = require("../services/headless/FikaHeadlessService"); +const FikaNotificationWebSocket_1 = require("../websockets/FikaNotificationWebSocket"); +let FikaRaidController = class FikaRaidController { + fikaMatchService; + fikaHeadlessHelper; + fikaHeadlessService; + logger; + inraidController; + fikaNotificationWebSocket; + constructor(fikaMatchService, fikaHeadlessHelper, fikaHeadlessService, logger, inraidController, fikaNotificationWebSocket) { + this.fikaMatchService = fikaMatchService; + this.fikaHeadlessHelper = fikaHeadlessHelper; + this.fikaHeadlessService = fikaHeadlessService; + this.logger = logger; + this.inraidController = inraidController; + this.fikaNotificationWebSocket = fikaNotificationWebSocket; + // empty + } + /** + * Handle /fika/raid/create + * @param request + */ + handleRaidCreate(request) { + let hostUsername = request.hostUsername; + if (this.fikaHeadlessHelper.isHeadlessClient(request.serverId)) { + hostUsername = this.fikaHeadlessHelper.getHeadlessNickname(request.serverId); + } + const notification = { + type: EFikaNotifications_1.EFikaNotifications.StartedRaid, + nickname: hostUsername, + location: request.settings.location, + isHeadlessRaid: this.fikaHeadlessHelper.isHeadlessClient(request.serverId), + headlessRequesterName: this.fikaHeadlessHelper.getRequesterUsername(request.serverId) || "", + raidTime: request.time + }; + this.fikaNotificationWebSocket.broadcast(notification); + return { + success: this.fikaMatchService.createMatch(request), + }; + } + /** + * Handle /fika/raid/join + * @param request + */ + handleRaidJoin(request) { + const match = this.fikaMatchService.getMatch(request.serverId); + return { + serverId: request.serverId, + timestamp: match.timestamp, + gameVersion: match.gameVersion, + crc32: match.crc32, + raidCode: match.raidCode, + }; + } + /** + * Handle /fika/raid/leave + * @param request + */ + handleRaidLeave(request) { + if (request.serverId === request.profileId) { + this.fikaMatchService.endMatch(request.serverId, EFikaMatchEndSessionMessages_1.EFikaMatchEndSessionMessage.HOST_SHUTDOWN_MESSAGE); + return; + } + this.fikaMatchService.removePlayerFromMatch(request.serverId, request.profileId); + } + /** + * Handle /fika/raid/gethost + * @param request + */ + handleRaidGetHost(request) { + const match = this.fikaMatchService.getMatch(request.serverId); + if (!match) { + return; + } + return { + ips: match.ips, + port: match.port, + natPunch: match.natPunch, + isHeadless: match.isHeadless, + }; + } + /** + * Handle /fika/raid/getsettings + * @param request + */ + handleRaidGetSettings(request) { + const match = this.fikaMatchService.getMatch(request.serverId); + if (!match) { + return; + } + return { + metabolismDisabled: match.raidConfig.metabolismDisabled, + playersSpawnPlace: match.raidConfig.playersSpawnPlace, + hourOfDay: match.raidConfig.timeAndWeatherSettings.hourOfDay, + timeFlowType: match.raidConfig.timeAndWeatherSettings.timeFlowType, + }; + } + /** Handle /fika/raid/headless/start */ + async handleRaidStartHeadless(sessionID, info) { + if (!this.fikaHeadlessHelper.isHeadlessClientAvailable(info.headlessSessionID)) { + return { + matchId: null, + error: "This headless client is not available.", + }; + } + if (this.fikaHeadlessHelper.isHeadlessClient(sessionID)) { + return { + matchId: null, + error: "You are trying to connect to a headless client while having Fika.Headless installed. Please remove Fika.Headless from your client and try again.", + }; + } + const headlessClientId = await this.fikaHeadlessService.startHeadlessRaid(info.headlessSessionID, sessionID, info); + this.logger.info(`Sent WS fikaHeadlessStartRaid to ${headlessClientId}`); + return { + // This really isn't required, I just want to make sure on the client + matchId: headlessClientId, + error: null, + }; + } + /** Handle /fika/raid/registerPlayer */ + handleRaidRegisterPlayer(sessionId, info) { + this.inraidController.addPlayer(sessionId, info); + } +}; +exports.FikaRaidController = FikaRaidController; +exports.FikaRaidController = FikaRaidController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaMatchService")), + __param(1, (0, tsyringe_1.inject)("FikaHeadlessHelper")), + __param(2, (0, tsyringe_1.inject)("FikaHeadlessService")), + __param(3, (0, tsyringe_1.inject)("WinstonLogger")), + __param(4, (0, tsyringe_1.inject)("InraidController")), + __param(5, (0, tsyringe_1.inject)("FikaNotificationWebSocket")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaMatchService_1.FikaMatchService !== "undefined" && FikaMatchService_1.FikaMatchService) === "function" ? _a : Object, typeof (_b = typeof FikaHeadlessHelper_1.FikaHeadlessHelper !== "undefined" && FikaHeadlessHelper_1.FikaHeadlessHelper) === "function" ? _b : Object, typeof (_c = typeof FikaHeadlessService_1.FikaHeadlessService !== "undefined" && FikaHeadlessService_1.FikaHeadlessService) === "function" ? _c : Object, Object, typeof (_d = typeof InraidController_1.InraidController !== "undefined" && InraidController_1.InraidController) === "function" ? _d : Object, typeof (_e = typeof FikaNotificationWebSocket_1.FikaNotificationWebSocket !== "undefined" && FikaNotificationWebSocket_1.FikaNotificationWebSocket) === "function" ? _e : Object]) +], FikaRaidController); +//# sourceMappingURL=FikaRaidController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaRaidController.js.map b/user/mods/fika-server/src/controllers/FikaRaidController.js.map index ba8fecf..0f654f1 100644 --- a/user/mods/fika-server/src/controllers/FikaRaidController.js.map +++ b/user/mods/fika-server/src/controllers/FikaRaidController.js.map @@ -6,5 +6,5 @@ "FikaRaidController.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaSendItemController.js b/user/mods/fika-server/src/controllers/FikaSendItemController.js new file mode 100644 index 0000000..fa8f1cf --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaSendItemController.js @@ -0,0 +1,133 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f, _g, _h; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaSendItemController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const InventoryHelper_1 = require("C:/snapshot/project/obj/helpers/InventoryHelper"); +const ItemHelper_1 = require("C:/snapshot/project/obj/helpers/ItemHelper"); +const EventOutputHolder_1 = require("C:/snapshot/project/obj/routers/EventOutputHolder"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const MailSendService_1 = require("C:/snapshot/project/obj/services/MailSendService"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const EFikaNotifications_1 = require("../models/enums/EFikaNotifications"); +const FikaConfig_1 = require("../utils/FikaConfig"); +const FikaNotificationWebSocket_1 = require("../websockets/FikaNotificationWebSocket"); +let FikaSendItemController = class FikaSendItemController { + logger; + eventOutputHolder; + mailSendService; + inventoryHelper; + saveServer; + itemHelper; + httpResponse; + fikaConfig; + fikaNotificationWebSocket; + constructor(logger, eventOutputHolder, mailSendService, inventoryHelper, saveServer, itemHelper, httpResponse, fikaConfig, fikaNotificationWebSocket) { + this.logger = logger; + this.eventOutputHolder = eventOutputHolder; + this.mailSendService = mailSendService; + this.inventoryHelper = inventoryHelper; + this.saveServer = saveServer; + this.itemHelper = itemHelper; + this.httpResponse = httpResponse; + this.fikaConfig = fikaConfig; + this.fikaNotificationWebSocket = fikaNotificationWebSocket; + // empty + } + async sendItem(_pmcData, body, sessionID) { + const fikaConfig = this.fikaConfig.getConfig(); + const output = this.eventOutputHolder.getOutput(sessionID); + if (!body || !body.id || !body.target) { + return this.httpResponse.appendErrorToOutput(output, "Missing data in body"); + } + const senderProfile = this.saveServer.getProfile(sessionID); + if (!senderProfile) { + return this.httpResponse.appendErrorToOutput(output, "Sender profile not found"); + } + // Disabled until functionality is required due to being buggy + // if (senderProfile.inraid.location != "none") { + // return this.httpResponse.appendErrorToOutput( + // output, + // `You cannot send items while in raid, current state is: ${senderProfile.inraid.location}` + // ); + // } + const targetProfile = this.saveServer.getProfile(body.target); + if (!targetProfile) { + return this.httpResponse.appendErrorToOutput(output, "Target profile not found"); + } + this.logger.info(`${body.id} is going to sessionID: ${body.target}`); + const senderItems = senderProfile.characters.pmc.Inventory.items; + const itemsToSend = this.itemHelper.findAndReturnChildrenAsItems(senderItems, body.id); + if (!itemsToSend || itemsToSend.length === 0) { + return this.httpResponse.appendErrorToOutput(output, "Item not found in inventory"); + } + if (fikaConfig.server.sentItemsLoseFIR) { + for (const item of itemsToSend) { + item.upd ??= {}; + item.upd.SpawnedInSession = false; + } + } + this.mailSendService.sendSystemMessageToPlayer(body.target, `You have received a gift from ${senderProfile?.characters?.pmc?.Info?.Nickname ?? "unknown"}`, itemsToSend, 604800); + this.inventoryHelper.removeItem(senderProfile.characters.pmc, body.id, sessionID, output); + const notification = { + type: EFikaNotifications_1.EFikaNotifications.SentItem, + nickname: senderProfile?.characters?.pmc?.Info?.Nickname, + targetId: body.target, + itemName: `${itemsToSend[0]._tpl} ShortName`, + }; + await this.fikaNotificationWebSocket.sendAsync(body.target, notification); + return output; + } + /** + * Get available receivers for sending an item + * @param sessionID + * @returns + */ + handleAvailableReceivers(sessionID) { + const sender = this.saveServer.getProfile(sessionID); + if (!sender) { + return; + } + const result = {}; + const profiles = this.saveServer.getProfiles(); + for (const profile of Object.values(profiles)) { + //Uninitialized profiles can cause this to error out, skip these. + if (!profile.characters?.pmc?.Info) + continue; + if (profile.info.password === "fika-headless") + continue; + const nickname = profile.characters.pmc.Info.Nickname; + if (!(nickname in result) && nickname !== sender.characters.pmc.Info.Nickname) { + result[nickname] = profile.info.id; + } + } + return result; + } +}; +exports.FikaSendItemController = FikaSendItemController; +exports.FikaSendItemController = FikaSendItemController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("WinstonLogger")), + __param(1, (0, tsyringe_1.inject)("EventOutputHolder")), + __param(2, (0, tsyringe_1.inject)("MailSendService")), + __param(3, (0, tsyringe_1.inject)("InventoryHelper")), + __param(4, (0, tsyringe_1.inject)("SaveServer")), + __param(5, (0, tsyringe_1.inject)("ItemHelper")), + __param(6, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(7, (0, tsyringe_1.inject)("FikaConfig")), + __param(8, (0, tsyringe_1.inject)("FikaNotificationWebSocket")), + __metadata("design:paramtypes", [Object, typeof (_a = typeof EventOutputHolder_1.EventOutputHolder !== "undefined" && EventOutputHolder_1.EventOutputHolder) === "function" ? _a : Object, typeof (_b = typeof MailSendService_1.MailSendService !== "undefined" && MailSendService_1.MailSendService) === "function" ? _b : Object, typeof (_c = typeof InventoryHelper_1.InventoryHelper !== "undefined" && InventoryHelper_1.InventoryHelper) === "function" ? _c : Object, typeof (_d = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _d : Object, typeof (_e = typeof ItemHelper_1.ItemHelper !== "undefined" && ItemHelper_1.ItemHelper) === "function" ? _e : Object, typeof (_f = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _f : Object, typeof (_g = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _g : Object, typeof (_h = typeof FikaNotificationWebSocket_1.FikaNotificationWebSocket !== "undefined" && FikaNotificationWebSocket_1.FikaNotificationWebSocket) === "function" ? _h : Object]) +], FikaSendItemController); +//# sourceMappingURL=FikaSendItemController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaSendItemController.js.map b/user/mods/fika-server/src/controllers/FikaSendItemController.js.map index d2d8105..320ae61 100644 --- a/user/mods/fika-server/src/controllers/FikaSendItemController.js.map +++ b/user/mods/fika-server/src/controllers/FikaSendItemController.js.map @@ -6,5 +6,5 @@ "FikaSendItemController.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaUpdateController.js b/user/mods/fika-server/src/controllers/FikaUpdateController.js new file mode 100644 index 0000000..ca92f2a --- /dev/null +++ b/user/mods/fika-server/src/controllers/FikaUpdateController.js @@ -0,0 +1,76 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaUpdateController = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaMatchService_1 = require("../services/FikaMatchService"); +let FikaUpdateController = class FikaUpdateController { + fikaMatchService; + constructor(fikaMatchService) { + this.fikaMatchService = fikaMatchService; + // empty + } + /** + * Handle /fika/update/ping + * @param request + */ + handlePing(request) { + this.fikaMatchService.resetTimeout(request.serverId); + } + /** + * Handle /fika/update/playerspawn + * @param request + */ + handlePlayerspawn(request) { + this.fikaMatchService.setPlayerGroup(request.serverId, request.profileId, request.groupId); + } + /** + * Handle /fika/update/sethost + * @param request + */ + handleSethost(request) { + this.fikaMatchService.setMatchHost(request.serverId, request.ips, request.port, request.natPunch, request.isHeadless); + } + /** + * Handle /fika/update/setstatus + * @param request + */ + async handleSetStatus(request) { + await this.fikaMatchService.setMatchStatus(request.serverId, request.status); + } + /** + * Handle /fika/update/addplayer + * @param request + * @returns + */ + handleRaidAddPlayer(request) { + this.fikaMatchService.addPlayerToMatch(request.serverId, request.profileId, { groupId: null, isDead: false, isSpectator: request.isSpectator }); + } + /** + * Handle /fika/update/playerdied + * @param request + * @returns + */ + handleRaidPlayerDied(request) { + this.fikaMatchService.setPlayerDead(request.serverId, request.profileId); + } +}; +exports.FikaUpdateController = FikaUpdateController; +exports.FikaUpdateController = FikaUpdateController = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaMatchService")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaMatchService_1.FikaMatchService !== "undefined" && FikaMatchService_1.FikaMatchService) === "function" ? _a : Object]) +], FikaUpdateController); +//# sourceMappingURL=FikaUpdateController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/controllers/FikaUpdateController.js.map b/user/mods/fika-server/src/controllers/FikaUpdateController.js.map index 6775789..119ec7f 100644 --- a/user/mods/fika-server/src/controllers/FikaUpdateController.js.map +++ b/user/mods/fika-server/src/controllers/FikaUpdateController.js.map @@ -6,5 +6,5 @@ "FikaUpdateController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAO7E,mEAAgE;AAGzD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACqB;IAAlD,YAAkD,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChF,QAAQ;IACZ,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,OAAmC;QACjD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,OAA0C;QAC/D,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,OAAsC;QACvD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1H,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAe,CAAC,OAAwC;QACjE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,OAAqC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpJ,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,OAAqC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;CACJ,CAAA;AAtDY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;yDAA6B,mCAAgB,oBAAhB,mCAAgB;GAD3E,oBAAoB,CAsDhC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAO/E,mEAAgE;AAGzD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACqB;IAAlD,YAAkD,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChF,QAAQ;IACZ,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,OAAmC;QACjD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,OAA0C;QAC/D,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,OAAsC;QACvD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1H,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAe,CAAC,OAAwC;QACjE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,OAAqC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpJ,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,OAAqC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;CACJ,CAAA;AAtDY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;yDAA6B,mCAAgB,oBAAhB,mCAAgB;GAD3E,oBAAoB,CAsDhC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/di/Container.js b/user/mods/fika-server/src/di/Container.js new file mode 100644 index 0000000..5964b5d --- /dev/null +++ b/user/mods/fika-server/src/di/Container.js @@ -0,0 +1,160 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Container = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaConfig_1 = require("../utils/FikaConfig"); +const Overrider_1 = require("../overrides/Overrider"); +const DialogueCallbacks_1 = require("../overrides/callbacks/DialogueCallbacks"); +const AchievementController_1 = require("../overrides/controllers/AchievementController"); +const DialogueController_1 = require("../overrides/controllers/DialogueController"); +const ProfileController_1 = require("../overrides/controllers/ProfileController"); +// import { LocalesOverride } from "../overrides/other/Locales"; +const HttpRouter_1 = require("../overrides/routers/HttpRouter"); +const LocationLifecycleService_1 = require("../overrides/services/LocationLifecycleService"); +const FikaInsuranceService_1 = require("../services/FikaInsuranceService"); +const FikaMatchService_1 = require("../services/FikaMatchService"); +const FikaPresenceService_1 = require("../services/FikaPresenceService"); +const FikaFriendRequestsCacheService_1 = require("../services/cache/FikaFriendRequestsCacheService"); +const FikaPlayerRelationsCacheService_1 = require("../services/cache/FikaPlayerRelationsCacheService"); +const FikaClientModHashesHelper_1 = require("../helpers/FikaClientModHashesHelper"); +const FikaFriendRequestsHelper_1 = require("../helpers/FikaFriendRequestsHelper"); +const FikaPlayerRelationsHelper_1 = require("../helpers/FikaPlayerRelationsHelper"); +const FikaAchievementController_1 = require("../controllers/FikaAchievementController"); +const FikaClientController_1 = require("../controllers/FikaClientController"); +const FikaDialogueController_1 = require("../controllers/FikaDialogueController"); +const FikaLocationController_1 = require("../controllers/FikaLocationController"); +const FikaRaidController_1 = require("../controllers/FikaRaidController"); +const FikaSendItemController_1 = require("../controllers/FikaSendItemController"); +const FikaUpdateController_1 = require("../controllers/FikaUpdateController"); +const FikaClientCallbacks_1 = require("../callbacks/FikaClientCallbacks"); +const FikaLocationCallbacks_1 = require("../callbacks/FikaLocationCallbacks"); +const FikaPresenceCallbacks_1 = require("../callbacks/FikaPresenceCallbacks"); +const FikaRaidCallbacks_1 = require("../callbacks/FikaRaidCallbacks"); +const FikaSendItemCallbacks_1 = require("../callbacks/FikaSendItemCallbacks"); +const FikaUpdateCallbacks_1 = require("../callbacks/FikaUpdateCallbacks"); +const FikaItemEventRouter_1 = require("../routers/item_events/FikaItemEventRouter"); +const FikaClientStaticRouter_1 = require("../routers/static/FikaClientStaticRouter"); +const FikaLocationStaticRouter_1 = require("../routers/static/FikaLocationStaticRouter"); +const FikaPresenceStaticRouter_1 = require("../routers/static/FikaPresenceStaticRouter"); +const FikaRaidStaticRouter_1 = require("../routers/static/FikaRaidStaticRouter"); +const FikaSendItemStaticRouter_1 = require("../routers/static/FikaSendItemStaticRouter"); +const FikaUpdateStaticRouter_1 = require("../routers/static/FikaUpdateStaticRouter"); +const FikaNotificationWebSocket_1 = require("../websockets/FikaNotificationWebSocket"); +const Fika_1 = require("../Fika"); +const FikaHeadlessCallbacks_1 = require("../callbacks/FikaHeadlessCallbacks"); +const FikaNotificationCallbacks_1 = require("../callbacks/FikaNotificationCallbacks"); +const FikaHeadlessController_1 = require("../controllers/FikaHeadlessController"); +const FikaHeadlessHelper_1 = require("../helpers/FikaHeadlessHelper"); +const ClientLogCallbacks_1 = require("../overrides/callbacks/ClientLogCallbacks"); +const FikaHeadlessStaticRouter_1 = require("../routers/static/FikaHeadlessStaticRouter"); +const FikaNotificationStaticRouter_1 = require("../routers/static/FikaNotificationStaticRouter"); +const FikaClientService_1 = require("../services/FikaClientService"); +const FikaHeadlessProfileService_1 = require("../services/headless/FikaHeadlessProfileService"); +const FikaHeadlessService_1 = require("../services/headless/FikaHeadlessService"); +const FikaServerTools_1 = require("../utils/FikaServerTools"); +const FikaHeadlessClientWebSocket_1 = require("../websockets/FikaHeadlessClientWebSocket"); +const FikaHeadlessRequesterWebSocket_1 = require("../websockets/FikaHeadlessRequesterWebSocket"); +class Container { + static register(container) { + Container.registerUtils(container); + Container.registerOverrides(container); + Container.registerServices(container); + Container.registerHelpers(container); + Container.registerControllers(container); + Container.registerCallbacks(container); + Container.registerRouters(container); + Container.registerWebSockets(container); + Container.registerListTypes(container); + container.register("Fika", Fika_1.Fika, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + } + static registerListTypes(container) { + container.registerType("Overrides", "DialogueCallbacksOverride"); + container.registerType("Overrides", "DialogueControllerOverride"); + container.registerType("Overrides", "ProfileControllerOverride"); + container.registerType("Overrides", "HttpRouterOverride"); + // container.registerType("Overrides", "LocalesOverride"); + container.registerType("Overrides", "AchievementControllerOverride"); + container.registerType("Overrides", "LocationLifecycleServiceOverride"); + container.registerType("StaticRoutes", "FikaClientStaticRouter"); + container.registerType("StaticRoutes", "FikaHeadlessStaticRouter"); + container.registerType("StaticRoutes", "FikaLocationStaticRouter"); + container.registerType("StaticRoutes", "FikaRaidStaticRouter"); + container.registerType("StaticRoutes", "FikaSendItemStaticRouter"); + container.registerType("StaticRoutes", "FikaUpdateStaticRouter"); + container.registerType("StaticRoutes", "FikaNotificationStaticRouter"); + container.registerType("StaticRoutes", "FikaPresenceStaticRouter"); + container.registerType("IERouters", "FikaItemEventRouter"); + container.registerType("WebSocketConnectionHandler", "FikaNotificationWebSocket"); + container.registerType("WebSocketConnectionHandler", "FikaHeadlessClientWebSocket"); + container.registerType("WebSocketConnectionHandler", "FikaHeadlessRequesterWebSocket"); + } + static registerUtils(container) { + container.register("FikaConfig", FikaConfig_1.FikaConfig, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaServerTools", FikaServerTools_1.FikaServerTools, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + } + static registerOverrides(container) { + container.register("DialogueCallbacksOverride", DialogueCallbacks_1.DialogueCallbacksOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("ClientLogCallbacksOverride", ClientLogCallbacks_1.ClientLogCallbacksOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("DialogueControllerOverride", DialogueController_1.DialogueControllerOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("ProfileControllerOverride", ProfileController_1.ProfileControllerOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("HttpRouterOverride", HttpRouter_1.HttpRouterOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + // container.register("LocalesOverride", LocalesOverride, { lifecycle: Lifecycle.Singleton }); + container.register("Overrider", Overrider_1.Overrider, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("AchievementControllerOverride", AchievementController_1.AchievementControllerOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("LocationLifecycleServiceOverride", LocationLifecycleService_1.LocationLifecycleServiceOverride, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + } + static registerServices(container) { + container.register("FikaClientService", FikaClientService_1.FikaClientService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaMatchService", FikaMatchService_1.FikaMatchService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaFriendRequestsCacheService", FikaFriendRequestsCacheService_1.FikaFriendRequestsCacheService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaPlayerRelationsCacheService", FikaPlayerRelationsCacheService_1.FikaPlayerRelationsCacheService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaHeadlessProfileService", FikaHeadlessProfileService_1.FikaHeadlessProfileService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaInsuranceService", FikaInsuranceService_1.FikaInsuranceService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaPresenceService", FikaPresenceService_1.FikaPresenceService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaHeadlessService", FikaHeadlessService_1.FikaHeadlessService, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + } + static registerHelpers(container) { + container.register("FikaClientModHashesHelper", FikaClientModHashesHelper_1.FikaClientModHashesHelper, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaFriendRequestsHelper", { useClass: FikaFriendRequestsHelper_1.FikaFriendRequestsHelper }); + container.register("FikaPlayerRelationsHelper", { useClass: FikaPlayerRelationsHelper_1.FikaPlayerRelationsHelper }); + container.register("FikaHeadlessHelper", { useClass: FikaHeadlessHelper_1.FikaHeadlessHelper }); + } + static registerControllers(container) { + container.register("FikaClientController", { useClass: FikaClientController_1.FikaClientController }); + container.register("FikaHeadlessController", { useClass: FikaHeadlessController_1.FikaHeadlessController }); + container.register("FikaDialogueController", { useClass: FikaDialogueController_1.FikaDialogueController }); + container.register("FikaLocationController", { useClass: FikaLocationController_1.FikaLocationController }); + container.register("FikaRaidController", { useClass: FikaRaidController_1.FikaRaidController }); + container.register("FikaSendItemController", { useClass: FikaSendItemController_1.FikaSendItemController }); + container.register("FikaUpdateController", { useClass: FikaUpdateController_1.FikaUpdateController }); + container.register("FikaAchievementController", { useClass: FikaAchievementController_1.FikaAchievementController }); + } + static registerCallbacks(container) { + container.register("FikaClientCallbacks", { useClass: FikaClientCallbacks_1.FikaClientCallbacks }); + container.register("FikaHeadlessCallbacks", { useClass: FikaHeadlessCallbacks_1.FikaHeadlessCallbacks }); + container.register("FikaLocationCallbacks", { useClass: FikaLocationCallbacks_1.FikaLocationCallbacks }); + container.register("FikaRaidCallbacks", { useClass: FikaRaidCallbacks_1.FikaRaidCallbacks }); + container.register("FikaSendItemCallbacks", { useClass: FikaSendItemCallbacks_1.FikaSendItemCallbacks }); + container.register("FikaUpdateCallbacks", { useClass: FikaUpdateCallbacks_1.FikaUpdateCallbacks }); + container.register("FikaNotificationCallbacks", { useClass: FikaNotificationCallbacks_1.FikaNotificationCallbacks }); + container.register("FikaPresenceCallbacks", { useClass: FikaPresenceCallbacks_1.FikaPresenceCallbacks }); + } + static registerRouters(container) { + container.register("FikaClientStaticRouter", { useClass: FikaClientStaticRouter_1.FikaClientStaticRouter }); + container.register("FikaHeadlessStaticRouter", { useClass: FikaHeadlessStaticRouter_1.FikaHeadlessStaticRouter }); + container.register("FikaLocationStaticRouter", { useClass: FikaLocationStaticRouter_1.FikaLocationStaticRouter }); + container.register("FikaRaidStaticRouter", { useClass: FikaRaidStaticRouter_1.FikaRaidStaticRouter }); + container.register("FikaSendItemStaticRouter", { useClass: FikaSendItemStaticRouter_1.FikaSendItemStaticRouter }); + container.register("FikaUpdateStaticRouter", { useClass: FikaUpdateStaticRouter_1.FikaUpdateStaticRouter }); + container.register("FikaItemEventRouter", { useClass: FikaItemEventRouter_1.FikaItemEventRouter }); + container.register("FikaNotificationStaticRouter", { useClass: FikaNotificationStaticRouter_1.FikaNotificationStaticRouter }); + container.register("FikaPresenceStaticRouter", { useClass: FikaPresenceStaticRouter_1.FikaPresenceStaticRouter }); + } + static registerWebSockets(container) { + container.register("FikaNotificationWebSocket", FikaNotificationWebSocket_1.FikaNotificationWebSocket, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaHeadlessClientWebSocket", FikaHeadlessClientWebSocket_1.FikaHeadlessClientWebSocket, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + container.register("FikaHeadlessRequesterWebSocket", FikaHeadlessRequesterWebSocket_1.FikaHeadlessRequesterWebSocket, { lifecycle: tsyringe_1.Lifecycle.Singleton }); + } +} +exports.Container = Container; +//# sourceMappingURL=Container.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/di/Container.js.map b/user/mods/fika-server/src/di/Container.js.map index 91d9d32..c57c132 100644 --- a/user/mods/fika-server/src/di/Container.js.map +++ b/user/mods/fika-server/src/di/Container.js.map @@ -6,5 +6,5 @@ "Container.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/di/Override.js b/user/mods/fika-server/src/di/Override.js new file mode 100644 index 0000000..18f73f9 --- /dev/null +++ b/user/mods/fika-server/src/di/Override.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Override = void 0; +class Override { +} +exports.Override = Override; +//# sourceMappingURL=Override.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaClientModHashesHelper.js b/user/mods/fika-server/src/helpers/FikaClientModHashesHelper.js new file mode 100644 index 0000000..b565f5e --- /dev/null +++ b/user/mods/fika-server/src/helpers/FikaClientModHashesHelper.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaClientModHashesHelper = void 0; +class FikaClientModHashesHelper { + hashes; + constructor() { + this.hashes = new Map(); + } + getLength() { + return this.hashes.size; + } + exists(pluginId) { + return this.hashes.has(pluginId); + } + getHash(pluginId) { + return this.hashes.get(pluginId); + } + addHash(pluginId, hash) { + this.hashes.set(pluginId, hash); + } +} +exports.FikaClientModHashesHelper = FikaClientModHashesHelper; +//# sourceMappingURL=FikaClientModHashesHelper.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js b/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js new file mode 100644 index 0000000..e6dfe2d --- /dev/null +++ b/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js @@ -0,0 +1,188 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaFriendRequestsHelper = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HashUtil_1 = require("C:/snapshot/project/obj/utils/HashUtil"); +const LogTextColor_1 = require("C:/snapshot/project/obj/models/spt/logging/LogTextColor"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const SptWebSocketConnectionHandler_1 = require("C:/snapshot/project/obj/servers/ws/SptWebSocketConnectionHandler"); +const FikaFriendRequestsCacheService_1 = require("../services/cache/FikaFriendRequestsCacheService"); +let FikaFriendRequestsHelper = class FikaFriendRequestsHelper { + hashUtil; + fikaFriendRequestsCacheService; + saveServer; + webSocketHandler; + logger; + constructor(hashUtil, fikaFriendRequestsCacheService, saveServer, webSocketHandler, logger) { + this.hashUtil = hashUtil; + this.fikaFriendRequestsCacheService = fikaFriendRequestsCacheService; + this.saveServer = saveServer; + this.webSocketHandler = webSocketHandler; + this.logger = logger; + // empty + } + /** + * Returns the friend requests that were sent to the given player + * @param profileId + * @returns + */ + getReceivedFriendRequests(profileId) { + return this.fikaFriendRequestsCacheService.getReceivedFriendRequests(profileId); + } + /** + * Returns the friend requests that were sent by the given player + * @param profileId + * @returns + */ + getSentFriendRequests(profileId) { + return this.fikaFriendRequestsCacheService.getSentFriendRequests(profileId); + } + /** + * Adds a friend request + * @param fromProfileId + * @param toProfileId + */ + addFriendRequest(fromProfileId, toProfileId) { + if (this.fikaFriendRequestsCacheService.exists(fromProfileId, toProfileId)) { + this.logger.logWithColor(`Friend request ${fromProfileId}->${toProfileId} already exists`, LogTextColor_1.LogTextColor.YELLOW); + return; + } + if (!this.saveServer.profileExists(toProfileId)) { + this.logger.logWithColor(`Friend request: ${toProfileId} doesn't exist! ${fromProfileId} tried to add an invalid user!`, LogTextColor_1.LogTextColor.YELLOW); + return; + } + this.fikaFriendRequestsCacheService.storeFriendRequest({ + _id: this.hashUtil.generate(), + from: fromProfileId, + to: toProfileId, + date: Math.round(Date.now() / 1000), + }); + let profile = this.saveServer.getProfile(fromProfileId); + if (profile) { + this.logger.logWithColor(`Sending WebSocket message to ${toProfileId}`, LogTextColor_1.LogTextColor.GREEN); + this.webSocketHandler.sendMessageAsync(toProfileId, { + type: "friendListNewRequest", + eventId: "friendListNewRequest", + _id: fromProfileId, + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + } + else { + this.logger.logWithColor(`Could not find profile for ${fromProfileId}`, LogTextColor_1.LogTextColor.RED); + } + } + /** + * Removes a friend request + * @param fromProfileId + * @param toProfileId + */ + removeFriendRequest(fromProfileId, toProfileId, reason) { + if (!this.fikaFriendRequestsCacheService.exists(fromProfileId, toProfileId)) { + this.logger.warning(`Friend request ${fromProfileId}->${toProfileId} doesn't exist`); + return; + } + this.logger.info(`reason (${reason}), fromProfileId (${fromProfileId}), toProfileId (${toProfileId})`); + this.fikaFriendRequestsCacheService.deleteFriendRequest(fromProfileId, toProfileId); + switch (reason) { + case "accept": { + const profile = this.saveServer.getProfile(toProfileId); + this.webSocketHandler.sendMessageAsync(fromProfileId, { + type: "friendListRequestAccept", + eventId: "friendListRequestAccept", + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + break; + } + case "cancel": { + const profile = this.saveServer.getProfile(fromProfileId); + this.webSocketHandler.sendMessageAsync(toProfileId, { + type: "friendListRequestCancel", + eventId: "friendListRequestCancel", + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + break; + } + case "decline": { + const profile = this.saveServer.getProfile(toProfileId); + this.webSocketHandler.sendMessageAsync(fromProfileId, { + type: "friendListRequestDecline", + eventId: "friendListRequestDecline", + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + break; + } + } + } +}; +exports.FikaFriendRequestsHelper = FikaFriendRequestsHelper; +exports.FikaFriendRequestsHelper = FikaFriendRequestsHelper = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HashUtil")), + __param(1, (0, tsyringe_1.inject)("FikaFriendRequestsCacheService")), + __param(2, (0, tsyringe_1.inject)("SaveServer")), + __param(3, (0, tsyringe_1.inject)("SptWebSocketConnectionHandler")), + __param(4, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof HashUtil_1.HashUtil !== "undefined" && HashUtil_1.HashUtil) === "function" ? _a : Object, typeof (_b = typeof FikaFriendRequestsCacheService_1.FikaFriendRequestsCacheService !== "undefined" && FikaFriendRequestsCacheService_1.FikaFriendRequestsCacheService) === "function" ? _b : Object, typeof (_c = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _c : Object, typeof (_d = typeof SptWebSocketConnectionHandler_1.SptWebSocketConnectionHandler !== "undefined" && SptWebSocketConnectionHandler_1.SptWebSocketConnectionHandler) === "function" ? _d : Object, Object]) +], FikaFriendRequestsHelper); +//# sourceMappingURL=FikaFriendRequestsHelper.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js.map b/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js.map index 3b70e01..38ea80d 100644 --- a/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js.map +++ b/user/mods/fika-server/src/helpers/FikaFriendRequestsHelper.js.map @@ -6,5 +6,5 @@ "FikaFriendRequestsHelper.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js b/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js new file mode 100644 index 0000000..504b9a7 --- /dev/null +++ b/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js @@ -0,0 +1,122 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessHelper = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const EHeadlessStatus_1 = require("../models/enums/EHeadlessStatus"); +const FikaHeadlessProfileService_1 = require("../services/headless/FikaHeadlessProfileService"); +const FikaHeadlessService_1 = require("../services/headless/FikaHeadlessService"); +const FikaConfig_1 = require("../utils/FikaConfig"); +let FikaHeadlessHelper = class FikaHeadlessHelper { + fikaConfig; + saveServer; + FikaHeadlessService; + fikaHeadlessProfileService; + constructor(fikaConfig, saveServer, FikaHeadlessService, fikaHeadlessProfileService) { + this.fikaConfig = fikaConfig; + this.saveServer = saveServer; + this.FikaHeadlessService = FikaHeadlessService; + this.fikaHeadlessProfileService = fikaHeadlessProfileService; + // empty + } + /** + * Gets all currently logged in headlesses + * + * @returns A map where the key is the sessionID and the value is an IHeadlessClientInfo object + */ + getHeadlessClients() { + return this.FikaHeadlessService.getHeadlessClients(); + } + /** + * Allows for checking if a SessionID is a headless client + * + * @param sessionId The sessionID to check + * @returns Returns true if the passed sessionID is a headless, returns false if not. + */ + isHeadlessClient(sessionId) { + return this.fikaHeadlessProfileService.getHeadlessProfiles().some((profile) => profile.info.id === sessionId); + } + /** + * Allows for checking if the given headless client is available + * + * @returns Returns true if it's available, returns false if it isn't available. + */ + isHeadlessClientAvailable(headlessSessionID) { + const headless = this.FikaHeadlessService.getHeadlessClients().get(headlessSessionID); + if (!headless) { + return false; + } + if (headless.state === EHeadlessStatus_1.EHeadlessStatus.READY) { + return true; + } + return false; + } + /** + * Gets the requester's username for a headless client if there is any. + * + * @returns The nickname if the headless has been requested by a user, returns null if not. + */ + getRequesterUsername(headlessSessionID) { + const headlessClient = this.FikaHeadlessService.getHeadlessClients().get(headlessSessionID); + if (!headlessClient) { + return null; + } + if (!headlessClient.requesterSessionID) { + return null; + } + return this.saveServer.getProfile(headlessClient.requesterSessionID).characters.pmc.Info.Nickname; + } + /*** + * Gets the alias (If it has been given one) or nickname of the headless client + * + * @returns the alias, or nickname or the headless client. + */ + getHeadlessNickname(headlessSessionID) { + const AliasName = this.fikaConfig.getConfig().headless.profiles.aliases[headlessSessionID]; + if (!AliasName) { + return this.saveServer.getProfile(headlessSessionID).characters.pmc.Info.Nickname; + } + return AliasName; + } + /** + * Gets all available headless clients + * + * @returns Returns an array of available headless clients + */ + getAvailableHeadlessClients() { + const headlessClients = []; + for (const [headlessSessionID, headless] of this.getHeadlessClients()) { + if (headless.state === EHeadlessStatus_1.EHeadlessStatus.READY) { + const availableHeadlessClient = { + headlessSessionID: headlessSessionID, + alias: this.getHeadlessNickname(headlessSessionID), + }; + headlessClients.push(availableHeadlessClient); + } + } + return headlessClients; + } +}; +exports.FikaHeadlessHelper = FikaHeadlessHelper; +exports.FikaHeadlessHelper = FikaHeadlessHelper = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaConfig")), + __param(1, (0, tsyringe_1.inject)("SaveServer")), + __param(2, (0, tsyringe_1.inject)("FikaHeadlessService")), + __param(3, (0, tsyringe_1.inject)("FikaHeadlessProfileService")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _a : Object, typeof (_b = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _b : Object, typeof (_c = typeof FikaHeadlessService_1.FikaHeadlessService !== "undefined" && FikaHeadlessService_1.FikaHeadlessService) === "function" ? _c : Object, typeof (_d = typeof FikaHeadlessProfileService_1.FikaHeadlessProfileService !== "undefined" && FikaHeadlessProfileService_1.FikaHeadlessProfileService) === "function" ? _d : Object]) +], FikaHeadlessHelper); +//# sourceMappingURL=FikaHeadlessHelper.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js.map b/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js.map index c07821e..54d23dc 100644 --- a/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js.map +++ b/user/mods/fika-server/src/helpers/FikaHeadlessHelper.js.map @@ -6,5 +6,5 @@ "FikaHeadlessHelper.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js b/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js new file mode 100644 index 0000000..9c4bba8 --- /dev/null +++ b/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js @@ -0,0 +1,185 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaPlayerRelationsHelper = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const SptWebSocketConnectionHandler_1 = require("C:/snapshot/project/obj/servers/ws/SptWebSocketConnectionHandler"); +const FikaPlayerRelationsCacheService_1 = require("../services/cache/FikaPlayerRelationsCacheService"); +let FikaPlayerRelationsHelper = class FikaPlayerRelationsHelper { + fikaPlayerRelationsCacheService; + saveServer; + webSocketHandler; + logger; + constructor(fikaPlayerRelationsCacheService, saveServer, webSocketHandler, logger) { + this.fikaPlayerRelationsCacheService = fikaPlayerRelationsCacheService; + this.saveServer = saveServer; + this.webSocketHandler = webSocketHandler; + this.logger = logger; + // empty + } + /** + * Returns the friendlist from the given player + * @param profileId + * @returns + */ + getFriendsList(profileId) { + return this.fikaPlayerRelationsCacheService.getStoredValue(profileId).Friends; + } + /** + * Returns the ignorelist from the given player + * @param profileId + * @returns + */ + getIgnoreList(profileId) { + return this.fikaPlayerRelationsCacheService.getStoredValue(profileId).Ignore; + } + /** + * Returns a list of players ignoring the given player + * @param profileId + * @returns + */ + getInIgnoreList(profileId) { + const storedPlayers = this.fikaPlayerRelationsCacheService.getKeys(); + return storedPlayers.filter((player) => this.fikaPlayerRelationsCacheService.getStoredValue(player).Ignore.includes(profileId)); + } + /** + * Makes 2 players fwends :D + * @param fromProfileId + * @param toProfileId + */ + addFriend(fromProfileId, toProfileId) { + const playerRelations1 = this.fikaPlayerRelationsCacheService.getStoredValue(fromProfileId); + if (!playerRelations1.Friends.includes(toProfileId)) { + playerRelations1.Friends.push(toProfileId); + this.fikaPlayerRelationsCacheService.storeValue(fromProfileId, playerRelations1); + } + const playerRelations2 = this.fikaPlayerRelationsCacheService.getStoredValue(toProfileId); + if (!playerRelations2.Friends.includes(fromProfileId)) { + playerRelations2.Friends.push(fromProfileId); + this.fikaPlayerRelationsCacheService.storeValue(toProfileId, playerRelations2); + } + } + /** + * If the 2 players are fwends, it makes them not fwends :( + * @param fromProfileId + * @param toProfileId + */ + removeFriend(fromProfileId, toProfileId) { + const playerRelations1 = this.fikaPlayerRelationsCacheService.getStoredValue(fromProfileId); + if (playerRelations1.Friends.includes(toProfileId)) { + playerRelations1.Friends.splice(playerRelations1.Friends.indexOf(toProfileId), 1); + this.fikaPlayerRelationsCacheService.storeValue(fromProfileId, playerRelations1); + } + const playerRelations2 = this.fikaPlayerRelationsCacheService.getStoredValue(toProfileId); + if (playerRelations2.Friends.includes(fromProfileId)) { + playerRelations2.Friends.splice(playerRelations2.Friends.indexOf(fromProfileId), 1); + this.fikaPlayerRelationsCacheService.storeValue(toProfileId, playerRelations2); + } + this.logger.info(`removeFriend: ${fromProfileId}->${toProfileId}`); + const profile = this.saveServer.getProfile(fromProfileId); + this.webSocketHandler.sendMessageAsync(toProfileId, { + type: "youAreRemovedFromFriendList", + eventId: "youAreRemovedFromFriendList", + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + } + /** + * If player2 is not in player1's ignore list, it adds them + * @param fromProfileId + * @param toProfileId + */ + addToIgnoreList(fromProfileId, toProfileId) { + const playerRelations = this.fikaPlayerRelationsCacheService.getStoredValue(fromProfileId); + if (playerRelations.Ignore.includes(toProfileId)) { + return; + } + playerRelations.Ignore.push(toProfileId); + this.fikaPlayerRelationsCacheService.storeValue(fromProfileId, playerRelations); + let profile = this.saveServer.getProfile(fromProfileId); + this.webSocketHandler.sendMessageAsync(toProfileId, { + type: "youAreAddToIgnoreList", + eventId: "youAreAddToIgnoreList", + _id: fromProfileId, + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + } + /** + * If player2 is in player1's ignore list, it removes them + * @param fromProfileId + * @param toProfileId + */ + removeFromIgnoreList(fromProfileId, toProfileId) { + const playerRelations = this.fikaPlayerRelationsCacheService.getStoredValue(fromProfileId); + if (!playerRelations.Ignore.includes(toProfileId)) { + return; + } + playerRelations.Ignore.splice(playerRelations.Ignore.indexOf(toProfileId), 1); + this.fikaPlayerRelationsCacheService.storeValue(fromProfileId, playerRelations); + let profile = this.saveServer.getProfile(fromProfileId); + this.webSocketHandler.sendMessageAsync(toProfileId, { + type: "youAreRemoveFromIgnoreList", + eventId: "youAreRemoveFromIgnoreList", + _id: fromProfileId, + profile: { + _id: profile.info.id, + aid: profile.info.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.MemberCategory, + Ignored: false, + Banned: profile.characters.pmc.Info.BannedState, + }, + }, + }); + } +}; +exports.FikaPlayerRelationsHelper = FikaPlayerRelationsHelper; +exports.FikaPlayerRelationsHelper = FikaPlayerRelationsHelper = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaPlayerRelationsCacheService")), + __param(1, (0, tsyringe_1.inject)("SaveServer")), + __param(2, (0, tsyringe_1.inject)("SptWebSocketConnectionHandler")), + __param(3, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaPlayerRelationsCacheService_1.FikaPlayerRelationsCacheService !== "undefined" && FikaPlayerRelationsCacheService_1.FikaPlayerRelationsCacheService) === "function" ? _a : Object, typeof (_b = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _b : Object, typeof (_c = typeof SptWebSocketConnectionHandler_1.SptWebSocketConnectionHandler !== "undefined" && SptWebSocketConnectionHandler_1.SptWebSocketConnectionHandler) === "function" ? _c : Object, Object]) +], FikaPlayerRelationsHelper); +//# sourceMappingURL=FikaPlayerRelationsHelper.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js.map b/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js.map index 5964759..aded32a 100644 --- a/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js.map +++ b/user/mods/fika-server/src/helpers/FikaPlayerRelationsHelper.js.map @@ -6,5 +6,5 @@ "FikaPlayerRelationsHelper.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/mod.js b/user/mods/fika-server/src/mod.js new file mode 100644 index 0000000..656122b --- /dev/null +++ b/user/mods/fika-server/src/mod.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.mod = void 0; +const Container_1 = require("./di/Container"); +class Mod { + async preSptLoadAsync(container) { + Container_1.Container.register(container); + await container.resolve("Fika").preSptLoad(container); + } + async postSptLoadAsync(container) { + await container.resolve("Fika").postSptLoad(container); + } +} +exports.mod = new Mod(); +//# sourceMappingURL=mod.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/eft/dialog/IFriendRequestListResponse.js b/user/mods/fika-server/src/models/eft/dialog/IFriendRequestListResponse.js new file mode 100644 index 0000000..323b54e --- /dev/null +++ b/user/mods/fika-server/src/models/eft/dialog/IFriendRequestListResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFriendRequestListResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EEFTNotificationIconType.js b/user/mods/fika-server/src/models/enums/EEFTNotificationIconType.js new file mode 100644 index 0000000..3303714 --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EEFTNotificationIconType.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EEFTNotificationIconType = void 0; +var EEFTNotificationIconType; +(function (EEFTNotificationIconType) { + EEFTNotificationIconType[EEFTNotificationIconType["Default"] = 0] = "Default"; + EEFTNotificationIconType[EEFTNotificationIconType["Alert"] = 1] = "Alert"; + EEFTNotificationIconType[EEFTNotificationIconType["Friend"] = 2] = "Friend"; + EEFTNotificationIconType[EEFTNotificationIconType["Mail"] = 3] = "Mail"; + EEFTNotificationIconType[EEFTNotificationIconType["Note"] = 4] = "Note"; + EEFTNotificationIconType[EEFTNotificationIconType["Quest"] = 5] = "Quest"; + EEFTNotificationIconType[EEFTNotificationIconType["Achievement"] = 6] = "Achievement"; + EEFTNotificationIconType[EEFTNotificationIconType["EntryPoint"] = 7] = "EntryPoint"; + EEFTNotificationIconType[EEFTNotificationIconType["RagFair"] = 8] = "RagFair"; + EEFTNotificationIconType[EEFTNotificationIconType["Hideout"] = 9] = "Hideout"; + EEFTNotificationIconType[EEFTNotificationIconType["WishlistQuest"] = 10] = "WishlistQuest"; + EEFTNotificationIconType[EEFTNotificationIconType["WishlistHideout"] = 11] = "WishlistHideout"; + EEFTNotificationIconType[EEFTNotificationIconType["WishlistTrading"] = 12] = "WishlistTrading"; + EEFTNotificationIconType[EEFTNotificationIconType["WishlistEquipment"] = 13] = "WishlistEquipment"; + EEFTNotificationIconType[EEFTNotificationIconType["WishlistOther"] = 14] = "WishlistOther"; +})(EEFTNotificationIconType || (exports.EEFTNotificationIconType = EEFTNotificationIconType = {})); +//# sourceMappingURL=EEFTNotificationIconType.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaHeadlessWSMessageTypes.js b/user/mods/fika-server/src/models/enums/EFikaHeadlessWSMessageTypes.js new file mode 100644 index 0000000..ae5a6ab --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaHeadlessWSMessageTypes.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaHeadlessWSMessageTypes = void 0; +var EFikaHeadlessWSMessageTypes; +(function (EFikaHeadlessWSMessageTypes) { + EFikaHeadlessWSMessageTypes[EFikaHeadlessWSMessageTypes["KeepAlive"] = 0] = "KeepAlive"; + EFikaHeadlessWSMessageTypes[EFikaHeadlessWSMessageTypes["HeadlessStartRaid"] = 1] = "HeadlessStartRaid"; + EFikaHeadlessWSMessageTypes[EFikaHeadlessWSMessageTypes["RequesterJoinMatch"] = 2] = "RequesterJoinMatch"; +})(EFikaHeadlessWSMessageTypes || (exports.EFikaHeadlessWSMessageTypes = EFikaHeadlessWSMessageTypes = {})); +//# sourceMappingURL=EFikaHeadlessWSMessageTypes.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaMatchEndSessionMessages.js b/user/mods/fika-server/src/models/enums/EFikaMatchEndSessionMessages.js new file mode 100644 index 0000000..f0523e3 --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaMatchEndSessionMessages.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaMatchEndSessionMessage = void 0; +var EFikaMatchEndSessionMessage; +(function (EFikaMatchEndSessionMessage) { + EFikaMatchEndSessionMessage["HOST_SHUTDOWN_MESSAGE"] = "host-shutdown"; + EFikaMatchEndSessionMessage["PING_TIMEOUT_MESSAGE"] = "ping-timeout"; + EFikaMatchEndSessionMessage["NO_PLAYERS_MESSAGE"] = "no-players"; +})(EFikaMatchEndSessionMessage || (exports.EFikaMatchEndSessionMessage = EFikaMatchEndSessionMessage = {})); +//# sourceMappingURL=EFikaMatchEndSessionMessages.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaMatchStatus.js b/user/mods/fika-server/src/models/enums/EFikaMatchStatus.js new file mode 100644 index 0000000..3f5dab3 --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaMatchStatus.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaMatchStatus = void 0; +var EFikaMatchStatus; +(function (EFikaMatchStatus) { + EFikaMatchStatus[EFikaMatchStatus["LOADING"] = 0] = "LOADING"; + EFikaMatchStatus[EFikaMatchStatus["IN_GAME"] = 1] = "IN_GAME"; + EFikaMatchStatus[EFikaMatchStatus["COMPLETE"] = 2] = "COMPLETE"; +})(EFikaMatchStatus || (exports.EFikaMatchStatus = EFikaMatchStatus = {})); +//# sourceMappingURL=EFikaMatchStatus.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaNotifications.js b/user/mods/fika-server/src/models/enums/EFikaNotifications.js new file mode 100644 index 0000000..605298a --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaNotifications.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaNotifications = void 0; +var EFikaNotifications; +(function (EFikaNotifications) { + EFikaNotifications[EFikaNotifications["KeepAlive"] = 0] = "KeepAlive"; + EFikaNotifications[EFikaNotifications["StartedRaid"] = 1] = "StartedRaid"; + EFikaNotifications[EFikaNotifications["SentItem"] = 2] = "SentItem"; + EFikaNotifications[EFikaNotifications["PushNotification"] = 3] = "PushNotification"; +})(EFikaNotifications || (exports.EFikaNotifications = EFikaNotifications = {})); +//# sourceMappingURL=EFikaNotifications.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaPlayerPresences.js b/user/mods/fika-server/src/models/enums/EFikaPlayerPresences.js new file mode 100644 index 0000000..dce333f --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaPlayerPresences.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaPlayerPresences = void 0; +var EFikaPlayerPresences; +(function (EFikaPlayerPresences) { + EFikaPlayerPresences[EFikaPlayerPresences["IN_MENU"] = 0] = "IN_MENU"; + EFikaPlayerPresences[EFikaPlayerPresences["IN_RAID"] = 1] = "IN_RAID"; + EFikaPlayerPresences[EFikaPlayerPresences["IN_STASH"] = 2] = "IN_STASH"; + EFikaPlayerPresences[EFikaPlayerPresences["IN_HIDEOUT"] = 3] = "IN_HIDEOUT"; + EFikaPlayerPresences[EFikaPlayerPresences["IN_FLEA"] = 4] = "IN_FLEA"; +})(EFikaPlayerPresences || (exports.EFikaPlayerPresences = EFikaPlayerPresences = {})); +//# sourceMappingURL=EFikaPlayerPresences.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaSide.js b/user/mods/fika-server/src/models/enums/EFikaSide.js new file mode 100644 index 0000000..d74780e --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaSide.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaSide = void 0; +var EFikaSide; +(function (EFikaSide) { + EFikaSide[EFikaSide["PMC"] = 0] = "PMC"; + EFikaSide[EFikaSide["Savage"] = 1] = "Savage"; +})(EFikaSide || (exports.EFikaSide = EFikaSide = {})); +//# sourceMappingURL=EFikaSide.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EFikaTime.js b/user/mods/fika-server/src/models/enums/EFikaTime.js new file mode 100644 index 0000000..17413c0 --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EFikaTime.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EFikaTime = void 0; +var EFikaTime; +(function (EFikaTime) { + EFikaTime[EFikaTime["CURR"] = 0] = "CURR"; + EFikaTime[EFikaTime["PAST"] = 1] = "PAST"; +})(EFikaTime || (exports.EFikaTime = EFikaTime = {})); +//# sourceMappingURL=EFikaTime.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/enums/EHeadlessStatus.js b/user/mods/fika-server/src/models/enums/EHeadlessStatus.js new file mode 100644 index 0000000..d23d2f0 --- /dev/null +++ b/user/mods/fika-server/src/models/enums/EHeadlessStatus.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EHeadlessStatus = void 0; +var EHeadlessStatus; +(function (EHeadlessStatus) { + EHeadlessStatus[EHeadlessStatus["READY"] = 1] = "READY"; + EHeadlessStatus[EHeadlessStatus["IN_RAID"] = 2] = "IN_RAID"; +})(EHeadlessStatus || (exports.EHeadlessStatus = EHeadlessStatus = {})); +//# sourceMappingURL=EHeadlessStatus.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/IFikaFriendRequests.js b/user/mods/fika-server/src/models/fika/IFikaFriendRequests.js new file mode 100644 index 0000000..3522c4e --- /dev/null +++ b/user/mods/fika-server/src/models/fika/IFikaFriendRequests.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaFriendRequests.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/IFikaMatch.js b/user/mods/fika-server/src/models/fika/IFikaMatch.js new file mode 100644 index 0000000..d71a319 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/IFikaMatch.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaMatch.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/IFikaPlayer.js b/user/mods/fika-server/src/models/fika/IFikaPlayer.js new file mode 100644 index 0000000..272d6fe --- /dev/null +++ b/user/mods/fika-server/src/models/fika/IFikaPlayer.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaPlayer.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/IFikaPlayerRelations.js b/user/mods/fika-server/src/models/fika/IFikaPlayerRelations.js new file mode 100644 index 0000000..2d28507 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/IFikaPlayerRelations.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaPlayerRelations.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/config/IFikaConfig.js b/user/mods/fika-server/src/models/fika/config/IFikaConfig.js new file mode 100644 index 0000000..1631b55 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/config/IFikaConfig.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaConfig.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/config/IFikaConfigBackground.js b/user/mods/fika-server/src/models/fika/config/IFikaConfigBackground.js new file mode 100644 index 0000000..bc6daad --- /dev/null +++ b/user/mods/fika-server/src/models/fika/config/IFikaConfigBackground.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaConfigBackground.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/config/IFikaConfigClient.js b/user/mods/fika-server/src/models/fika/config/IFikaConfigClient.js new file mode 100644 index 0000000..16b17e4 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/config/IFikaConfigClient.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaConfigClient.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/config/IFikaConfigHeadless.js b/user/mods/fika-server/src/models/fika/config/IFikaConfigHeadless.js new file mode 100644 index 0000000..ecb2cd6 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/config/IFikaConfigHeadless.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaConfigHeadless.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/config/IFikaConfigNatPunchServer.js b/user/mods/fika-server/src/models/fika/config/IFikaConfigNatPunchServer.js new file mode 100644 index 0000000..96437f8 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/config/IFikaConfigNatPunchServer.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaConfigNatPunchServer.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/config/IFikaConfigServer.js b/user/mods/fika-server/src/models/fika/config/IFikaConfigServer.js new file mode 100644 index 0000000..6422e99 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/config/IFikaConfigServer.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaConfigServer.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/headless/IHeadlessAvailableClients.js b/user/mods/fika-server/src/models/fika/headless/IHeadlessAvailableClients.js new file mode 100644 index 0000000..50f01de --- /dev/null +++ b/user/mods/fika-server/src/models/fika/headless/IHeadlessAvailableClients.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IHeadlessAvailableClients.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/headless/IHeadlessClientInfo.js b/user/mods/fika-server/src/models/fika/headless/IHeadlessClientInfo.js new file mode 100644 index 0000000..b89aabe --- /dev/null +++ b/user/mods/fika-server/src/models/fika/headless/IHeadlessClientInfo.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IHeadlessClientInfo.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/headless/IHeadlessClients.js b/user/mods/fika-server/src/models/fika/headless/IHeadlessClients.js new file mode 100644 index 0000000..ba6db18 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/headless/IHeadlessClients.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IHeadlessClients.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/headless/IHeadlessRestartAfterAmountOfRaids.js b/user/mods/fika-server/src/models/fika/headless/IHeadlessRestartAfterAmountOfRaids.js new file mode 100644 index 0000000..4d10139 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/headless/IHeadlessRestartAfterAmountOfRaids.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IHeadlessRestartAfterAmountOfRaids.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/insurance/IFikaInsurancePlayer.js b/user/mods/fika-server/src/models/fika/insurance/IFikaInsurancePlayer.js new file mode 100644 index 0000000..bcd064f --- /dev/null +++ b/user/mods/fika-server/src/models/fika/insurance/IFikaInsurancePlayer.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaInsurancePlayer.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/presence/IFikaPlayerPresence.js b/user/mods/fika-server/src/models/fika/presence/IFikaPlayerPresence.js new file mode 100644 index 0000000..7866fff --- /dev/null +++ b/user/mods/fika-server/src/models/fika/presence/IFikaPlayerPresence.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaPlayerPresence.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/presence/IFikaRaidPresence.js b/user/mods/fika-server/src/models/fika/presence/IFikaRaidPresence.js new file mode 100644 index 0000000..b4ba987 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/presence/IFikaRaidPresence.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidPresence.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/presence/IFikaSetPresence.js b/user/mods/fika-server/src/models/fika/presence/IFikaSetPresence.js new file mode 100644 index 0000000..1a258a7 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/presence/IFikaSetPresence.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaSetPresence.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/client/check/IFikaCheckModRequestData.js b/user/mods/fika-server/src/models/fika/routes/client/check/IFikaCheckModRequestData.js new file mode 100644 index 0000000..f2ac5e3 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/client/check/IFikaCheckModRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaCheckModRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/client/check/IFikaCheckModResponse.js b/user/mods/fika-server/src/models/fika/routes/client/check/IFikaCheckModResponse.js new file mode 100644 index 0000000..577a306 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/client/check/IFikaCheckModResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaCheckModResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/location/IFikaRaidsResponse.js b/user/mods/fika-server/src/models/fika/routes/location/IFikaRaidsResponse.js new file mode 100644 index 0000000..91e6416 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/location/IFikaRaidsResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidsResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/IFikaRaidServerIdRequestData.js b/user/mods/fika-server/src/models/fika/routes/raid/IFikaRaidServerIdRequestData.js new file mode 100644 index 0000000..b756d67 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/IFikaRaidServerIdRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidServerIdRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/create/IFikaRaidCreateRequestData.js b/user/mods/fika-server/src/models/fika/routes/raid/create/IFikaRaidCreateRequestData.js new file mode 100644 index 0000000..0718489 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/create/IFikaRaidCreateRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidCreateRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/create/IFikaRaidCreateResponse.js b/user/mods/fika-server/src/models/fika/routes/raid/create/IFikaRaidCreateResponse.js new file mode 100644 index 0000000..acb5052 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/create/IFikaRaidCreateResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidCreateResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/gethost/IFikaRaidGethostResponse.js b/user/mods/fika-server/src/models/fika/routes/raid/gethost/IFikaRaidGethostResponse.js new file mode 100644 index 0000000..5175a5a --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/gethost/IFikaRaidGethostResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidGethostResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/getsettings/IFikaRaidSettingsResponse.js b/user/mods/fika-server/src/models/fika/routes/raid/getsettings/IFikaRaidSettingsResponse.js new file mode 100644 index 0000000..ec930d9 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/getsettings/IFikaRaidSettingsResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidSettingsResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/headless/IStartHeadlessRequest.js b/user/mods/fika-server/src/models/fika/routes/raid/headless/IStartHeadlessRequest.js new file mode 100644 index 0000000..564dbdc --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/headless/IStartHeadlessRequest.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IStartHeadlessRequest.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/headless/IStartHeadlessResponse.js b/user/mods/fika-server/src/models/fika/routes/raid/headless/IStartHeadlessResponse.js new file mode 100644 index 0000000..fb644a2 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/headless/IStartHeadlessResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IStartHeadlessResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidAddPlayerData.js b/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidAddPlayerData.js new file mode 100644 index 0000000..4838354 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidAddPlayerData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidAddPlayerData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidJoinRequestData.js b/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidJoinRequestData.js new file mode 100644 index 0000000..4ac678f --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidJoinRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidJoinRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidJoinResponse.js b/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidJoinResponse.js new file mode 100644 index 0000000..77eae7e --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/join/IFikaRaidJoinResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidJoinResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/raid/leave/IFikaRaidLeaveRequestData.js b/user/mods/fika-server/src/models/fika/routes/raid/leave/IFikaRaidLeaveRequestData.js new file mode 100644 index 0000000..98c6182 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/raid/leave/IFikaRaidLeaveRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaRaidLeaveRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/senditem/IFikaSendItemRequestData.js b/user/mods/fika-server/src/models/fika/routes/senditem/IFikaSendItemRequestData.js new file mode 100644 index 0000000..80ea515 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/senditem/IFikaSendItemRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaSendItemRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/senditem/availablereceivers/IFikaSenditemAvailablereceiversRequestData.js b/user/mods/fika-server/src/models/fika/routes/senditem/availablereceivers/IFikaSenditemAvailablereceiversRequestData.js new file mode 100644 index 0000000..c87a1f6 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/senditem/availablereceivers/IFikaSenditemAvailablereceiversRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaSenditemAvailablereceiversRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/senditem/availablereceivers/IFikaSenditemAvailablereceiversResponse.js b/user/mods/fika-server/src/models/fika/routes/senditem/availablereceivers/IFikaSenditemAvailablereceiversResponse.js new file mode 100644 index 0000000..93dec0c --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/senditem/availablereceivers/IFikaSenditemAvailablereceiversResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaSenditemAvailablereceiversResponse.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdatePingRequestData.js b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdatePingRequestData.js new file mode 100644 index 0000000..1843d58 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdatePingRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaUpdatePingRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdatePlayerspawnRequestData.js b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdatePlayerspawnRequestData.js new file mode 100644 index 0000000..3db7a99 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdatePlayerspawnRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaUpdatePlayerspawnRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdateSetStatusRequestData.js b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdateSetStatusRequestData.js new file mode 100644 index 0000000..59fc557 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdateSetStatusRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaUpdateSetStatusRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdateSethostRequestData.js b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdateSethostRequestData.js new file mode 100644 index 0000000..06904d7 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/routes/update/IFikaUpdateSethostRequestData.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaUpdateSethostRequestData.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/IFikaHeadlessBase.js b/user/mods/fika-server/src/models/fika/websocket/IFikaHeadlessBase.js new file mode 100644 index 0000000..bf9a35f --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/IFikaHeadlessBase.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaHeadlessBase.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/IFikaNotificationBase.js b/user/mods/fika-server/src/models/fika/websocket/IFikaNotificationBase.js new file mode 100644 index 0000000..c764e2a --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/IFikaNotificationBase.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IFikaNotificationBase.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/headless/IHeadlessRequesterJoinRaid.js b/user/mods/fika-server/src/models/fika/websocket/headless/IHeadlessRequesterJoinRaid.js new file mode 100644 index 0000000..c40ec62 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/headless/IHeadlessRequesterJoinRaid.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IHeadlessRequesterJoinRaid.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/headless/IHeadlessStartRaid.js b/user/mods/fika-server/src/models/fika/websocket/headless/IHeadlessStartRaid.js new file mode 100644 index 0000000..7f5d2da --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/headless/IHeadlessStartRaid.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IHeadlessStartRaid.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/notifications/IPushNotification.js b/user/mods/fika-server/src/models/fika/websocket/notifications/IPushNotification.js new file mode 100644 index 0000000..73f1504 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/notifications/IPushNotification.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IPushNotification.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/notifications/IReceivedSentItemNotification.js b/user/mods/fika-server/src/models/fika/websocket/notifications/IReceivedSentItemNotification.js new file mode 100644 index 0000000..e0a16b1 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/notifications/IReceivedSentItemNotification.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IReceivedSentItemNotification.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/models/fika/websocket/notifications/IStartRaidNotification.js b/user/mods/fika-server/src/models/fika/websocket/notifications/IStartRaidNotification.js new file mode 100644 index 0000000..3b24c07 --- /dev/null +++ b/user/mods/fika-server/src/models/fika/websocket/notifications/IStartRaidNotification.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IStartRaidNotification.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/Overrider.js b/user/mods/fika-server/src/overrides/Overrider.js new file mode 100644 index 0000000..7cfef8a --- /dev/null +++ b/user/mods/fika-server/src/overrides/Overrider.js @@ -0,0 +1,40 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Overrider = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +let Overrider = class Overrider { + overrides; + constructor(overrides) { + this.overrides = overrides; + // empty + } + async override(container) { + for (const override of this.overrides) { + if (override.execute.constructor.name === "AsyncFunction") { + await override.execute(container); + } + else { + override.execute(container); + } + } + } +}; +exports.Overrider = Overrider; +exports.Overrider = Overrider = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.injectAll)("Overrides")), + __metadata("design:paramtypes", [Array]) +], Overrider); +//# sourceMappingURL=Overrider.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/Overrider.js.map b/user/mods/fika-server/src/overrides/Overrider.js.map index d693ab7..5a7bcf7 100644 --- a/user/mods/fika-server/src/overrides/Overrider.js.map +++ b/user/mods/fika-server/src/overrides/Overrider.js.map @@ -6,5 +6,5 @@ "Overrider.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;AAAA,sEAAqG;AAK9F,IAAM,SAAS,GAAf,MAAM,SAAS;IAC4B;IAA9C,YAA8C,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QAC/D,QAAQ;IACZ,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,SAA8B;QAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxD,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;CACJ,CAAA;AAdY,8BAAS;oBAAT,SAAS;IADrB,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,oBAAS,EAAC,WAAW,CAAC,CAAA;;GAD1B,SAAS,CAcrB" + "mappings": ";;;;;;;;;;;;;;;AAAA,wEAAuG;AAKhG,IAAM,SAAS,GAAf,MAAM,SAAS;IAC4B;IAA9C,YAA8C,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QAC/D,QAAQ;IACZ,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,SAA8B;QAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxD,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;CACJ,CAAA;AAdY,8BAAS;oBAAT,SAAS;IADrB,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,oBAAS,EAAC,WAAW,CAAC,CAAA;;GAD1B,SAAS,CAcrB" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js b/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js new file mode 100644 index 0000000..eaeb59a --- /dev/null +++ b/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js @@ -0,0 +1,53 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ClientLogCallbacksOverride = void 0; +const ClientLogCallbacks_1 = require("C:/snapshot/project/obj/callbacks/ClientLogCallbacks"); +const ClientLogController_1 = require("C:/snapshot/project/obj/controllers/ClientLogController"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Override_1 = require("../../di/Override"); +const FikaHeadlessHelper_1 = require("../../helpers/FikaHeadlessHelper"); +let ClientLogCallbacksOverride = class ClientLogCallbacksOverride extends Override_1.Override { + httpResponseUtil; + fikaHeadlessHelper; + clientLogController; + constructor(httpResponseUtil, fikaHeadlessHelper, clientLogController) { + super(); + this.httpResponseUtil = httpResponseUtil; + this.fikaHeadlessHelper = fikaHeadlessHelper; + this.clientLogController = clientLogController; + } + execute(container) { + container.afterResolution("ClientLogCallbacks", (_t, result) => { + result.clientLog = (url, info, sessionID) => { + if (this.fikaHeadlessHelper.isHeadlessClient(sessionID)) { + this.clientLogController.clientLog(info); + return this.httpResponseUtil.nullResponse(); + } + return ClientLogCallbacks_1.ClientLogCallbacks.prototype.clientLog.call(result, url, info, sessionID); + }; + }, { frequency: "Always" }); + } +}; +exports.ClientLogCallbacksOverride = ClientLogCallbacksOverride; +exports.ClientLogCallbacksOverride = ClientLogCallbacksOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaHeadlessHelper")), + __param(2, (0, tsyringe_1.inject)("ClientLogController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaHeadlessHelper_1.FikaHeadlessHelper !== "undefined" && FikaHeadlessHelper_1.FikaHeadlessHelper) === "function" ? _b : Object, typeof (_c = typeof ClientLogController_1.ClientLogController !== "undefined" && ClientLogController_1.ClientLogController) === "function" ? _c : Object]) +], ClientLogCallbacksOverride); +//# sourceMappingURL=ClientLogCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js.map b/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js.map index 27a1314..49ea474 100644 --- a/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js.map +++ b/user/mods/fika-server/src/overrides/callbacks/ClientLogCallbacks.js.map @@ -6,5 +6,5 @@ "ClientLogCallbacks.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,2FAAwF;AACxF,+FAA4F;AAG5F,mFAAgF;AAChF,sEAAkG;AAClG,gDAA6C;AAC7C,yEAAsE;AAG/D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,mBAAQ;IAEV;IACE;IACC;IAH7C,YAC0C,gBAAkC,EAChC,kBAAsC,EACrC,mBAAwC;QAEjF,KAAK,EAAE,CAAC;QAJ8B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAGrF,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,oBAAoB,EACpB,CAAC,EAAE,EAAE,MAA0B,EAAE,EAAE;YAC/B,MAAM,CAAC,SAAS,GAAG,CAAC,GAAW,EAAE,IAAuB,EAAE,SAAiB,EAAqB,EAAE;gBAC9F,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEzC,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBAChD,CAAC;gBAED,OAAO,uCAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AA1BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAF0B,mCAAgB,oBAAhB,mCAAgB,oDACZ,uCAAkB,oBAAlB,uCAAkB,oDAChB,yCAAmB,oBAAnB,yCAAmB;GAJ5E,0BAA0B,CA0BtC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,6FAA0F;AAC1F,iGAA8F;AAG9F,qFAAkF;AAClF,wEAAoG;AACpG,gDAA6C;AAC7C,yEAAsE;AAG/D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,mBAAQ;IAEV;IACE;IACC;IAH7C,YAC0C,gBAAkC,EAChC,kBAAsC,EACrC,mBAAwC;QAEjF,KAAK,EAAE,CAAC;QAJ8B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAGrF,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,oBAAoB,EACpB,CAAC,EAAE,EAAE,MAA0B,EAAE,EAAE;YAC/B,MAAM,CAAC,SAAS,GAAG,CAAC,GAAW,EAAE,IAAuB,EAAE,SAAiB,EAAqB,EAAE;gBAC9F,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEzC,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBAChD,CAAC;gBAED,OAAO,uCAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AA1BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAF0B,mCAAgB,oBAAhB,mCAAgB,oDACZ,uCAAkB,oBAAlB,uCAAkB,oDAChB,yCAAmB,oBAAnB,yCAAmB;GAJ5E,0BAA0B,CA0BtC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js b/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js new file mode 100644 index 0000000..23cec48 --- /dev/null +++ b/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js @@ -0,0 +1,78 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DialogueCallbacksOverride = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpResponseUtil_1 = require("C:/snapshot/project/obj/utils/HttpResponseUtil"); +const FikaDialogueController_1 = require("../../controllers/FikaDialogueController"); +const Override_1 = require("../../di/Override"); +let DialogueCallbacksOverride = class DialogueCallbacksOverride extends Override_1.Override { + httpResponseUtil; + fikaDialogueController; + constructor(httpResponseUtil, fikaDialogueController) { + super(); + this.httpResponseUtil = httpResponseUtil; + this.fikaDialogueController = fikaDialogueController; + } + execute(container) { + container.afterResolution("DialogueCallbacks", (_t, result) => { + result.listOutbox = (_url, _info, sessionID) => { + return this.httpResponseUtil.getBody(this.fikaDialogueController.listOutbox(sessionID)); + }; + result.listInbox = (_url, _info, sessionID) => { + return this.httpResponseUtil.getBody(this.fikaDialogueController.listInbox(sessionID)); + }; + result.sendFriendRequest = (_url, info, sessionID) => { + return this.httpResponseUtil.getBody(this.fikaDialogueController.sendFriendRequest(sessionID, info.to)); + }; + result.acceptAllFriendRequests = (_url, _info, sessionID) => { + this.fikaDialogueController.acceptAllFriendRequests(sessionID); + return this.httpResponseUtil.nullResponse(); + }; + result.acceptFriendRequest = (_url, info, sessionID) => { + this.fikaDialogueController.acceptFriendRequest(info.profileId, sessionID); + return this.httpResponseUtil.getBody(true); + }; + result.declineFriendRequest = (_url, info, sessionID) => { + this.fikaDialogueController.declineFriendRequest(info.profileId, sessionID); + return this.httpResponseUtil.getBody(true); + }; + result.cancelFriendRequest = (_url, info, sessionID) => { + this.fikaDialogueController.cancelFriendRequest(sessionID, info.profileId); + return this.httpResponseUtil.getBody(true); + }; + result.deleteFriend = (_url, info, sessionID) => { + this.fikaDialogueController.deleteFriend(sessionID, info.friend_id); + return this.httpResponseUtil.nullResponse(); + }; + result.ignoreFriend = (_url, info, sessionID) => { + this.fikaDialogueController.ignoreFriend(sessionID, info.uid); + return this.httpResponseUtil.nullResponse(); + }; + result.unIgnoreFriend = (_url, info, sessionID) => { + this.fikaDialogueController.unIgnoreFriend(sessionID, info.uid); + return this.httpResponseUtil.nullResponse(); + }; + }, { frequency: "Always" }); + } +}; +exports.DialogueCallbacksOverride = DialogueCallbacksOverride; +exports.DialogueCallbacksOverride = DialogueCallbacksOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpResponseUtil")), + __param(1, (0, tsyringe_1.inject)("FikaDialogueController")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpResponseUtil_1.HttpResponseUtil !== "undefined" && HttpResponseUtil_1.HttpResponseUtil) === "function" ? _a : Object, typeof (_b = typeof FikaDialogueController_1.FikaDialogueController !== "undefined" && FikaDialogueController_1.FikaDialogueController) === "function" ? _b : Object]) +], DialogueCallbacksOverride); +//# sourceMappingURL=DialogueCallbacks.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js.map b/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js.map index f5dc507..2b07aa8 100644 --- a/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js.map +++ b/user/mods/fika-server/src/overrides/callbacks/DialogueCallbacks.js.map @@ -6,5 +6,5 @@ "DialogueCallbacks.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/controllers/AchievementController.js b/user/mods/fika-server/src/overrides/controllers/AchievementController.js new file mode 100644 index 0000000..61b0cbc --- /dev/null +++ b/user/mods/fika-server/src/overrides/controllers/AchievementController.js @@ -0,0 +1,40 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AchievementControllerOverride = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaAchievementController_1 = require("../../controllers/FikaAchievementController"); +const Override_1 = require("../../di/Override"); +let AchievementControllerOverride = class AchievementControllerOverride extends Override_1.Override { + fikaAchievementController; + constructor(fikaAchievementController) { + super(); + this.fikaAchievementController = fikaAchievementController; + } + execute(container) { + container.afterResolution("AchievementController", (_t, result) => { + result.getAchievementStatistics = (sessionID) => { + return this.fikaAchievementController.getAchievementStatistics(sessionID); + }; + }, { frequency: "Always" }); + } +}; +exports.AchievementControllerOverride = AchievementControllerOverride; +exports.AchievementControllerOverride = AchievementControllerOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaAchievementController")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaAchievementController_1.FikaAchievementController !== "undefined" && FikaAchievementController_1.FikaAchievementController) === "function" ? _a : Object]) +], AchievementControllerOverride); +//# sourceMappingURL=AchievementController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/controllers/AchievementController.js.map b/user/mods/fika-server/src/overrides/controllers/AchievementController.js.map index d02b8ac..febbb13 100644 --- a/user/mods/fika-server/src/overrides/controllers/AchievementController.js.map +++ b/user/mods/fika-server/src/overrides/controllers/AchievementController.js.map @@ -6,5 +6,5 @@ "AchievementController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAAkG;AAKlG,2FAAwF;AACxF,gDAA6C;AAGtC,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,mBAAQ;IACI;IAA3D,YAA2D,yBAAoD;QAC3G,KAAK,EAAE,CAAC;QAD+C,8BAAyB,GAAzB,yBAAyB,CAA2B;IAE/G,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,uBAAuB,EACvB,CAAC,EAAE,EAAE,MAA6B,EAAE,EAAE;YAClC,MAAM,CAAC,wBAAwB,GAAG,CAAC,SAAiB,EAAkC,EAAE;gBACpF,OAAO,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AAhBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,2BAA2B,CAAC,CAAA;yDAAsC,qDAAyB,oBAAzB,qDAAyB;GADtG,6BAA6B,CAgBzC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAAoG;AAKpG,2FAAwF;AACxF,gDAA6C;AAGtC,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,mBAAQ;IACI;IAA3D,YAA2D,yBAAoD;QAC3G,KAAK,EAAE,CAAC;QAD+C,8BAAyB,GAAzB,yBAAyB,CAA2B;IAE/G,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,uBAAuB,EACvB,CAAC,EAAE,EAAE,MAA6B,EAAE,EAAE;YAClC,MAAM,CAAC,wBAAwB,GAAG,CAAC,SAAiB,EAAkC,EAAE;gBACpF,OAAO,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AAhBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,2BAA2B,CAAC,CAAA;yDAAsC,qDAAyB,oBAAzB,qDAAyB;GADtG,6BAA6B,CAgBzC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/controllers/DialogueController.js b/user/mods/fika-server/src/overrides/controllers/DialogueController.js new file mode 100644 index 0000000..8e18468 --- /dev/null +++ b/user/mods/fika-server/src/overrides/controllers/DialogueController.js @@ -0,0 +1,43 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DialogueControllerOverride = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaDialogueController_1 = require("../../controllers/FikaDialogueController"); +const Override_1 = require("../../di/Override"); +let DialogueControllerOverride = class DialogueControllerOverride extends Override_1.Override { + fikaDialogueController; + constructor(fikaDialogueController) { + super(); + this.fikaDialogueController = fikaDialogueController; + } + execute(container) { + container.afterResolution("DialogueController", (_t, result) => { + result.getFriendList = (sessionID) => { + return this.fikaDialogueController.getFriendList(sessionID); + }; + result.sendMessage = (sessionId, request) => { + return this.fikaDialogueController.sendMessage(sessionId, request); + }; + }, { frequency: "Always" }); + } +}; +exports.DialogueControllerOverride = DialogueControllerOverride; +exports.DialogueControllerOverride = DialogueControllerOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaDialogueController")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaDialogueController_1.FikaDialogueController !== "undefined" && FikaDialogueController_1.FikaDialogueController) === "function" ? _a : Object]) +], DialogueControllerOverride); +//# sourceMappingURL=DialogueController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/controllers/DialogueController.js.map b/user/mods/fika-server/src/overrides/controllers/DialogueController.js.map index 906f94a..61eb2c5 100644 --- a/user/mods/fika-server/src/overrides/controllers/DialogueController.js.map +++ b/user/mods/fika-server/src/overrides/controllers/DialogueController.js.map @@ -6,5 +6,5 @@ "DialogueController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAAkG;AAMlG,qFAAkF;AAClF,gDAA6C;AAGtC,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,mBAAQ;IACI;IAAxD,YAAwD,sBAA8C;QAClG,KAAK,EAAE,CAAC;QAD4C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAEtG,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,oBAAoB,EACpB,CAAC,EAAE,EAAE,MAA0B,EAAE,EAAE;YAC/B,MAAM,CAAC,aAAa,GAAG,CAAC,SAAiB,EAA8B,EAAE;gBACrE,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC,CAAC;YAEF,MAAM,CAAC,WAAW,GAAG,CAAC,SAAiB,EAAE,OAA4B,EAAU,EAAE;gBAC7E,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AApBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDAAmC,+CAAsB,oBAAtB,+CAAsB;GAD7F,0BAA0B,CAoBtC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAAoG;AAMpG,qFAAkF;AAClF,gDAA6C;AAGtC,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,mBAAQ;IACI;IAAxD,YAAwD,sBAA8C;QAClG,KAAK,EAAE,CAAC;QAD4C,2BAAsB,GAAtB,sBAAsB,CAAwB;IAEtG,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,oBAAoB,EACpB,CAAC,EAAE,EAAE,MAA0B,EAAE,EAAE;YAC/B,MAAM,CAAC,aAAa,GAAG,CAAC,SAAiB,EAA8B,EAAE;gBACrE,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC,CAAC;YAEF,MAAM,CAAC,WAAW,GAAG,CAAC,SAAiB,EAAE,OAA4B,EAAU,EAAE;gBAC7E,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AApBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,wBAAwB,CAAC,CAAA;yDAAmC,+CAAsB,oBAAtB,+CAAsB;GAD7F,0BAA0B,CAoBtC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/controllers/ProfileController.js b/user/mods/fika-server/src/overrides/controllers/ProfileController.js new file mode 100644 index 0000000..09a797c --- /dev/null +++ b/user/mods/fika-server/src/overrides/controllers/ProfileController.js @@ -0,0 +1,72 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ProfileControllerOverride = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const ProfileHelper_1 = require("C:/snapshot/project/obj/helpers/ProfileHelper"); +const Override_1 = require("../../di/Override"); +const FikaConfig_1 = require("../../utils/FikaConfig"); +let ProfileControllerOverride = class ProfileControllerOverride extends Override_1.Override { + profileHelper; + fikaConfig; + constructor(profileHelper, fikaConfig) { + super(); + this.profileHelper = profileHelper; + this.fikaConfig = fikaConfig; + } + execute(container) { + const fikaConfig = this.fikaConfig.getConfig(); + container.afterResolution("ProfileController", (_t, result) => { + if (!fikaConfig.server.launcherListAllProfiles) { + result.getMiniProfiles = () => { + return []; + }; + } + result.getFriends = (info, _sessionID) => { + const searchNicknameLowerCase = info.nickname.toLowerCase(); + const profiles = this.profileHelper.getProfiles(); + const matches = []; + for (const profile of Object.values(profiles)) { + if (profile.info?.password === "fika-headless") + continue; + if (profile.characters?.pmc?.Info) { + if (profile.characters.pmc.Info.Nickname.toLowerCase().startsWith(searchNicknameLowerCase)) { + matches.push({ + _id: profile.characters.pmc._id, + aid: profile.characters.pmc.aid, + Info: { + Nickname: profile.characters.pmc.Info.Nickname, + Side: profile.characters.pmc.Info.Side, + Level: profile.characters.pmc.Info.Level, + MemberCategory: profile.characters.pmc.Info.MemberCategory, + SelectedMemberCategory: profile.characters.pmc.Info.SelectedMemberCategory, + }, + }); + } + } + } + return matches; + }; + }, { frequency: "Always" }); + } +}; +exports.ProfileControllerOverride = ProfileControllerOverride; +exports.ProfileControllerOverride = ProfileControllerOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("ProfileHelper")), + __param(1, (0, tsyringe_1.inject)("FikaConfig")), + __metadata("design:paramtypes", [typeof (_a = typeof ProfileHelper_1.ProfileHelper !== "undefined" && ProfileHelper_1.ProfileHelper) === "function" ? _a : Object, typeof (_b = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _b : Object]) +], ProfileControllerOverride); +//# sourceMappingURL=ProfileController.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/controllers/ProfileController.js.map b/user/mods/fika-server/src/overrides/controllers/ProfileController.js.map index c5cfdf5..33168c3 100644 --- a/user/mods/fika-server/src/overrides/controllers/ProfileController.js.map +++ b/user/mods/fika-server/src/overrides/controllers/ProfileController.js.map @@ -6,5 +6,5 @@ "ProfileController.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAAkG;AAGlG,+EAA4E;AAK5E,gDAA6C;AAC7C,uDAAoD;AAG7C,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,mBAAQ;IAEZ;IACH;IAFpC,YACuC,aAA4B,EAC/B,UAAsB;QAEtD,KAAK,EAAE,CAAC;QAH2B,kBAAa,GAAb,aAAa,CAAe;QAC/B,eAAU,GAAV,UAAU,CAAY;IAG1D,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAE/C,SAAS,CAAC,eAAe,CACrB,mBAAmB,EACnB,CAAC,EAAE,EAAE,MAAyB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;gBAC7C,MAAM,CAAC,eAAe,GAAG,GAAmB,EAAE;oBAC1C,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC;YACN,CAAC;YAED,MAAM,CAAC,UAAU,GAAG,CAAC,IAA8B,EAAE,UAAkB,EAA2B,EAAE;gBAChG,MAAM,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBAElD,MAAM,OAAO,GAA4B,EAAE,CAAC;gBAE5C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,KAAK,eAAe;wBAAE,SAAS;oBAEzD,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;wBAChC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;4BACzF,OAAO,CAAC,IAAI,CAAC;gCACT,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;gCAC/B,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;gCAC/B,IAAI,EAAE;oCACF,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;oCAC9C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;oCACtC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;oCACxC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc;oCAC1D,sBAAsB,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB;iCAC7E;6BACJ,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,OAAO,OAAO,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AArDY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,eAAe,CAAC,CAAA;IACvB,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;yDAD6B,6BAAa,oBAAb,6BAAa,oDACnB,uBAAU,oBAAV,uBAAU;GAHjD,yBAAyB,CAqDrC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAAoG;AAGpG,iFAA8E;AAK9E,gDAA6C;AAC7C,uDAAoD;AAG7C,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,mBAAQ;IAEZ;IACH;IAFpC,YACuC,aAA4B,EAC/B,UAAsB;QAEtD,KAAK,EAAE,CAAC;QAH2B,kBAAa,GAAb,aAAa,CAAe;QAC/B,eAAU,GAAV,UAAU,CAAY;IAG1D,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAE/C,SAAS,CAAC,eAAe,CACrB,mBAAmB,EACnB,CAAC,EAAE,EAAE,MAAyB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;gBAC7C,MAAM,CAAC,eAAe,GAAG,GAAmB,EAAE;oBAC1C,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC;YACN,CAAC;YAED,MAAM,CAAC,UAAU,GAAG,CAAC,IAA8B,EAAE,UAAkB,EAA2B,EAAE;gBAChG,MAAM,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBAElD,MAAM,OAAO,GAA4B,EAAE,CAAC;gBAE5C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,KAAK,eAAe;wBAAE,SAAS;oBAEzD,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;wBAChC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;4BACzF,OAAO,CAAC,IAAI,CAAC;gCACT,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;gCAC/B,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;gCAC/B,IAAI,EAAE;oCACF,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;oCAC9C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;oCACtC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;oCACxC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc;oCAC1D,sBAAsB,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB;iCAC7E;6BACJ,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,OAAO,OAAO,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AArDY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,eAAe,CAAC,CAAA;IACvB,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;yDAD6B,6BAAa,oBAAb,6BAAa,oDACnB,uBAAU,oBAAV,uBAAU;GAHjD,yBAAyB,CAqDrC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/other/Locales.js b/user/mods/fika-server/src/overrides/other/Locales.js new file mode 100644 index 0000000..ca87699 --- /dev/null +++ b/user/mods/fika-server/src/overrides/other/Locales.js @@ -0,0 +1,51 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LocalesOverride = void 0; +const node_path_1 = __importDefault(require("node:path")); +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const DatabaseServer_1 = require("C:/snapshot/project/obj/servers/DatabaseServer"); +const ImporterUtil_1 = require("C:/snapshot/project/obj/utils/ImporterUtil"); +const Override_1 = require("../../di/Override"); +const FikaConfig_1 = require("../../utils/FikaConfig"); +let LocalesOverride = class LocalesOverride extends Override_1.Override { + databaseServer; + importerUtil; + fikaConfig; + constructor(databaseServer, importerUtil, fikaConfig) { + super(); + this.databaseServer = databaseServer; + this.importerUtil = importerUtil; + this.fikaConfig = fikaConfig; + } + async execute(_container) { + const database = this.databaseServer.getTables(); + const databasePath = node_path_1.default.join(this.fikaConfig.getModPath(), "assets/database/"); + const locales = await this.importerUtil.loadAsync(node_path_1.default.join(databasePath, "locales/"), databasePath); + database.locales = { ...database.locales, ...locales }; + } +}; +exports.LocalesOverride = LocalesOverride; +exports.LocalesOverride = LocalesOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("DatabaseServer")), + __param(1, (0, tsyringe_1.inject)("ImporterUtil")), + __param(2, (0, tsyringe_1.inject)("FikaConfig")), + __metadata("design:paramtypes", [typeof (_a = typeof DatabaseServer_1.DatabaseServer !== "undefined" && DatabaseServer_1.DatabaseServer) === "function" ? _a : Object, typeof (_b = typeof ImporterUtil_1.ImporterUtil !== "undefined" && ImporterUtil_1.ImporterUtil) === "function" ? _b : Object, typeof (_c = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _c : Object]) +], LocalesOverride); +//# sourceMappingURL=Locales.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/other/Locales.js.map b/user/mods/fika-server/src/overrides/other/Locales.js.map index aa593d1..eb93b66 100644 --- a/user/mods/fika-server/src/overrides/other/Locales.js.map +++ b/user/mods/fika-server/src/overrides/other/Locales.js.map @@ -6,5 +6,5 @@ "Locales.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,sEAAkG;AAGlG,iFAA8E;AAC9E,2EAAwE;AAExE,gDAA6C;AAC7C,uDAAoD;AAG7C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,mBAAQ;IAED;IACF;IACF;IAHpC,YACwC,cAA8B,EAChC,YAA0B,EAC5B,UAAsB;QAEtD,KAAK,EAAE,CAAC;QAJ4B,mBAAc,GAAd,cAAc,CAAgB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC5B,eAAU,GAAV,UAAU,CAAY;IAG1D,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,UAA+B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAc,mBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QAClH,QAAQ,CAAC,OAAO,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3D,CAAC;CACJ,CAAA;AAhBY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,cAAc,CAAC,CAAA;IACtB,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;yDAF+B,+BAAc,oBAAd,+BAAc,oDAClB,2BAAY,oBAAZ,2BAAY,oDAChB,uBAAU,oBAAV,uBAAU;GAJjD,eAAe,CAgB3B" + "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,wEAAoG;AAGpG,mFAAgF;AAChF,6EAA0E;AAE1E,gDAA6C;AAC7C,uDAAoD;AAG7C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,mBAAQ;IAED;IACF;IACF;IAHpC,YACwC,cAA8B,EAChC,YAA0B,EAC5B,UAAsB;QAEtD,KAAK,EAAE,CAAC;QAJ4B,mBAAc,GAAd,cAAc,CAAgB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC5B,eAAU,GAAV,UAAU,CAAY;IAG1D,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,UAA+B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAc,mBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QAClH,QAAQ,CAAC,OAAO,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3D,CAAC;CACJ,CAAA;AAhBY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,cAAc,CAAC,CAAA;IACtB,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;yDAF+B,+BAAc,oBAAd,+BAAc,oDAClB,2BAAY,oBAAZ,2BAAY,oDAChB,uBAAU,oBAAV,uBAAU;GAJjD,eAAe,CAgB3B" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/routers/HttpRouter.js b/user/mods/fika-server/src/overrides/routers/HttpRouter.js new file mode 100644 index 0000000..8e5bc1f --- /dev/null +++ b/user/mods/fika-server/src/overrides/routers/HttpRouter.js @@ -0,0 +1,51 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HttpRouterOverride = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const HttpServerHelper_1 = require("C:/snapshot/project/obj/helpers/HttpServerHelper"); +const Override_1 = require("../../di/Override"); +/** + * This override is essential for setups where the backendIp or NAT port mapping differs from the SPT server’s backend port. + * Without it, SPT constructs an incorrect backend URL, causing connection issues (e.g., using 0.0.0.0 instead of the correct address). + */ +let HttpRouterOverride = class HttpRouterOverride extends Override_1.Override { + httpServerHelper; + constructor(httpServerHelper) { + super(); + this.httpServerHelper = httpServerHelper; + } + execute(container) { + // We need access to the full `req` object, so we need to hijack the getResponse method + container.afterResolution("HttpRouter", (_, result) => { + const originalGetResponse = result.getResponse; + result.getResponse = async (req, info, sessionID) => { + let response = (await originalGetResponse.apply(result, [req, info, sessionID])); + // if the response contains host, replace host with ours + if (req.headers?.host) { + response = response.replaceAll(this.httpServerHelper.buildUrl(), req.headers.host); + } + return response; + }; + }, { frequency: "Always" }); + } +}; +exports.HttpRouterOverride = HttpRouterOverride; +exports.HttpRouterOverride = HttpRouterOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("HttpServerHelper")), + __metadata("design:paramtypes", [typeof (_a = typeof HttpServerHelper_1.HttpServerHelper !== "undefined" && HttpServerHelper_1.HttpServerHelper) === "function" ? _a : Object]) +], HttpRouterOverride); +//# sourceMappingURL=HttpRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/routers/HttpRouter.js.map b/user/mods/fika-server/src/overrides/routers/HttpRouter.js.map index 39690a5..94f3c11 100644 --- a/user/mods/fika-server/src/overrides/routers/HttpRouter.js.map +++ b/user/mods/fika-server/src/overrides/routers/HttpRouter.js.map @@ -6,5 +6,5 @@ "HttpRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AACA,sEAAkG;AAElG,qFAAkF;AAGlF,gDAA6C;AAE7C;;;GAGG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,mBAAQ;IACM;IAAlD,YAAkD,gBAAkC;QAChF,KAAK,EAAE,CAAC;QADsC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAEpF,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,uFAAuF;QACvF,SAAS,CAAC,eAAe,CACrB,YAAY,EACZ,CAAC,CAAC,EAAE,MAAkB,EAAE,EAAE;YACtB,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;YAE/C,MAAM,CAAC,WAAW,GAAG,KAAK,EAAE,GAAoB,EAAE,IAAS,EAAE,SAAiB,EAAmB,EAAE;gBAC/F,IAAI,QAAQ,GAAG,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAW,CAAC;gBAE3F,wDAAwD;gBACxD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACpB,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvF,CAAC;gBAED,OAAO,QAAQ,CAAC;YACpB,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AA1BY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;yDAA6B,mCAAgB,oBAAhB,mCAAgB;GAD3E,kBAAkB,CA0B9B" + "mappings": ";;;;;;;;;;;;;;;;AACA,wEAAoG;AAEpG,uFAAoF;AAGpF,gDAA6C;AAE7C;;;GAGG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,mBAAQ;IACM;IAAlD,YAAkD,gBAAkC;QAChF,KAAK,EAAE,CAAC;QADsC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAEpF,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,uFAAuF;QACvF,SAAS,CAAC,eAAe,CACrB,YAAY,EACZ,CAAC,CAAC,EAAE,MAAkB,EAAE,EAAE;YACtB,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;YAE/C,MAAM,CAAC,WAAW,GAAG,KAAK,EAAE,GAAoB,EAAE,IAAS,EAAE,SAAiB,EAAmB,EAAE;gBAC/F,IAAI,QAAQ,GAAG,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAW,CAAC;gBAE3F,wDAAwD;gBACxD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACpB,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvF,CAAC;gBAED,OAAO,QAAQ,CAAC;YACpB,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AA1BY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;yDAA6B,mCAAgB,oBAAhB,mCAAgB;GAD3E,kBAAkB,CA0B9B" } \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js b/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js new file mode 100644 index 0000000..8bd4a75 --- /dev/null +++ b/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js @@ -0,0 +1,137 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f, _g; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LocationLifecycleServiceOverride = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const ApplicationContext_1 = require("C:/snapshot/project/obj/context/ApplicationContext"); +const ContextVariableType_1 = require("C:/snapshot/project/obj/context/ContextVariableType"); +const ProfileHelper_1 = require("C:/snapshot/project/obj/helpers/ProfileHelper"); +const DatabaseService_1 = require("C:/snapshot/project/obj/services/DatabaseService"); +const LocationLifecycleService_1 = require("C:/snapshot/project/obj/services/LocationLifecycleService"); +const TimeUtil_1 = require("C:/snapshot/project/obj/utils/TimeUtil"); +const TransitionType_1 = require("C:/snapshot/project/obj/models/enums/TransitionType"); +const Override_1 = require("../../di/Override"); +const FikaInsuranceService_1 = require("../../services/FikaInsuranceService"); +const FikaMatchService_1 = require("../../services/FikaMatchService"); +let LocationLifecycleServiceOverride = class LocationLifecycleServiceOverride extends Override_1.Override { + fikaInsuranceService; + databaseService; + profileHelper; + fikaMatchService; + locationLifecycleService; + applicationContext; + timeUtil; + constructor(fikaInsuranceService, databaseService, profileHelper, fikaMatchService, locationLifecycleService, applicationContext, timeUtil) { + super(); + this.fikaInsuranceService = fikaInsuranceService; + this.databaseService = databaseService; + this.profileHelper = profileHelper; + this.fikaMatchService = fikaMatchService; + this.locationLifecycleService = locationLifecycleService; + this.applicationContext = applicationContext; + this.timeUtil = timeUtil; + } + execute(container) { + container.afterResolution("LocationLifecycleService", (_t, result) => { + result.startLocalRaid = (sessionId, request) => { + let locationLoot; + const matchId = this.fikaMatchService.getMatchIdByProfile(sessionId); + // Stops TS from throwing a tantrum :) + const lifecycleService = this.locationLifecycleService; + if (matchId === undefined) { + // player isn't in a Fika match, generate new loot + locationLoot = lifecycleService.generateLocationAndLoot(request.location); + } + else { + // player is in a Fika match, use match location loot and regen if transit + const match = this.fikaMatchService.getMatch(matchId); + if (matchId === sessionId) { + match.raids++; + if (match.raids > 1) { + match.locationData = lifecycleService.generateLocationAndLoot(request.location); + } + } + locationLoot = match.locationData; + } + const playerProfile = this.profileHelper.getPmcProfile(sessionId); + const result = { + serverId: `${request.location}.${request.playerSide}.${this.timeUtil.getTimestamp()}`, + serverSettings: this.databaseService.getLocationServices(), + profile: { insuredItems: playerProfile.InsuredItems }, + locationLoot: locationLoot, + transition: { + transitionType: TransitionType_1.TransitionType.Common, + transitionRaidId: "66f5750951530ca5ae09876d", + transitionCount: 0, + visitedLocations: [], + }, + }; + // Only has value when transitioning into map from previous one + if (request.transition) { + result.transition = request.transition; + } + // Get data stored at end of previous raid (if any) + const transitionData = this.applicationContext.getLatestValue(ContextVariableType_1.ContextVariableType.TRANSIT_INFO)?.getValue(); + if (transitionData) { + result.transition.transitionRaidId = transitionData.transitionRaidId; + result.transition.transitionCount += 1; + result.transition.visitedLocations.push(transitionData.sptLastVisitedLocation); + // Complete, clean up + this.applicationContext.clearValues(ContextVariableType_1.ContextVariableType.TRANSIT_INFO); + } + if (typeof matchId === "undefined" || sessionId === matchId) { + // Apply changes from pmcConfig to bot hostility values + lifecycleService.adjustBotHostilitySettings(result.locationLoot); + lifecycleService.adjustExtracts(request.playerSide, request.location, result.locationLoot); + // Clear bot cache ready for a fresh raid + lifecycleService.botGenerationCacheService.clearStoredBots(); + lifecycleService.botNameService.clearNameCache(); + } + return result; + }; + result.endLocalRaid = (sessionId, request) => { + var isSpectator = false; + // Get match id from player session id + const matchId = this.fikaMatchService.getMatchIdByPlayer(sessionId); + // Find player that exited the raid + const player = this.fikaMatchService.getPlayerInMatch(matchId, sessionId); + if (player !== undefined) { + if (player.isSpectator) { + isSpectator = true; + } + } + this.fikaInsuranceService.onEndLocalRaidRequest(sessionId, this.fikaInsuranceService.getMatchId(sessionId), request); + // Execute the original method if not a spectator + if (!isSpectator) { + //Prototype callback because apparently setting a original callback before overriding doesn't allow some stuff to work. + LocationLifecycleService_1.LocationLifecycleService.prototype.endLocalRaid.call(result, sessionId, request); + } + }; + }, { frequency: "Always" }); + } +}; +exports.LocationLifecycleServiceOverride = LocationLifecycleServiceOverride; +exports.LocationLifecycleServiceOverride = LocationLifecycleServiceOverride = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaInsuranceService")), + __param(1, (0, tsyringe_1.inject)("DatabaseService")), + __param(2, (0, tsyringe_1.inject)("ProfileHelper")), + __param(3, (0, tsyringe_1.inject)("FikaMatchService")), + __param(4, (0, tsyringe_1.inject)("LocationLifecycleService")), + __param(5, (0, tsyringe_1.inject)("ApplicationContext")), + __param(6, (0, tsyringe_1.inject)("TimeUtil")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaInsuranceService_1.FikaInsuranceService !== "undefined" && FikaInsuranceService_1.FikaInsuranceService) === "function" ? _a : Object, typeof (_b = typeof DatabaseService_1.DatabaseService !== "undefined" && DatabaseService_1.DatabaseService) === "function" ? _b : Object, typeof (_c = typeof ProfileHelper_1.ProfileHelper !== "undefined" && ProfileHelper_1.ProfileHelper) === "function" ? _c : Object, typeof (_d = typeof FikaMatchService_1.FikaMatchService !== "undefined" && FikaMatchService_1.FikaMatchService) === "function" ? _d : Object, typeof (_e = typeof LocationLifecycleService_1.LocationLifecycleService !== "undefined" && LocationLifecycleService_1.LocationLifecycleService) === "function" ? _e : Object, typeof (_f = typeof ApplicationContext_1.ApplicationContext !== "undefined" && ApplicationContext_1.ApplicationContext) === "function" ? _f : Object, typeof (_g = typeof TimeUtil_1.TimeUtil !== "undefined" && TimeUtil_1.TimeUtil) === "function" ? _g : Object]) +], LocationLifecycleServiceOverride); +//# sourceMappingURL=LocationLifecycleService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js.map b/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js.map index 4951b98..a32930d 100644 --- a/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js.map +++ b/user/mods/fika-server/src/overrides/services/LocationLifecycleService.js.map @@ -6,5 +6,5 @@ "LocationLifecycleService.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAAkG;AAElG,yFAAsF;AACtF,2FAAwF;AACxF,+EAA4E;AAO5E,oFAAiF;AACjF,sGAAmG;AACnG,mEAAgE;AAEhE,sFAAmF;AACnF,gDAA6C;AAC7C,8EAA2E;AAC3E,sEAAmE;AAG5D,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,mBAAQ;IAEZ;IACL;IACF;IACG;IACQ;IACN;IACV;IAPlC,YAC8C,oBAA0C,EAC/C,eAAgC,EAClC,aAA4B,EACzB,gBAAkC,EAC1B,wBAAkD,EACxD,kBAAsC,EAChD,QAAkB;QAEhD,KAAK,EAAE,CAAC;QARkC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC/C,oBAAe,GAAf,eAAe,CAAiB;QAClC,kBAAa,GAAb,aAAa,CAAe;QACzB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC1B,6BAAwB,GAAxB,wBAAwB,CAA0B;QACxD,uBAAkB,GAAlB,kBAAkB,CAAoB;QAChD,aAAQ,GAAR,QAAQ,CAAU;IAGpD,CAAC;IAEM,OAAO,CAAC,SAA8B;QACzC,SAAS,CAAC,eAAe,CACrB,0BAA0B,EAC1B,CAAC,EAAE,EAAE,MAAgC,EAAE,EAAE;YACrC,MAAM,CAAC,cAAc,GAAG,CAAC,SAAiB,EAAE,OAAmC,EAA+B,EAAE;gBAC5G,IAAI,YAA2B,CAAC;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBACrE,sCAAsC;gBACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAA+B,CAAC;gBAE9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACxB,kDAAkD;oBAClD,YAAY,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACJ,0EAA0E;oBAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBACxB,KAAK,CAAC,KAAK,EAAE,CAAC;wBACd,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;4BAClB,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACpF,CAAC;oBACL,CAAC;oBACD,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;gBACtC,CAAC;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAElE,MAAM,MAAM,GAAgC;oBACxC,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE;oBACrF,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE;oBAC1D,OAAO,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE;oBACrD,YAAY,EAAE,YAAY;oBAC1B,UAAU,EAAE;wBACR,cAAc,EAAE,+BAAc,CAAC,MAAM;wBACrC,gBAAgB,EAAE,0BAA0B;wBAC5C,eAAe,EAAE,CAAC;wBAClB,gBAAgB,EAAE,EAAE;qBACvB;iBAC2B,CAAC;gBAEjC,+DAA+D;gBAC/D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBAC3C,CAAC;gBAED,mDAAmD;gBACnD,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,yCAAmB,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAoB,CAAC;gBAC9H,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,CAAC,UAAU,CAAC,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAC;oBACrE,MAAM,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,CAAC;oBACvC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;oBAE/E,qBAAqB;oBACrB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,yCAAmB,CAAC,YAAY,CAAC,CAAC;gBAC1E,CAAC;gBAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oBAC1D,uDAAuD;oBACvD,gBAAgB,CAAC,0BAA0B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAEjE,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;oBAE3F,yCAAyC;oBACzC,gBAAgB,CAAC,yBAAyB,CAAC,eAAe,EAAE,CAAC;oBAC7D,gBAAgB,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;gBACrD,CAAC;gBAED,OAAO,MAAM,CAAC;YAClB,CAAC,CAAC;YACF,MAAM,CAAC,YAAY,GAAG,CAAC,SAAiB,EAAE,OAAiC,EAAQ,EAAE;gBACjF,IAAI,WAAW,GAAY,KAAK,CAAC;gBAEjC,sCAAsC;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAEpE,mCAAmC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAE1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBACrB,WAAW,GAAG,IAAI,CAAC;oBACvB,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;gBAErH,iDAAiD;gBACjD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,uHAAuH;oBACvH,mDAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACrF,CAAC;YACL,CAAC,CAAC;QACN,CAAC,EACD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ,CAAA;AA7GY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,sBAAsB,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,iBAAM,EAAC,eAAe,CAAC,CAAA;IACvB,WAAA,IAAA,iBAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,iBAAM,EAAC,0BAA0B,CAAC,CAAA;IAClC,WAAA,IAAA,iBAAM,EAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAM,EAAC,UAAU,CAAC,CAAA;yDAN6C,2CAAoB,oBAApB,2CAAoB,oDAC9B,iCAAe,oBAAf,iCAAe,oDACnB,6BAAa,oBAAb,6BAAa,oDACP,mCAAgB,oBAAhB,mCAAgB,oDACA,mDAAwB,oBAAxB,mDAAwB,oDACpC,uCAAkB,oBAAlB,uCAAkB,oDACtC,mBAAQ,oBAAR,mBAAQ;GAR3C,gCAAgC,CA6G5C" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js b/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js new file mode 100644 index 0000000..46806e9 --- /dev/null +++ b/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js @@ -0,0 +1,42 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaItemEventRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaSendItemCallbacks_1 = require("../../callbacks/FikaSendItemCallbacks"); +let FikaItemEventRouter = class FikaItemEventRouter extends Router_1.ItemEventRouterDefinition { + fikaSendItemCallbacks; + constructor(fikaSendItemCallbacks) { + super(); + this.fikaSendItemCallbacks = fikaSendItemCallbacks; + } + getHandledRoutes() { + return [new Router_1.HandledRoute("SendToPlayer", false)]; + } + async handleItemEvent(url, pmcData, body, sessionID) { + switch (url) { + case "SendToPlayer": + return await this.fikaSendItemCallbacks.handleSendItem(pmcData, body, sessionID); + } + } +}; +exports.FikaItemEventRouter = FikaItemEventRouter; +exports.FikaItemEventRouter = FikaItemEventRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaSendItemCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaSendItemCallbacks_1.FikaSendItemCallbacks !== "undefined" && FikaSendItemCallbacks_1.FikaSendItemCallbacks) === "function" ? _a : Object]) +], FikaItemEventRouter); +//# sourceMappingURL=FikaItemEventRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js.map b/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js.map index 41b7689..2ddfdaf 100644 --- a/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js.map +++ b/user/mods/fika-server/src/routers/item_events/FikaItemEventRouter.js.map @@ -6,5 +6,5 @@ "FikaItemEventRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA0F;AAI1F,iFAA8E;AAGvE,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kCAAyB;IACP;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,EAAE,CAAC;QAD2C,0BAAqB,GAArB,qBAAqB,CAAuB;IAEnG,CAAC;IAEe,gBAAgB;QAC5B,OAAO,CAAC,IAAI,qBAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,OAAiB,EAAE,IAAS,EAAE,SAAiB;QAC9F,QAAQ,GAAG,EAAE,CAAC;YACV,KAAK,cAAc;gBACf,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;CACJ,CAAA;AAfY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,mBAAmB,CAe/B" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA4F;AAI5F,iFAA8E;AAGvE,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kCAAyB;IACP;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,EAAE,CAAC;QAD2C,0BAAqB,GAArB,qBAAqB,CAAuB;IAEnG,CAAC;IAEe,gBAAgB;QAC5B,OAAO,CAAC,IAAI,qBAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,OAAiB,EAAE,IAAS,EAAE,SAAiB;QAC9F,QAAQ,GAAG,EAAE,CAAC;YACV,KAAK,cAAc;gBACf,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;CACJ,CAAA;AAfY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,mBAAmB,CAe/B" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js new file mode 100644 index 0000000..26fd6b7 --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js @@ -0,0 +1,49 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaClientStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaClientCallbacks_1 = require("../../callbacks/FikaClientCallbacks"); +let FikaClientStaticRouter = class FikaClientStaticRouter extends Router_1.StaticRouter { + fikaClientCallbacks; + constructor(fikaClientCallbacks) { + super([ + new Router_1.RouteAction("/fika/client/config", async (url, info, sessionID, _output) => { + return this.fikaClientCallbacks.handleClientConfig(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/natpunchserver/config", async (url, info, sessionID, _output) => { + return this.fikaClientCallbacks.handleNatPunchServerConfig(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/client/check/mods", async (url, info, sessionID, _output) => { + return this.fikaClientCallbacks.handleCheckMods(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/profile/download", async (url, info, sessionID, _output) => { + return this.fikaClientCallbacks.handleProfileDownload(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/client/check/version", async (url, info, sessionID, _output) => { + return this.fikaClientCallbacks.handleVersionCheck(url, info, sessionID); + }), + ]); + this.fikaClientCallbacks = fikaClientCallbacks; + } +}; +exports.FikaClientStaticRouter = FikaClientStaticRouter; +exports.FikaClientStaticRouter = FikaClientStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaClientCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaClientCallbacks_1.FikaClientCallbacks !== "undefined" && FikaClientCallbacks_1.FikaClientCallbacks) === "function" ? _a : Object]) +], FikaClientStaticRouter); +//# sourceMappingURL=FikaClientStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js.map index 338954b..68263e5 100644 --- a/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaClientStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaClientStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAE5E,6EAA0E;AAKnE,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,qBAAY;IACC;IAArD,YAAqD,mBAAwC;QACzF,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAClJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,6BAA6B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC1J,OAAO,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAClJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAgB,EAAE;gBACzH,OAAO,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAgB,EAAE;gBAC7H,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC,CAAC;SACL,CAAC,CAAC;QAjB8C,wBAAmB,GAAnB,mBAAmB,CAAqB;IAkB7F,CAAC;CACJ,CAAA;AApBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAAgC,yCAAmB,oBAAnB,yCAAmB;GADpF,sBAAsB,CAoBlC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAE9E,6EAA0E;AAKnE,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,qBAAY;IACC;IAArD,YAAqD,mBAAwC;QACzF,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAClJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,6BAA6B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC1J,OAAO,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAClJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAgB,EAAE;gBACzH,OAAO,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,4BAA4B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAgB,EAAE;gBAC7H,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC,CAAC;SACL,CAAC,CAAC;QAjB8C,wBAAmB,GAAnB,mBAAmB,CAAqB;IAkB7F,CAAC;CACJ,CAAA;AApBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAAgC,yCAAmB,oBAAnB,yCAAmB;GADpF,sBAAsB,CAoBlC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js new file mode 100644 index 0000000..8909455 --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js @@ -0,0 +1,46 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaHeadlessCallbacks_1 = require("../../callbacks/FikaHeadlessCallbacks"); +let FikaHeadlessStaticRouter = class FikaHeadlessStaticRouter extends Router_1.StaticRouter { + fikaHeadlessCallbacks; + constructor(fikaHeadlessCallbacks) { + super([ + new Router_1.RouteAction("/fika/headless/get", async (url, info, sessionID, _output) => { + return this.fikaHeadlessCallbacks.handleGetHeadlesses(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/headless/available", async (url, info, sessionID, _output) => { + return this.fikaHeadlessCallbacks.handleAvailableHeadlesses(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/headless/restartafterraidamount", async (url, info, sessionID, _output) => { + return this.fikaHeadlessCallbacks.handleRestartAfterRaidAmount(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/headless/questtemplates", async (url, info, sessionID, _output) => { + return this.fikaHeadlessCallbacks.handleGetAllQuestTemplates(url, info, sessionID); + }), + ]); + this.fikaHeadlessCallbacks = fikaHeadlessCallbacks; + } +}; +exports.FikaHeadlessStaticRouter = FikaHeadlessStaticRouter; +exports.FikaHeadlessStaticRouter = FikaHeadlessStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaHeadlessCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaHeadlessCallbacks_1.FikaHeadlessCallbacks !== "undefined" && FikaHeadlessCallbacks_1.FikaHeadlessCallbacks) === "function" ? _a : Object]) +], FikaHeadlessStaticRouter); +//# sourceMappingURL=FikaHeadlessStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js.map index 944a8d5..1ff43f6 100644 --- a/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaHeadlessStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaHeadlessStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAI5E,iFAA8E;AAGvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACxH,OAAO,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC9H,OAAO,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACtF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,uCAAuC,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC3I,OAAO,IAAI,CAAC,qBAAqB,CAAC,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,+BAA+B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAA2C,EAAE;gBAC3J,OAAO,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACvF,CAAC,CAAC;SACL,CAAC,CAAC;QAdgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAenG,CAAC;CACJ,CAAA;AAjBY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAiBpC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAI9E,iFAA8E;AAGvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACxH,OAAO,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC9H,OAAO,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACtF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,uCAAuC,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC3I,OAAO,IAAI,CAAC,qBAAqB,CAAC,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,+BAA+B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAA2C,EAAE;gBAC3J,OAAO,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACvF,CAAC,CAAC;SACL,CAAC,CAAC;QAdgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAenG,CAAC;CACJ,CAAA;AAjBY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAiBpC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js new file mode 100644 index 0000000..1a140bd --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js @@ -0,0 +1,37 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaLocationStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaLocationCallbacks_1 = require("../../callbacks/FikaLocationCallbacks"); +let FikaLocationStaticRouter = class FikaLocationStaticRouter extends Router_1.StaticRouter { + fikaLocationCallbacks; + constructor(fikaLocationCallbacks) { + super([ + new Router_1.RouteAction("/fika/location/raids", async (url, info, sessionID, _output) => { + return this.fikaLocationCallbacks.handleGetRaids(url, info, sessionID); + }), + ]); + this.fikaLocationCallbacks = fikaLocationCallbacks; + } +}; +exports.FikaLocationStaticRouter = FikaLocationStaticRouter; +exports.FikaLocationStaticRouter = FikaLocationStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaLocationCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaLocationCallbacks_1.FikaLocationCallbacks !== "undefined" && FikaLocationCallbacks_1.FikaLocationCallbacks) === "function" ? _a : Object]) +], FikaLocationStaticRouter); +//# sourceMappingURL=FikaLocationStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js.map index 1a41034..7af04cb 100644 --- a/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaLocationStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaLocationStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAG5E,iFAA8E;AAGvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAsC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACvJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC,CAAC;SACL,CAAC,CAAC;QALgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAMnG,CAAC;CACJ,CAAA;AARY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAQpC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAG9E,iFAA8E;AAGvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAsC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACvJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC,CAAC;SACL,CAAC,CAAC;QALgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAMnG,CAAC;CACJ,CAAA;AARY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAQpC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js new file mode 100644 index 0000000..8b52fd9 --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js @@ -0,0 +1,37 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaNotificationStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaNotificationCallbacks_1 = require("../../callbacks/FikaNotificationCallbacks"); +let FikaNotificationStaticRouter = class FikaNotificationStaticRouter extends Router_1.StaticRouter { + fikaNotificationCallbacks; + constructor(fikaNotificationCallbacks) { + super([ + new Router_1.RouteAction("/fika/notification/push", async (url, info, sessionID, _output) => { + return await this.fikaNotificationCallbacks.handlePushNotification(url, info, sessionID); + }), + ]); + this.fikaNotificationCallbacks = fikaNotificationCallbacks; + } +}; +exports.FikaNotificationStaticRouter = FikaNotificationStaticRouter; +exports.FikaNotificationStaticRouter = FikaNotificationStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaNotificationCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaNotificationCallbacks_1.FikaNotificationCallbacks !== "undefined" && FikaNotificationCallbacks_1.FikaNotificationCallbacks) === "function" ? _a : Object]) +], FikaNotificationStaticRouter); +//# sourceMappingURL=FikaNotificationStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js.map index 36d97a7..88aa6b0 100644 --- a/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaNotificationStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaNotificationStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAE5E,yFAAsF;AAI/E,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,qBAAY;IACC;IAA3D,YAA2D,yBAAoD;QAC3G,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAuB,EAAE,SAAiB,EAAE,OAAe,EAAgB,EAAE;gBACxI,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7F,CAAC,CAAC;SACL,CAAC,CAAC;QALoD,8BAAyB,GAAzB,yBAAyB,CAA2B;IAM/G,CAAC;CACJ,CAAA;AARY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,2BAA2B,CAAC,CAAA;yDAAsC,qDAAyB,oBAAzB,qDAAyB;GADtG,4BAA4B,CAQxC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAE9E,yFAAsF;AAI/E,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,qBAAY;IACC;IAA3D,YAA2D,yBAAoD;QAC3G,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAuB,EAAE,SAAiB,EAAE,OAAe,EAAgB,EAAE;gBACxI,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7F,CAAC,CAAC;SACL,CAAC,CAAC;QALoD,8BAAyB,GAAzB,yBAAyB,CAA2B;IAM/G,CAAC;CACJ,CAAA;AARY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,2BAA2B,CAAC,CAAA;yDAAsC,qDAAyB,oBAAzB,qDAAyB;GADtG,4BAA4B,CAQxC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js new file mode 100644 index 0000000..da916fc --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js @@ -0,0 +1,43 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaPresenceStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaPresenceCallbacks_1 = require("../../callbacks/FikaPresenceCallbacks"); +let FikaPresenceStaticRouter = class FikaPresenceStaticRouter extends Router_1.StaticRouter { + fikaPresenceCallbacks; + constructor(fikaPresenceCallbacks) { + super([ + new Router_1.RouteAction("/fika/presence/get", async (url, info, sessionID, _output) => { + return this.fikaPresenceCallbacks.handleGetPresence(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/presence/set", async (url, info, sessionID, _output) => { + return this.fikaPresenceCallbacks.handleSetPresence(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/presence/setget", async (url, info, sessionID, _output) => { + return this.fikaPresenceCallbacks.handleSetGetPresence(url, info, sessionID); + }), + ]); + this.fikaPresenceCallbacks = fikaPresenceCallbacks; + } +}; +exports.FikaPresenceStaticRouter = FikaPresenceStaticRouter; +exports.FikaPresenceStaticRouter = FikaPresenceStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaPresenceCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaPresenceCallbacks_1.FikaPresenceCallbacks !== "undefined" && FikaPresenceCallbacks_1.FikaPresenceCallbacks) === "function" ? _a : Object]) +], FikaPresenceStaticRouter); +//# sourceMappingURL=FikaPresenceStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js.map index e8e6e7f..d19257c 100644 --- a/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaPresenceStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaPresenceStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAG5E,iFAA8E;AAKvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAgC,EAAE;gBACrI,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAsB,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAChJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAsB,EAAE,SAAiB,EAAE,OAAe,EAAgC,EAAE;gBACrJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjF,CAAC,CAAC;SACL,CAAC,CAAC;QAXgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAYnG,CAAC;CACJ,CAAA;AAdY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAcpC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAG9E,iFAA8E;AAKvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,SAAiB,EAAE,OAAe,EAAgC,EAAE;gBACrI,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAsB,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAChJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAsB,EAAE,SAAiB,EAAE,OAAe,EAAgC,EAAE;gBACrJ,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjF,CAAC,CAAC;SACL,CAAC,CAAC;QAXgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAYnG,CAAC;CACJ,CAAA;AAdY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAcpC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js new file mode 100644 index 0000000..3d4dd58 --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js @@ -0,0 +1,55 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaRaidStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaRaidCallbacks_1 = require("../../callbacks/FikaRaidCallbacks"); +let FikaRaidStaticRouter = class FikaRaidStaticRouter extends Router_1.StaticRouter { + fikaRaidCallbacks; + constructor(fikaRaidCallbacks) { + super([ + new Router_1.RouteAction("/fika/raid/create", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidCreate(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/raid/join", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidJoin(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/raid/leave", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidLeave(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/raid/gethost", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidGetHost(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/raid/getsettings", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidGetSettings(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/raid/headless/start", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidStartHeadless(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/raid/registerPlayer", async (url, info, sessionID, _output) => { + return this.fikaRaidCallbacks.handleRaidRegisterPlayer(url, info, sessionID); + }), + ]); + this.fikaRaidCallbacks = fikaRaidCallbacks; + } +}; +exports.FikaRaidStaticRouter = FikaRaidStaticRouter; +exports.FikaRaidStaticRouter = FikaRaidStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaRaidCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaRaidCallbacks_1.FikaRaidCallbacks !== "undefined" && FikaRaidCallbacks_1.FikaRaidCallbacks) === "function" ? _a : Object]) +], FikaRaidStaticRouter); +//# sourceMappingURL=FikaRaidStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js.map index aefa39b..51c49f1 100644 --- a/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaRaidStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaRaidStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAI5E,yEAAsE;AAQ/D,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,qBAAY;IACC;IAAnD,YAAmD,iBAAoC;QACnF,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC9I,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC1I,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA+B,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACvJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACjJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACrJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,2BAA2B,EAAE,KAAK,EAAE,GAAW,EAAE,IAA2B,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACjJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,2BAA2B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACjK,OAAO,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjF,CAAC,CAAC;SACL,CAAC,CAAC;QAvB4C,sBAAiB,GAAjB,iBAAiB,CAAmB;IAwBvF,CAAC;CACJ,CAAA;AA1BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,mBAAmB,CAAC,CAAA;yDAA8B,qCAAiB,oBAAjB,qCAAiB;GAD9E,oBAAoB,CA0BhC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAI9E,yEAAsE;AAQ/D,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,qBAAY;IACC;IAAnD,YAAmD,iBAAoC;QACnF,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC9I,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC1I,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA+B,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACvJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACjJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAkC,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACrJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,2BAA2B,EAAE,KAAK,EAAE,GAAW,EAAE,IAA2B,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBACjJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,2BAA2B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACjK,OAAO,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjF,CAAC,CAAC;SACL,CAAC,CAAC;QAvB4C,sBAAiB,GAAjB,iBAAiB,CAAmB;IAwBvF,CAAC;CACJ,CAAA;AA1BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,mBAAmB,CAAC,CAAA;yDAA8B,qCAAiB,oBAAjB,qCAAiB;GAD9E,oBAAoB,CA0BhC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js new file mode 100644 index 0000000..dc78e3d --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js @@ -0,0 +1,37 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaSendItemStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaSendItemCallbacks_1 = require("../../callbacks/FikaSendItemCallbacks"); +let FikaSendItemStaticRouter = class FikaSendItemStaticRouter extends Router_1.StaticRouter { + fikaSendItemCallbacks; + constructor(fikaSendItemCallbacks) { + super([ + new Router_1.RouteAction("/fika/senditem/availablereceivers", async (url, info, sessionID, _output) => { + return this.fikaSendItemCallbacks.handleAvailableReceivers(url, info, sessionID); + }), + ]); + this.fikaSendItemCallbacks = fikaSendItemCallbacks; + } +}; +exports.FikaSendItemStaticRouter = FikaSendItemStaticRouter; +exports.FikaSendItemStaticRouter = FikaSendItemStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaSendItemCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaSendItemCallbacks_1.FikaSendItemCallbacks !== "undefined" && FikaSendItemCallbacks_1.FikaSendItemCallbacks) === "function" ? _a : Object]) +], FikaSendItemStaticRouter); +//# sourceMappingURL=FikaSendItemStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js.map index bff59c7..bc23c48 100644 --- a/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaSendItemStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaSendItemStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAE5E,iFAA8E;AAIvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,mCAAmC,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgD,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC9K,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC;SACL,CAAC,CAAC;QALgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAMnG,CAAC;CACJ,CAAA;AARY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAQpC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAE9E,iFAA8E;AAIvE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,qBAAY;IACC;IAAvD,YAAuD,qBAA4C;QAC/F,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,mCAAmC,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgD,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;gBAC9K,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC;SACL,CAAC,CAAC;QALgD,0BAAqB,GAArB,qBAAqB,CAAuB;IAMnG,CAAC;CACJ,CAAA;AARY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAuB,CAAC,CAAA;yDAAkC,6CAAqB,oBAArB,6CAAqB;GAD1F,wBAAwB,CAQpC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js b/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js new file mode 100644 index 0000000..d6be280 --- /dev/null +++ b/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js @@ -0,0 +1,52 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaUpdateStaticRouter = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const Router_1 = require("C:/snapshot/project/obj/di/Router"); +const FikaUpdateCallbacks_1 = require("../../callbacks/FikaUpdateCallbacks"); +let FikaUpdateStaticRouter = class FikaUpdateStaticRouter extends Router_1.StaticRouter { + fikaUpdateCallbacks; + constructor(fikaUpdateCallbacks) { + super([ + new Router_1.RouteAction("/fika/update/ping", async (url, info, sessionID, _output) => { + return this.fikaUpdateCallbacks.handlePing(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/update/playerspawn", async (url, info, sessionID, _output) => { + return this.fikaUpdateCallbacks.handlePlayerspawn(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/update/sethost", async (url, info, sessionID, _output) => { + return this.fikaUpdateCallbacks.handleSethost(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/update/setstatus", async (url, info, sessionID, _output) => { + return this.fikaUpdateCallbacks.handleSetStatus(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/update/addplayer", async (url, info, sessionID, _output) => { + return this.fikaUpdateCallbacks.handleRaidAddPlayer(url, info, sessionID); + }), + new Router_1.RouteAction("/fika/update/playerdied", async (url, info, sessionID, _output) => { + return this.fikaUpdateCallbacks.handlePlayerDied(url, info, sessionID); + }), + ]); + this.fikaUpdateCallbacks = fikaUpdateCallbacks; + } +}; +exports.FikaUpdateStaticRouter = FikaUpdateStaticRouter; +exports.FikaUpdateStaticRouter = FikaUpdateStaticRouter = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaUpdateCallbacks")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaUpdateCallbacks_1.FikaUpdateCallbacks !== "undefined" && FikaUpdateCallbacks_1.FikaUpdateCallbacks) === "function" ? _a : Object]) +], FikaUpdateStaticRouter); +//# sourceMappingURL=FikaUpdateStaticRouter.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js.map b/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js.map index bc73bdf..65d98d2 100644 --- a/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js.map +++ b/user/mods/fika-server/src/routers/static/FikaUpdateStaticRouter.js.map @@ -6,5 +6,5 @@ "FikaUpdateStaticRouter.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;AAAA,sEAA6E;AAE7E,4DAA4E;AAG5E,6EAA0E;AAQnE,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,qBAAY;IACC;IAArD,YAAqD,mBAAwC;QACzF,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACzJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAuC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACvK,OAAO,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAmC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAC/J,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAqC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACnK,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAC5J,OAAO,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAC7J,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC,CAAC;SACL,CAAC,CAAC;QApB8C,wBAAmB,GAAnB,mBAAmB,CAAqB;IAqB7F,CAAC;CACJ,CAAA;AAvBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAAgC,yCAAmB,oBAAnB,yCAAmB;GADpF,sBAAsB,CAuBlC" + "mappings": ";;;;;;;;;;;;;;;;AAAA,wEAA+E;AAE/E,8DAA8E;AAG9E,6EAA0E;AAQnE,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,qBAAY;IACC;IAArD,YAAqD,mBAAwC;QACzF,KAAK,CAAC;YACF,IAAI,oBAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAgC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACzJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACrE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAW,EAAE,IAAuC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACvK,OAAO,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAmC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAC/J,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAAqC,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBACnK,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAC5J,OAAO,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC;YACF,IAAI,oBAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAW,EAAE,IAA8B,EAAE,SAAiB,EAAE,OAAe,EAA8B,EAAE;gBAC7J,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC,CAAC;SACL,CAAC,CAAC;QApB8C,wBAAmB,GAAnB,mBAAmB,CAAqB;IAqB7F,CAAC;CACJ,CAAA;AAvBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;yDAAgC,yCAAmB,oBAAnB,yCAAmB;GADpF,sBAAsB,CAuBlC" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaClientService.js b/user/mods/fika-server/src/services/FikaClientService.js new file mode 100644 index 0000000..140cd71 --- /dev/null +++ b/user/mods/fika-server/src/services/FikaClientService.js @@ -0,0 +1,125 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaClientService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const FikaClientModHashesHelper_1 = require("../helpers/FikaClientModHashesHelper"); +const FikaConfig_1 = require("../utils/FikaConfig"); +let FikaClientService = class FikaClientService { + fikaClientModHashesHelper; + fikaConfig; + saveServer; + logger; + requiredMods = []; + allowedMods = []; + hasRequiredOrOptionalMods = true; + constructor(fikaClientModHashesHelper, fikaConfig, saveServer, logger) { + this.fikaClientModHashesHelper = fikaClientModHashesHelper; + this.fikaConfig = fikaConfig; + this.saveServer = saveServer; + this.logger = logger; + } + async preInit() { + const config = this.fikaConfig.getConfig(); + const sanitizedRequiredMods = this.filterEmptyMods(config.client.mods.required); + const sanitizedOptionalMods = this.filterEmptyMods(config.client.mods.optional); + if (sanitizedRequiredMods.length === 0 && sanitizedOptionalMods.length === 0) { + this.hasRequiredOrOptionalMods = false; + } + this.requiredMods = [...sanitizedRequiredMods, "com.fika.core", "com.SPT.custom", "com.SPT.singleplayer", "com.SPT.core", "com.SPT.debugging"]; + this.allowedMods = [...this.requiredMods, ...sanitizedOptionalMods, "com.bepis.bepinex.configurationmanager", "com.fika.headless"]; + } + filterEmptyMods(array) { + return array.filter((str) => str.trim() !== ""); + } + getClientConfig() { + return this.fikaConfig.getConfig().client; + } + getIsItemSendingAllowed() { + return this.fikaConfig.getConfig().server.allowItemSending; + } + getNatPunchServerConfig() { + return this.fikaConfig.getConfig().natPunchServer; + } + getHeadlessConfig() { + return this.fikaConfig.getConfig().headless; + } + getVersion() { + const version = this.fikaConfig.getVersion(); + return { version }; + } + getCheckModsResponse(request, sessionID) { + const mismatchedMods = { + forbidden: [], + missingRequired: [], + hashMismatch: [], + }; + if (this.fikaConfig.getConfig().server.logClientModsInConsole) { + const username = this.saveServer.getProfile(sessionID).info.username; + const mods = Object.keys(request); + this.logger.info(`${username} (${sessionID}) connected with ${mods.length} client mods: ${mods.join(", ")}`); + } + // if no configuration was made, allow all mods + if (!this.hasRequiredOrOptionalMods) { + return mismatchedMods; + } + //check for missing required mods first + for (const pluginId of this.requiredMods) { + if (!request[pluginId]) { + mismatchedMods.missingRequired.push(pluginId); + } + } + // no need to check anything else since it's missing required mods + if (mismatchedMods.missingRequired.length > 0) { + return mismatchedMods; + } + for (const [pluginId, hash] of Object.entries(request)) { + // check if the mod isn't allowed + if (!this.allowedMods.includes(pluginId)) { + mismatchedMods.forbidden.push(pluginId); + continue; + } + // first request made will fill in at the very least all the required mods hashes, following requests made by different clients will add any optional mod not added by the first request, otherwise will check against the first request data + if (!this.fikaClientModHashesHelper.exists(pluginId)) { + this.fikaClientModHashesHelper.addHash(pluginId, hash); + continue; + } + if (this.fikaClientModHashesHelper.getHash(pluginId) !== hash) { + mismatchedMods.hashMismatch.push(pluginId); + } + } + return mismatchedMods; + } + getProfileBySessionID(sessionID) { + const profile = this.saveServer.getProfile(sessionID); + if (profile) { + this.logger.info(`${sessionID} has downloaded their profile`); + return profile; + } + this.logger.error(`${sessionID} wants to download their profile but we don't have it`); + return null; + } +}; +exports.FikaClientService = FikaClientService; +exports.FikaClientService = FikaClientService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaClientModHashesHelper")), + __param(1, (0, tsyringe_1.inject)("FikaConfig")), + __param(2, (0, tsyringe_1.inject)("SaveServer")), + __param(3, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaClientModHashesHelper_1.FikaClientModHashesHelper !== "undefined" && FikaClientModHashesHelper_1.FikaClientModHashesHelper) === "function" ? _a : Object, typeof (_b = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _b : Object, typeof (_c = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _c : Object, Object]) +], FikaClientService); +//# sourceMappingURL=FikaClientService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaClientService.js.map b/user/mods/fika-server/src/services/FikaClientService.js.map index 2307a45..d78665c 100644 --- a/user/mods/fika-server/src/services/FikaClientService.js.map +++ b/user/mods/fika-server/src/services/FikaClientService.js.map @@ -6,5 +6,5 @@ "FikaClientService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaInsuranceService.js b/user/mods/fika-server/src/services/FikaInsuranceService.js new file mode 100644 index 0000000..3dc15ff --- /dev/null +++ b/user/mods/fika-server/src/services/FikaInsuranceService.js @@ -0,0 +1,150 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaInsuranceService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const ItemHelper_1 = require("C:/snapshot/project/obj/helpers/ItemHelper"); +const BaseClasses_1 = require("C:/snapshot/project/obj/models/enums/BaseClasses"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +let FikaInsuranceService = class FikaInsuranceService { + saveServer; + itemHelper; + logger; + matchInsuranceInfo; + constructor(saveServer, itemHelper, logger) { + this.saveServer = saveServer; + this.itemHelper = itemHelper; + this.logger = logger; + this.matchInsuranceInfo = {}; + } + getMatchId(sessionID) { + for (const matchId in this.matchInsuranceInfo) { + const match = this.matchInsuranceInfo[matchId]; + if (match.find((player) => player.sessionID == sessionID)) { + return matchId; + } + } + } + addPlayerToMatchId(matchId, sessionID) { + if (!(matchId in this.matchInsuranceInfo)) { + this.matchInsuranceInfo[matchId] = []; + } + let player = { + sessionID: sessionID, + endedRaid: false, + lostItems: [], + foundItems: [], + inventory: [], + }; + this.matchInsuranceInfo[matchId].push(player); + } + onEndLocalRaidRequest(sessionID, matchId, endLocalRaidRequest) { + if (!(matchId in this.matchInsuranceInfo)) { + this.logger.error("[Fika Insurance] onEndLocalRaidRequest: matchId not found!"); + return; + } + const match = this.matchInsuranceInfo[matchId]; + for (const player of match) { + if (player.sessionID != sessionID) { + continue; + } + // Map both the lost items and the current inventory + player.lostItems = endLocalRaidRequest.lostInsuredItems.map((i) => i._id); + player.inventory = endLocalRaidRequest.results.profile.Inventory.items.map((i) => i._id); + player.endedRaid = true; + } + } + onMatchEnd(matchId) { + if (!(matchId in this.matchInsuranceInfo)) { + return; + } + const match = this.matchInsuranceInfo[matchId]; + match.forEach((player) => { + // This player either crashed or the raid ended prematurely, eitherway we skip him. + if (!player.endedRaid) { + return; + } + match.forEach((nextPlayer) => { + // Don't need to check the player we have in the base loop + if (player.sessionID == nextPlayer.sessionID) { + return; + } + // This player either crashed or the raid ended prematurely, eitherway we skip him. + if (!nextPlayer.endedRaid) { + return; + } + // Find overlap between players other than the initial player we're looping over, if it contains the lost item id of the initial player we add it to foundItems + const overlap = nextPlayer.inventory.filter((i) => player.lostItems.includes(i)); + // Add said overlap to player's found items + player.foundItems = player.foundItems.concat(overlap); + }); + if (player.foundItems.length > 0) { + this.logger.debug(`${player.sessionID} will lose ${player.foundItems.length}/${player.lostItems.length} items in insurance`); + this.removeItemsFromInsurance(player.sessionID, player.foundItems); + } + }); + delete this.matchInsuranceInfo[matchId]; + } + removeItemsFromInsurance(sessionID, ids) { + const profile = this.saveServer.getProfile(sessionID); + for (let insuranceIndex = 0; insuranceIndex < profile.insurance.length; insuranceIndex++) { + let insurance = profile.insurance[insuranceIndex]; + for (const idToRemove of ids) { + const insuredItemIndex = insurance.items.findIndex((i) => i._id == idToRemove); + if (insuredItemIndex != -1) { + const item = insurance.items[insuredItemIndex]; + this.logger.debug(`[Fika Insurance] Found ${item._id} which will be removed`); + // Remove soft inserts out of armors + if (this.itemHelper.isOfBaseclass(item._tpl, BaseClasses_1.BaseClasses.ARMOR) || this.itemHelper.isOfBaseclass(item._tpl, BaseClasses_1.BaseClasses.HEADWEAR)) { + this.logger.debug(`[Fika Insurance] ${item._id} is an armor or helmet`); + // Copy the original array, when we splice into the original array while looping over it we will skip certain items. + let insuranceItems = Array.from(insurance.items); + insuranceItems.forEach((innerItem) => { + this.logger.debug(`[Fika Insurance] Inner item: ${innerItem._id}`); + if (innerItem.parentId == item._id && this.itemHelper.isOfBaseclass(innerItem._tpl, BaseClasses_1.BaseClasses.BUILT_IN_INSERTS)) { + // There's mods that allow you to take soft inserts out and those will most likely have insurance set, dont need to remove those here. + if (!ids.includes(innerItem._id)) { + this.logger.debug(`[Fika Insurance] Removing soft insert ${innerItem._id} of item ${item._id}`); + const innerItemIndex = insurance.items.findIndex((i) => i._id == innerItem._id); + insurance.items.splice(innerItemIndex, 1); + } + } + }); + } + // Remove the original item + insurance.items.splice(insuredItemIndex, 1); + } + } + if (insurance.items.length == 0) { + this.logger.debug("No more insured items left, deleting this entry"); + profile.insurance.splice(insuranceIndex, 1); + insuranceIndex--; + } + else { + // Update existing insured item list + profile.insurance[insuranceIndex] = insurance; + } + } + } +}; +exports.FikaInsuranceService = FikaInsuranceService; +exports.FikaInsuranceService = FikaInsuranceService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("SaveServer")), + __param(1, (0, tsyringe_1.inject)("ItemHelper")), + __param(2, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _a : Object, typeof (_b = typeof ItemHelper_1.ItemHelper !== "undefined" && ItemHelper_1.ItemHelper) === "function" ? _b : Object, Object]) +], FikaInsuranceService); +//# sourceMappingURL=FikaInsuranceService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaInsuranceService.js.map b/user/mods/fika-server/src/services/FikaInsuranceService.js.map index 001afe7..d1e928d 100644 --- a/user/mods/fika-server/src/services/FikaInsuranceService.js.map +++ b/user/mods/fika-server/src/services/FikaInsuranceService.js.map @@ -6,5 +6,5 @@ "FikaInsuranceService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaMatchService.js b/user/mods/fika-server/src/services/FikaMatchService.js new file mode 100644 index 0000000..8f599f9 --- /dev/null +++ b/user/mods/fika-server/src/services/FikaMatchService.js @@ -0,0 +1,323 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f, _g; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaMatchService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const LocationLifecycleService_1 = require("C:/snapshot/project/obj/services/LocationLifecycleService"); +const EFikaMatchEndSessionMessages_1 = require("../models/enums/EFikaMatchEndSessionMessages"); +const EFikaMatchStatus_1 = require("../models/enums/EFikaMatchStatus"); +const EFikaPlayerPresences_1 = require("../models/enums/EFikaPlayerPresences"); +const FikaHeadlessHelper_1 = require("../helpers/FikaHeadlessHelper"); +const FikaConfig_1 = require("../utils/FikaConfig"); +const FikaInsuranceService_1 = require("./FikaInsuranceService"); +const FikaPresenceService_1 = require("./FikaPresenceService"); +const FikaHeadlessService_1 = require("./headless/FikaHeadlessService"); +let FikaMatchService = class FikaMatchService { + logger; + locationLifecycleService; + saveServer; + fikaConfig; + fikaHeadlessHelper; + fikaHeadlessService; + fikaInsuranceService; + fikaPresenceService; + matches; + timeoutIntervals; + constructor(logger, locationLifecycleService, saveServer, fikaConfig, fikaHeadlessHelper, fikaHeadlessService, fikaInsuranceService, fikaPresenceService) { + this.logger = logger; + this.locationLifecycleService = locationLifecycleService; + this.saveServer = saveServer; + this.fikaConfig = fikaConfig; + this.fikaHeadlessHelper = fikaHeadlessHelper; + this.fikaHeadlessService = fikaHeadlessService; + this.fikaInsuranceService = fikaInsuranceService; + this.fikaPresenceService = fikaPresenceService; + this.matches = new Map(); + this.timeoutIntervals = new Map(); + } + /** + * Adds a timeout interval for the given match + * @param matchId + */ + addTimeoutInterval(matchId) { + const fikaConfig = this.fikaConfig.getConfig(); + if (this.timeoutIntervals.has(matchId)) { + this.removeTimeoutInterval(matchId); + } + this.timeoutIntervals.set(matchId, setInterval(() => { + const match = this.getMatch(matchId); + match.timeout++; + // if it timed out 'sessionTimeout' times or more, end the match + if (match.timeout >= fikaConfig.server.sessionTimeout) { + this.endMatch(matchId, EFikaMatchEndSessionMessages_1.EFikaMatchEndSessionMessage.PING_TIMEOUT_MESSAGE); + } + }, 60 * 1000)); + } + /** + * Removes the timeout interval for the given match + * @param matchId + * @returns + */ + removeTimeoutInterval(matchId) { + if (!this.timeoutIntervals.has(matchId)) { + return; + } + clearInterval(this.timeoutIntervals.get(matchId)); + this.timeoutIntervals.delete(matchId); + } + /** + * Returns the match with the given id, undefined if match does not exist + * @param matchId + * @returns + */ + getMatch(matchId) { + if (!this.matches.has(matchId)) { + return; + } + return this.matches.get(matchId); + } + /** + * Returns all matches + * @returns + */ + getAllMatches() { + return this.matches; + } + /** + * Returns the player with the given id in the given match, returns undefined if either match or player does not exist + * @param matchId + * @param playerId + * @returns + */ + getPlayerInMatch(matchId, playerId) { + if (!this.matches.has(matchId)) { + return; + } + if (!this.matches.get(matchId).players.has(playerId)) { + return; + } + return this.matches.get(matchId).players.get(playerId); + } + /** + * Returns the match id that has a player with the given player id, returns undefined if the player isn't in a match + * + * @param playerId + * @returns + */ + getMatchIdByPlayer(playerId) { + for (const [key, value] of this.matches.entries()) { + if (value.players.has(playerId)) { + return key; + } + } + return undefined; + } + /** + * Returns the match id that has a player with the given session id, returns undefined if the player isn't in a match + * + * Note: + * - First tries to find pmc, then scav + * @param sessionId + * @returns + */ + getMatchIdByProfile(sessionId) { + const profile = this.saveServer.getProfile(sessionId); + // check if pmc is in match + let matchId = this.getMatchIdByPlayer(profile.characters.pmc._id); + if (matchId === undefined) { + // check if scav is in match + matchId = this.getMatchIdByPlayer(profile.characters.scav._id); + } + return matchId; + } + /** + * Creates a new coop match + * @param data + * @returns + */ + createMatch(data) { + if (this.matches.has(data.serverId)) { + this.deleteMatch(data.serverId); + } + // Stop TS from throwing a tantrum over protected methods + const lifecycleService = this.locationLifecycleService; + const locationData = lifecycleService.generateLocationAndLoot(data.settings.location); + this.matches.set(data.serverId, { + ips: null, + port: null, + hostUsername: data.hostUsername, + timestamp: data.timestamp, + raidConfig: data.settings, + locationData: locationData, + status: EFikaMatchStatus_1.EFikaMatchStatus.LOADING, + timeout: 0, + players: new Map(), + gameVersion: data.gameVersion, + crc32: data.crc32, + side: data.side, + time: data.time, + raidCode: data.raidCode, + natPunch: false, + isHeadless: false, + raids: 0, + }); + this.addTimeoutInterval(data.serverId); + this.addPlayerToMatch(data.serverId, data.serverId, { + groupId: null, + isDead: false, + isSpectator: data.isSpectator, + }); + return this.matches.has(data.serverId) && this.timeoutIntervals.has(data.serverId); + } + /** + * Deletes a coop match and removes the timeout interval + * @param matchId + */ + deleteMatch(matchId) { + if (!this.matches.has(matchId)) { + return; + } + this.matches.delete(matchId); + this.removeTimeoutInterval(matchId); + } + /** + * Ends the given match, logs a reason and removes the timeout interval + * @param matchId + * @param reason + */ + endMatch(matchId, reason) { + this.logger.info(`Coop session ${matchId} has ended: ${reason}`); + if (this.fikaHeadlessHelper.isHeadlessClient(matchId)) { + this.fikaHeadlessService.endHeadlessRaid(matchId); + } + this.fikaInsuranceService.onMatchEnd(matchId); + this.deleteMatch(matchId); + } + /** + * Updates the status of the given match + * @param matchId + * @param status + */ + async setMatchStatus(matchId, status) { + if (!this.matches.has(matchId)) { + return; + } + this.matches.get(matchId).status = status; + if (status === EFikaMatchStatus_1.EFikaMatchStatus.COMPLETE) { + await this.fikaHeadlessService.sendJoinMessageToRequester(matchId); + } + } + /** + * Sets the ip and port for the given match + * @param matchId + * @param ips + * @param port + */ + setMatchHost(matchId, ips, port, natPunch, isHeadless) { + if (!this.matches.has(matchId)) { + return; + } + const match = this.matches.get(matchId); + match.ips = ips; + match.port = port; + match.natPunch = natPunch; + match.isHeadless = isHeadless; + } + /** + * Resets the timeout of the given match + * @param matchId + */ + resetTimeout(matchId) { + if (!this.matches.has(matchId)) { + return; + } + this.matches.get(matchId).timeout = 0; + } + /** + * Adds a player to a match + * @param matchId + * @param playerId + * @param data + */ + addPlayerToMatch(matchId, playerId, data) { + if (!this.matches.has(matchId)) { + return; + } + const match = this.matches.get(matchId); + match.players.set(playerId, data); + this.fikaInsuranceService.addPlayerToMatchId(matchId, playerId); + if (this.fikaHeadlessHelper.isHeadlessClient(matchId)) { + this.fikaHeadlessService.addPlayerToHeadlessMatch(matchId, playerId); + } + this.fikaPresenceService.updatePlayerPresence(playerId, this.fikaPresenceService.generateSetPresence(EFikaPlayerPresences_1.EFikaPlayerPresences.IN_RAID, this.fikaPresenceService.generateRaidPresence(match.locationData.Id, match.side, match.time))); + } + /** + * Sets a player to dead + * @param matchId + * @param playerId + * @param data + */ + setPlayerDead(matchId, playerId) { + if (!this.matches.has(matchId)) { + return; + } + if (!this.matches.get(matchId).players.has(playerId)) { + return; + } + this.matches.get(matchId).players.get(playerId).isDead = true; + } + /** + * Sets the groupId for a player + * @param matchId + * @param playerId + * @param groupId + */ + setPlayerGroup(matchId, playerId, groupId) { + if (!this.matches.has(matchId)) { + return; + } + if (!this.matches.get(matchId).players.has(playerId)) { + return; + } + this.matches.get(matchId).players.get(playerId).groupId = groupId; + } + /** + * Removes a player from a match + * @param matchId + * @param playerId + */ + removePlayerFromMatch(matchId, playerId) { + if (!this.matches.has(matchId)) { + return; + } + this.matches.get(matchId).players.delete(playerId); + this.fikaPresenceService.updatePlayerPresence(playerId, this.fikaPresenceService.generateSetPresence(EFikaPlayerPresences_1.EFikaPlayerPresences.IN_MENU)); + } +}; +exports.FikaMatchService = FikaMatchService; +exports.FikaMatchService = FikaMatchService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("WinstonLogger")), + __param(1, (0, tsyringe_1.inject)("LocationLifecycleService")), + __param(2, (0, tsyringe_1.inject)("SaveServer")), + __param(3, (0, tsyringe_1.inject)("FikaConfig")), + __param(4, (0, tsyringe_1.inject)("FikaHeadlessHelper")), + __param(5, (0, tsyringe_1.inject)("FikaHeadlessService")), + __param(6, (0, tsyringe_1.inject)("FikaInsuranceService")), + __param(7, (0, tsyringe_1.inject)("FikaPresenceService")), + __metadata("design:paramtypes", [Object, typeof (_a = typeof LocationLifecycleService_1.LocationLifecycleService !== "undefined" && LocationLifecycleService_1.LocationLifecycleService) === "function" ? _a : Object, typeof (_b = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _b : Object, typeof (_c = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _c : Object, typeof (_d = typeof FikaHeadlessHelper_1.FikaHeadlessHelper !== "undefined" && FikaHeadlessHelper_1.FikaHeadlessHelper) === "function" ? _d : Object, typeof (_e = typeof FikaHeadlessService_1.FikaHeadlessService !== "undefined" && FikaHeadlessService_1.FikaHeadlessService) === "function" ? _e : Object, typeof (_f = typeof FikaInsuranceService_1.FikaInsuranceService !== "undefined" && FikaInsuranceService_1.FikaInsuranceService) === "function" ? _f : Object, typeof (_g = typeof FikaPresenceService_1.FikaPresenceService !== "undefined" && FikaPresenceService_1.FikaPresenceService) === "function" ? _g : Object]) +], FikaMatchService); +//# sourceMappingURL=FikaMatchService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaMatchService.js.map b/user/mods/fika-server/src/services/FikaMatchService.js.map index 8c464f4..0f683b9 100644 --- a/user/mods/fika-server/src/services/FikaMatchService.js.map +++ b/user/mods/fika-server/src/services/FikaMatchService.js.map @@ -6,5 +6,5 @@ "FikaMatchService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaPresenceService.js b/user/mods/fika-server/src/services/FikaPresenceService.js new file mode 100644 index 0000000..d3ea86a --- /dev/null +++ b/user/mods/fika-server/src/services/FikaPresenceService.js @@ -0,0 +1,97 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaPresenceService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const TimeUtil_1 = require("C:/snapshot/project/obj/utils/TimeUtil"); +const EFikaPlayerPresences_1 = require("../models/enums/EFikaPlayerPresences"); +let FikaPresenceService = class FikaPresenceService { + saveServer; + timeUtil; + logger; + onlinePlayers; + constructor(saveServer, timeUtil, logger) { + this.saveServer = saveServer; + this.timeUtil = timeUtil; + this.logger = logger; + this.onlinePlayers = {}; + } + addPlayerPresence(sessionID) { + const profile = this.saveServer.getProfile(sessionID); + if (!profile) { + return; + } + let data = { + nickname: profile.characters.pmc.Info.Nickname, + level: profile.characters.pmc.Info.Level, + activity: EFikaPlayerPresences_1.EFikaPlayerPresences.IN_MENU, + activityStartedTimestamp: this.timeUtil.getTimestamp(), + raidInformation: null, + }; + this.logger.debug(`[Fika Presence] Adding player: ${data.nickname}`); + this.onlinePlayers[sessionID] = data; + } + getAllPlayersPresence() { + let playerList = []; + for (const sessionID in this.onlinePlayers) { + let player = this.onlinePlayers[sessionID]; + playerList.push(player); + } + return playerList; + } + generateSetPresence(activity, raidInformation) { + return { + activity: activity, + raidInformation: raidInformation, + }; + } + generateRaidPresence(location, side, time) { + return { + location: location, + side: side, + time: time, + }; + } + updatePlayerPresence(sessionID, newPresence) { + if (!this.onlinePlayers[sessionID]) { + return; + } + const profile = this.saveServer.getProfile(sessionID); + let data = { + nickname: profile.characters.pmc.Info.Nickname, + level: profile.characters.pmc.Info.Level, + activity: newPresence.activity, + activityStartedTimestamp: this.timeUtil.getTimestamp(), + raidInformation: newPresence.raidInformation, + }; + this.onlinePlayers[sessionID] = data; + } + removePlayerPresence(sessionID) { + if (!this.onlinePlayers[sessionID]) { + return; + } + delete this.onlinePlayers[sessionID]; + } +}; +exports.FikaPresenceService = FikaPresenceService; +exports.FikaPresenceService = FikaPresenceService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("SaveServer")), + __param(1, (0, tsyringe_1.inject)("TimeUtil")), + __param(2, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _a : Object, typeof (_b = typeof TimeUtil_1.TimeUtil !== "undefined" && TimeUtil_1.TimeUtil) === "function" ? _b : Object, Object]) +], FikaPresenceService); +//# sourceMappingURL=FikaPresenceService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/FikaPresenceService.js.map b/user/mods/fika-server/src/services/FikaPresenceService.js.map index b52835c..d72699d 100644 --- a/user/mods/fika-server/src/services/FikaPresenceService.js.map +++ b/user/mods/fika-server/src/services/FikaPresenceService.js.map @@ -6,5 +6,5 @@ "FikaPresenceService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js b/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js new file mode 100644 index 0000000..14e7748 --- /dev/null +++ b/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js @@ -0,0 +1,71 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaFriendRequestsCacheService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FileSystemSync_1 = require("C:/snapshot/project/obj/utils/FileSystemSync"); +const JsonUtil_1 = require("C:/snapshot/project/obj/utils/JsonUtil"); +const FikaConfig_1 = require("../../utils/FikaConfig"); +let FikaFriendRequestsCacheService = class FikaFriendRequestsCacheService { + jsonUtil; + fileSystemSync; + fikaConfig; + friendRequests; + friendRequestsFullPath; + friendRequestsPath = "cache/friendRequests.json"; + constructor(jsonUtil, fileSystemSync, fikaConfig) { + this.jsonUtil = jsonUtil; + this.fileSystemSync = fileSystemSync; + this.fikaConfig = fikaConfig; + this.friendRequestsFullPath = `./${this.fikaConfig.getModPath()}${this.friendRequestsPath}`; + if (!this.fileSystemSync.exists(this.friendRequestsFullPath)) { + this.fileSystemSync.write(this.friendRequestsFullPath, "[]"); + } + this.friendRequests = this.jsonUtil.deserialize(this.fileSystemSync.read(this.friendRequestsFullPath), this.friendRequestsFullPath); + } + getAllFriendRequests() { + return this.friendRequests; + } + getSentFriendRequests(profileId) { + return this.friendRequests.filter((request) => request.from === profileId); + } + getReceivedFriendRequests(profileId) { + return this.friendRequests.filter((request) => request.to === profileId); + } + exists(from, to) { + return !!this.friendRequests.find((request) => request.from === from && request.to === to); + } + deleteFriendRequest(from, to) { + const index = this.friendRequests.findIndex((request) => request.from === from && request.to === to); + if (index === -1) { + return; + } + this.friendRequests.splice(index, 1); + this.fileSystemSync.write(this.friendRequestsFullPath, this.jsonUtil.serialize(this.friendRequests)); + } + storeFriendRequest(value) { + this.friendRequests.push(value); + this.fileSystemSync.write(this.friendRequestsFullPath, this.jsonUtil.serialize(this.friendRequests)); + } +}; +exports.FikaFriendRequestsCacheService = FikaFriendRequestsCacheService; +exports.FikaFriendRequestsCacheService = FikaFriendRequestsCacheService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("JsonUtil")), + __param(1, (0, tsyringe_1.inject)("FileSystemSync")), + __param(2, (0, tsyringe_1.inject)("FikaConfig")), + __metadata("design:paramtypes", [typeof (_a = typeof JsonUtil_1.JsonUtil !== "undefined" && JsonUtil_1.JsonUtil) === "function" ? _a : Object, typeof (_b = typeof FileSystemSync_1.FileSystemSync !== "undefined" && FileSystemSync_1.FileSystemSync) === "function" ? _b : Object, typeof (_c = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _c : Object]) +], FikaFriendRequestsCacheService); +//# sourceMappingURL=FikaFriendRequestsCacheService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js.map b/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js.map index 2e5bd8f..7e6ef53 100644 --- a/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js.map +++ b/user/mods/fika-server/src/services/cache/FikaFriendRequestsCacheService.js.map @@ -6,5 +6,5 @@ "FikaFriendRequestsCacheService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js b/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js new file mode 100644 index 0000000..c755c2a --- /dev/null +++ b/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js @@ -0,0 +1,111 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaPlayerRelationsCacheService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const ProfileHelper_1 = require("C:/snapshot/project/obj/helpers/ProfileHelper"); +const FileSystemSync_1 = require("C:/snapshot/project/obj/utils/FileSystemSync"); +const JsonUtil_1 = require("C:/snapshot/project/obj/utils/JsonUtil"); +const FikaConfig_1 = require("../../utils/FikaConfig"); +let FikaPlayerRelationsCacheService = class FikaPlayerRelationsCacheService { + logger; + profileHelper; + jsonUtil; + fileSystemSync; + fikaConfig; + playerRelations; + playerRelationsFullPath; + playerRelationsPath = "cache/playerRelations.json"; + constructor(logger, profileHelper, jsonUtil, fileSystemSync, fikaConfig) { + this.logger = logger; + this.profileHelper = profileHelper; + this.jsonUtil = jsonUtil; + this.fileSystemSync = fileSystemSync; + this.fikaConfig = fikaConfig; + this.playerRelationsFullPath = `./${this.fikaConfig.getModPath()}${this.playerRelationsPath}`; + if (!this.fileSystemSync.exists(this.playerRelationsFullPath)) { + this.fileSystemSync.write(this.playerRelationsFullPath, "{}"); + } + this.playerRelations = this.jsonUtil.deserialize(this.fileSystemSync.read(this.playerRelationsFullPath), this.playerRelationsFullPath); + } + postInit() { + const profiles = this.profileHelper.getProfiles(); + const profileIds = Object.keys(profiles); + var shouldSave = false; + for (const profileId of profileIds) { + if (!this.playerRelations[profileId]) { + this.storeValue(profileId, { + Friends: [], + Ignore: [], + }); + continue; + } + const originalFriends = this.playerRelations[profileId].Friends; + const friendsToSearch = [...this.playerRelations[profileId].Friends]; + for (const friend of friendsToSearch) { + if (!profileIds.includes(friend)) { + const index = originalFriends.indexOf(friend); + if (index > -1) { + this.logger.warning("Deleting missing profile from friends: " + friend); + originalFriends.splice(index, 1); + shouldSave = true; + } + } + } + const originalIgnore = this.playerRelations[profileId].Ignore; + const ignoreToSearch = [...this.playerRelations[profileId].Ignore]; + for (const ignore of ignoreToSearch) { + if (!profileIds.includes(ignore)) { + const index = originalIgnore.indexOf(ignore); + if (index > -1) { + this.logger.warning("Deleting missing profile from ignores: " + ignore); + originalIgnore.splice(index, 1); + shouldSave = true; + } + } + } + } + if (shouldSave) { + this.fileSystemSync.write(this.playerRelationsFullPath, this.jsonUtil.serialize(this.playerRelations)); + } + } + getKeys() { + return Object.keys(this.playerRelations); + } + getStoredValue(key) { + if (!this.playerRelations[key]) { + this.storeValue(key, { + Friends: [], + Ignore: [], + }); + } + return this.playerRelations[key]; + } + storeValue(key, value) { + this.playerRelations[key] = value; + this.fileSystemSync.write(this.playerRelationsFullPath, this.jsonUtil.serialize(this.playerRelations)); + } +}; +exports.FikaPlayerRelationsCacheService = FikaPlayerRelationsCacheService; +exports.FikaPlayerRelationsCacheService = FikaPlayerRelationsCacheService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("WinstonLogger")), + __param(1, (0, tsyringe_1.inject)("ProfileHelper")), + __param(2, (0, tsyringe_1.inject)("JsonUtil")), + __param(3, (0, tsyringe_1.inject)("FileSystemSync")), + __param(4, (0, tsyringe_1.inject)("FikaConfig")), + __metadata("design:paramtypes", [Object, typeof (_a = typeof ProfileHelper_1.ProfileHelper !== "undefined" && ProfileHelper_1.ProfileHelper) === "function" ? _a : Object, typeof (_b = typeof JsonUtil_1.JsonUtil !== "undefined" && JsonUtil_1.JsonUtil) === "function" ? _b : Object, typeof (_c = typeof FileSystemSync_1.FileSystemSync !== "undefined" && FileSystemSync_1.FileSystemSync) === "function" ? _c : Object, typeof (_d = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _d : Object]) +], FikaPlayerRelationsCacheService); +//# sourceMappingURL=FikaPlayerRelationsCacheService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js.map b/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js.map index 2e44460..8e175a4 100644 --- a/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js.map +++ b/user/mods/fika-server/src/services/cache/FikaPlayerRelationsCacheService.js.map @@ -6,5 +6,5 @@ "FikaPlayerRelationsCacheService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js b/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js new file mode 100644 index 0000000..9d65672 --- /dev/null +++ b/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js @@ -0,0 +1,190 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b, _c, _d, _e, _f, _g; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessProfileService = void 0; +const path_1 = __importDefault(require("path")); +const ProfileController_1 = require("C:/snapshot/project/obj/controllers/ProfileController"); +const ConfigTypes_1 = require("C:/snapshot/project/obj/models/enums/ConfigTypes"); +const ConfigServer_1 = require("C:/snapshot/project/obj/servers/ConfigServer"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const FileSystem_1 = require("C:/snapshot/project/obj/utils/FileSystem"); +const HashUtil_1 = require("C:/snapshot/project/obj/utils/HashUtil"); +const InventoryHelper_1 = require("C:/snapshot/project/obj/helpers/InventoryHelper"); +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaConfig_1 = require("../../utils/FikaConfig"); +let FikaHeadlessProfileService = class FikaHeadlessProfileService { + saveServer; + logger; + hashUtil; + profileController; + fikaConfig; + configServer; + inventoryHelper; + fileSystem; + scriptsPath = path_1.default.join(__dirname, "../../../assets/scripts"); + HEAD_USEC_4 = "5fdb4139e4ed5b5ea251e4ed"; // _parent: 5cc085e214c02e000c6bea67 + VOICE_USEC_4 = "6284d6a28e4092597733b7a6"; // _parent: 5fc100cf95572123ae738483 + httpConfig; + headlessProfiles = []; + constructor(saveServer, logger, hashUtil, profileController, fikaConfig, configServer, inventoryHelper, fileSystem) { + this.saveServer = saveServer; + this.logger = logger; + this.hashUtil = hashUtil; + this.profileController = profileController; + this.fikaConfig = fikaConfig; + this.configServer = configServer; + this.inventoryHelper = inventoryHelper; + this.fileSystem = fileSystem; + this.httpConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.HTTP); + } + getHeadlessProfiles() { + return this.headlessProfiles; + } + async init() { + const headlessConfig = this.fikaConfig.getConfig().headless; + this.headlessProfiles = this.loadHeadlessProfiles(); + this.logger.info(`Found ${this.headlessProfiles.length} headless client profiles.`); + const profileAmount = headlessConfig.profiles.amount; + if (this.headlessProfiles.length < profileAmount) { + const createdProfiles = await this.createHeadlessProfiles(profileAmount); + this.logger.success(`Created ${createdProfiles.length} headless client profiles!`); + if (headlessConfig.scripts.generate) { + let ip = this.httpConfig.ip; + const port = this.httpConfig.port; + const forceIp = headlessConfig.scripts.forceIp; + if (forceIp != "") { + ip = forceIp; + } + if (ip == "0.0.0.0") { + ip = "127.0.0.1"; + } + const backendUrl = `https://${ip}:${port}`; + for (const profile of createdProfiles) { + await this.generateLaunchScript(profile.info.id, backendUrl, this.scriptsPath); + } + } + } + } + loadHeadlessProfiles() { + let profiles = []; + for (const profileId in this.saveServer.getProfiles()) { + const profile = this.saveServer.getProfile(profileId); + if (profile.info.password === "fika-headless") { + profiles.push(profile); + } + } + return profiles; + } + async createHeadlessProfiles(profileAmount) { + let profileCount = this.headlessProfiles.length; + let profileAmountToCreate = profileAmount - profileCount; + let createdProfiles = []; + for (let i = 0; i < profileAmountToCreate; i++) { + const profile = await this.createHeadlessProfile(); + createdProfiles.push(profile); + this.headlessProfiles.push(profile); + } + return createdProfiles; + } + async createHeadlessProfile() { + // Generate a unique username + const username = `headless_${this.hashUtil.generate()}`; + // Using a password allows us to know which profiles are headless client profiles. + const password = "fika-headless"; + // Random edition. Doesn't matter + const edition = "Standard"; + // Create mini profile + const profileId = await this.createMiniProfile(username, password, edition); + // Random character configs. Doesn't matter. + const newProfileData = { + side: "usec", + nickname: username, // Use the username as the nickname to ensure it is unique. + headId: this.HEAD_USEC_4, + voiceId: this.VOICE_USEC_4, + }; + const profile = await this.createFullProfile(newProfileData, profileId); + return profile; + } + async createMiniProfile(username, password, edition) { + const profileId = this.hashUtil.generate(); + const scavId = this.hashUtil.generate(); + const newProfileDetails = { + id: profileId, + scavId: scavId, + aid: this.hashUtil.generateAccountId(), + username: username, + password: password, + wipe: true, + edition: edition, + }; + this.saveServer.createProfile(newProfileDetails); + await this.saveServer.loadProfile(profileId); + await this.saveServer.saveProfile(profileId); + return profileId; + } + async createFullProfile(profileData, profileId) { + await this.profileController.createProfile(profileData, profileId); + const profile = this.saveServer.getProfile(profileId); + this.clearUnecessaryHeadlessItems(profile.characters.pmc, profileId); + return profile; + } + async generateLaunchScript(profileId, backendUrl, scriptsFolderPath) { + try { + if (!(await this.fileSystem.exists(scriptsFolderPath))) { + await this.fileSystem.ensureDir(scriptsFolderPath); + } + const templatePath = path_1.default.join(scriptsFolderPath, "_TEMPLATE.ps1"); + const templateContent = await this.fileSystem.read(templatePath); + const scriptName = `Start_headless_${profileId}.ps1`; + const scriptPath = path_1.default.join(scriptsFolderPath, scriptName); + const scriptContent = templateContent.replace("${profileId}", profileId).replace("${backendUrl}", backendUrl); + await this.fileSystem.write(scriptPath, scriptContent); + this.logger.success(`Generated launch script: /fika-server/assets/scripts/${scriptName}`); + } + catch (error) { + this.logger.error(`Failed to generate launch script: ${error}`); + } + } + clearUnecessaryHeadlessItems(pmcProfile, sessionId) { + const itemsToDelete = this.getAllHeadlessItems(pmcProfile).map((item) => item._id); + for (const itemIdToDelete of itemsToDelete) { + this.inventoryHelper.removeItem(pmcProfile, itemIdToDelete, sessionId); + } + pmcProfile.Inventory.fastPanel = {}; + } + getAllHeadlessItems(pmcProfile) { + const inventoryItems = pmcProfile.Inventory.items ?? []; + const equipmentRootId = pmcProfile?.Inventory?.equipment; + const stashRootId = pmcProfile?.Inventory.stash; + return inventoryItems.filter((item) => item.parentId == equipmentRootId || item.parentId == stashRootId); + } +}; +exports.FikaHeadlessProfileService = FikaHeadlessProfileService; +exports.FikaHeadlessProfileService = FikaHeadlessProfileService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("SaveServer")), + __param(1, (0, tsyringe_1.inject)("WinstonLogger")), + __param(2, (0, tsyringe_1.inject)("HashUtil")), + __param(3, (0, tsyringe_1.inject)("ProfileController")), + __param(4, (0, tsyringe_1.inject)("FikaConfig")), + __param(5, (0, tsyringe_1.inject)("ConfigServer")), + __param(6, (0, tsyringe_1.inject)("InventoryHelper")), + __param(7, (0, tsyringe_1.inject)("FileSystem")), + __metadata("design:paramtypes", [typeof (_a = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _a : Object, Object, typeof (_b = typeof HashUtil_1.HashUtil !== "undefined" && HashUtil_1.HashUtil) === "function" ? _b : Object, typeof (_c = typeof ProfileController_1.ProfileController !== "undefined" && ProfileController_1.ProfileController) === "function" ? _c : Object, typeof (_d = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _d : Object, typeof (_e = typeof ConfigServer_1.ConfigServer !== "undefined" && ConfigServer_1.ConfigServer) === "function" ? _e : Object, typeof (_f = typeof InventoryHelper_1.InventoryHelper !== "undefined" && InventoryHelper_1.InventoryHelper) === "function" ? _f : Object, typeof (_g = typeof FileSystem_1.FileSystem !== "undefined" && FileSystem_1.FileSystem) === "function" ? _g : Object]) +], FikaHeadlessProfileService); +//# sourceMappingURL=FikaHeadlessProfileService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js.map b/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js.map index ae04d9a..02d4af1 100644 --- a/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js.map +++ b/user/mods/fika-server/src/services/headless/FikaHeadlessProfileService.js.map @@ -6,5 +6,5 @@ "FikaHeadlessProfileService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/services/headless/FikaHeadlessService.js b/user/mods/fika-server/src/services/headless/FikaHeadlessService.js new file mode 100644 index 0000000..b0a783a --- /dev/null +++ b/user/mods/fika-server/src/services/headless/FikaHeadlessService.js @@ -0,0 +1,144 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessService = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const EFikaHeadlessWSMessageTypes_1 = require("../../models/enums/EFikaHeadlessWSMessageTypes"); +const EHeadlessStatus_1 = require("../../models/enums/EHeadlessStatus"); +const FikaConfig_1 = require("../../utils/FikaConfig"); +const FikaHeadlessRequesterWebSocket_1 = require("../../websockets/FikaHeadlessRequesterWebSocket"); +let FikaHeadlessService = class FikaHeadlessService { + fikaHeadlessRequesterWebSocket; + saveServer; + logger; + fikaConfig; + headlessClients = new Map(); + constructor(fikaHeadlessRequesterWebSocket, saveServer, logger, fikaConfig) { + this.fikaHeadlessRequesterWebSocket = fikaHeadlessRequesterWebSocket; + this.saveServer = saveServer; + this.logger = logger; + this.fikaConfig = fikaConfig; + } + getHeadlessClients() { + return this.headlessClients; + } + addHeadlessClient(sessionID, webSocket) { + this.headlessClients.set(sessionID, { webSocket: webSocket, state: EHeadlessStatus_1.EHeadlessStatus.READY }); + } + removeHeadlessClient(sessionID) { + this.headlessClients.delete(sessionID); + } + /** Begin setting up a raid for a headless client + * + * @returns returns the SessionID of the headless client that is starting this raid, returns null if no client could be found or there was an error. + */ + async startHeadlessRaid(headlessSessionID, requesterSessionID, info) { + const headlessClient = this.headlessClients.get(headlessSessionID); + if (!headlessClient || headlessClient?.state != EHeadlessStatus_1.EHeadlessStatus.READY) { + return null; + } + headlessClient.state = EHeadlessStatus_1.EHeadlessStatus.IN_RAID; + headlessClient.players = []; + headlessClient.requesterSessionID = requesterSessionID; + headlessClient.hasNotifiedRequester = false; + const headlessClientWS = headlessClient.webSocket; + if (!headlessClientWS) { + return null; + } + if (headlessClientWS.readyState === WebSocket.CLOSED) { + return null; + } + const startRequest = { + type: EFikaHeadlessWSMessageTypes_1.EFikaHeadlessWSMessageTypes.HeadlessStartRaid, + startRequest: info, + }; + await headlessClientWS.sendAsync(JSON.stringify(startRequest)); + return headlessSessionID; + } + /** Sends a join message to the requester of a headless client */ + async sendJoinMessageToRequester(headlessClientId) { + const headlessClient = this.headlessClients.get(headlessClientId); + if (!headlessClient || headlessClient?.state === EHeadlessStatus_1.EHeadlessStatus.READY) { + return null; + } + const message = { + type: EFikaHeadlessWSMessageTypes_1.EFikaHeadlessWSMessageTypes.RequesterJoinMatch, + matchId: headlessClientId, + }; + await this.fikaHeadlessRequesterWebSocket.sendAsync(headlessClient.requesterSessionID, message); + headlessClient.hasNotifiedRequester = true; + } + addPlayerToHeadlessMatch(headlessClientId, sessionID) { + const headlessClient = this.headlessClients.get(headlessClientId); + if (!headlessClient || headlessClient?.state != EHeadlessStatus_1.EHeadlessStatus.IN_RAID) { + return; + } + if (headlessClientId === sessionID) { + return; + } + headlessClient.players.push(sessionID); + if (!this.fikaConfig.getConfig().headless.setLevelToAverageOfLobby) { + // Doing this everytime is unecessary if we're not setting the average level so only set it once the original requester of the headless joins. + if (headlessClient.requesterSessionID === sessionID) { + this.setHeadlessLevel(headlessClientId); + } + } + else { + this.setHeadlessLevel(headlessClientId); + } + } + setHeadlessLevel(headlessClientId) { + const headlessClient = this.headlessClients.get(headlessClientId); + if (!headlessClient || headlessClient?.state != EHeadlessStatus_1.EHeadlessStatus.IN_RAID) { + return; + } + const headlessProfile = this.saveServer.getProfile(headlessClientId); + // Set level of headless to that of the requester. + if (!this.fikaConfig.getConfig().headless.setLevelToAverageOfLobby) { + headlessProfile.characters.pmc.Info.Level = this.saveServer.getProfile(headlessClient.requesterSessionID).characters.pmc.Info.Level; + return; + } + let baseHeadlessLevel = 0; + let players = headlessClient.players.length; + for (const sessionID of headlessClient.players) { + baseHeadlessLevel += this.saveServer.getProfile(sessionID).characters.pmc.Info.Level; + } + baseHeadlessLevel = Math.round(baseHeadlessLevel / players); + this.logger.debug(`[${headlessClientId}] Setting headless level to: ${baseHeadlessLevel} | Players: ${players}`); + headlessProfile.characters.pmc.Info.Level = baseHeadlessLevel; + } + /** End the raid for the specified headless client, sets the state back to READY so that he can be requested to host again. */ + endHeadlessRaid(headlessClientId) { + const headlessClient = this.headlessClients.get(headlessClientId); + if (!headlessClient) { + return; + } + headlessClient.state = EHeadlessStatus_1.EHeadlessStatus.READY; + headlessClient.players = null; + headlessClient.requesterSessionID = null; + headlessClient.hasNotifiedRequester = null; + } +}; +exports.FikaHeadlessService = FikaHeadlessService; +exports.FikaHeadlessService = FikaHeadlessService = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaHeadlessRequesterWebSocket")), + __param(1, (0, tsyringe_1.inject)("SaveServer")), + __param(2, (0, tsyringe_1.inject)("WinstonLogger")), + __param(3, (0, tsyringe_1.inject)("FikaConfig")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaHeadlessRequesterWebSocket_1.FikaHeadlessRequesterWebSocket !== "undefined" && FikaHeadlessRequesterWebSocket_1.FikaHeadlessRequesterWebSocket) === "function" ? _a : Object, typeof (_b = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _b : Object, Object, typeof (_c = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _c : Object]) +], FikaHeadlessService); +//# sourceMappingURL=FikaHeadlessService.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/services/headless/FikaHeadlessService.js.map b/user/mods/fika-server/src/services/headless/FikaHeadlessService.js.map index a56ab75..5cc547d 100644 --- a/user/mods/fika-server/src/services/headless/FikaHeadlessService.js.map +++ b/user/mods/fika-server/src/services/headless/FikaHeadlessService.js.map @@ -6,5 +6,5 @@ "FikaHeadlessService.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/utils/FikaConfig.js b/user/mods/fika-server/src/utils/FikaConfig.js new file mode 100644 index 0000000..53b3f55 --- /dev/null +++ b/user/mods/fika-server/src/utils/FikaConfig.js @@ -0,0 +1,215 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaConfig = void 0; +const node_path_1 = __importDefault(require("node:path")); +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const PreSptModLoader_1 = require("C:/snapshot/project/obj/loaders/PreSptModLoader"); +const JsonUtil_1 = require("C:/snapshot/project/obj/utils/JsonUtil"); +const ConfigTypes_1 = require("C:/snapshot/project/obj/models/enums/ConfigTypes"); +const ConfigServer_1 = require("C:/snapshot/project/obj/servers/ConfigServer"); +const FileSystem_1 = require("C:/snapshot/project/obj/utils/FileSystem"); +const package_json_1 = __importDefault(require("../../package.json")); +let FikaConfig = class FikaConfig { + preSptModLoader; + fileSystem; + jsonUtil; + configServer; + logger; + modAuthor; + modName; + modPath; + fikaConfig; + defaultFikaConfig = { + client: { + useBtr: true, + friendlyFire: true, + dynamicVExfils: false, + allowFreeCam: false, + allowSpectateFreeCam: false, + blacklistedItems: [], + forceSaveOnDeath: false, + mods: { + required: [], + optional: [], + }, + useInertia: true, + sharedQuestProgression: false, + canEditRaidSettings: true, + enableTransits: true, + anyoneCanStartRaid: false, + }, + server: { + SPT: { + http: { + ip: "0.0.0.0", + port: 6969, + backendIp: "0.0.0.0", + backendPort: 6969, + }, + disableSPTChatBots: true, + }, + allowItemSending: true, + sentItemsLoseFIR: true, + launcherListAllProfiles: false, + sessionTimeout: 5, + showDevProfile: false, + showNonStandardProfile: false, + logClientModsInConsole: false, + }, + natPunchServer: { + enable: false, + port: 6790, + natIntroduceAmount: 1, + }, + headless: { + profiles: { + amount: 0, + aliases: {}, + }, + scripts: { + generate: true, + forceIp: "", + }, + setLevelToAverageOfLobby: true, + restartAfterAmountOfRaids: 0, + }, + background: { + enable: true, + easteregg: false, + }, + }; + constructor(preSptModLoader, fileSystem, jsonUtil, configServer, logger) { + this.preSptModLoader = preSptModLoader; + this.fileSystem = fileSystem; + this.jsonUtil = jsonUtil; + this.configServer = configServer; + this.logger = logger; + this.modAuthor = package_json_1.default.author.replace(/\W/g, "").toLowerCase(); + this.modName = package_json_1.default.name.replace(/\W/g, "").toLowerCase(); + this.modPath = this.preSptModLoader.getModPath(this.getModFolderName()); + } + async preInit() { + const configPath = node_path_1.default.join(this.modPath, "assets/configs/fika.jsonc"); + if (!(await this.fileSystem.exists(node_path_1.default.join(configPath)))) { + await this.fileSystem.writeJson(configPath, this.defaultFikaConfig, "\t"); + } + this.fikaConfig = this.jsonUtil.deserializeJsonC(await this.fileSystem.read(configPath)); + if (await this.checkAndAddMissingConfigProperties(this.defaultFikaConfig, this.fikaConfig)) { + this.fikaConfig = this.sortProperties(this.defaultFikaConfig, this.fikaConfig); + await this.fileSystem.writeJson(configPath, this.fikaConfig, "\t"); + } + await this.applySPTConfig(this.fikaConfig.server.SPT); + } + async checkAndAddMissingConfigProperties(source, target) { + let modified = false; + for (const key in source) { + if (source.hasOwnProperty(key)) { + if (typeof source[key] === "object" && !Array.isArray(source[key])) { + if (!target.hasOwnProperty(key)) { + target[key] = {}; + modified = true; + } + const nestedModified = await this.checkAndAddMissingConfigProperties(source[key], target[key]); + if (nestedModified) { + modified = true; + } + } + else { + if (!target.hasOwnProperty(key)) { + target[key] = source[key]; + modified = true; + } + } + } + } + return modified; + } + sortProperties(source, target) { + // Cast as IFikaConfig as this is empty before sorting. + const sortedTarget = {}; + for (const key in source) { + if (source.hasOwnProperty(key)) { + if (typeof source[key] === "object" && !Array.isArray(source[key])) { + sortedTarget[key] = this.sortProperties(source[key], target[key] || {}); + } + else { + sortedTarget[key] = target[key]; + } + } + } + return sortedTarget; + } + async applySPTConfig(config) { + this.logger.info("[Fika Server] Overriding SPT configuration"); + const coreConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.CORE); + const httpConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.HTTP); + if (config.disableSPTChatBots) { + const commando = coreConfig.features.chatbotFeatures.ids.commando; + const sptFriend = coreConfig.features.chatbotFeatures.ids.spt; + coreConfig.features.chatbotFeatures.enabledBots[commando] = false; + coreConfig.features.chatbotFeatures.enabledBots[sptFriend] = false; + } + httpConfig.ip = config.http.ip; + httpConfig.port = config.http.port; + httpConfig.backendIp = config.http.backendIp; + httpConfig.backendPort = config.http.backendPort; + } + updateFikaConfig(config) { + if (config != this.fikaConfig) { + this.fikaConfig = config; + const coreConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.CORE); + const commando = coreConfig.features.chatbotFeatures.ids.commando; + const sptFriend = coreConfig.features.chatbotFeatures.ids.spt; + // Re-handle chatbot settings + if (config.server.SPT.disableSPTChatBots) { + coreConfig.features.chatbotFeatures.enabledBots[commando] = false; + coreConfig.features.chatbotFeatures.enabledBots[sptFriend] = false; + } + else { + coreConfig.features.chatbotFeatures.enabledBots[commando] = true; + coreConfig.features.chatbotFeatures.enabledBots[sptFriend] = true; + } + return true; + } + return false; + } + getConfig() { + return this.fikaConfig; + } + getModFolderName() { + return `${this.modAuthor}-${this.modName}`; + } + getModPath() { + return this.modPath; + } + getVersion() { + return package_json_1.default.version; + } +}; +exports.FikaConfig = FikaConfig; +exports.FikaConfig = FikaConfig = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("PreSptModLoader")), + __param(1, (0, tsyringe_1.inject)("FileSystem")), + __param(2, (0, tsyringe_1.inject)("JsonUtil")), + __param(3, (0, tsyringe_1.inject)("ConfigServer")), + __param(4, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof PreSptModLoader_1.PreSptModLoader !== "undefined" && PreSptModLoader_1.PreSptModLoader) === "function" ? _a : Object, typeof (_b = typeof FileSystem_1.FileSystem !== "undefined" && FileSystem_1.FileSystem) === "function" ? _b : Object, typeof (_c = typeof JsonUtil_1.JsonUtil !== "undefined" && JsonUtil_1.JsonUtil) === "function" ? _c : Object, typeof (_d = typeof ConfigServer_1.ConfigServer !== "undefined" && ConfigServer_1.ConfigServer) === "function" ? _d : Object, Object]) +], FikaConfig); +//# sourceMappingURL=FikaConfig.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/utils/FikaConfig.js.map b/user/mods/fika-server/src/utils/FikaConfig.js.map index b63b152..388caba 100644 --- a/user/mods/fika-server/src/utils/FikaConfig.js.map +++ b/user/mods/fika-server/src/utils/FikaConfig.js.map @@ -6,5 +6,5 @@ "FikaConfig.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/utils/FikaServerTools.js b/user/mods/fika-server/src/utils/FikaServerTools.js new file mode 100644 index 0000000..4c4b309 --- /dev/null +++ b/user/mods/fika-server/src/utils/FikaServerTools.js @@ -0,0 +1,115 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaServerTools = void 0; +const child_process_1 = require("child_process"); +const fs_1 = __importDefault(require("fs")); +const node_path_1 = __importDefault(require("node:path")); +const os_1 = __importDefault(require("os")); +const ConfigTypes_1 = require("C:/snapshot/project/obj/models/enums/ConfigTypes"); +const ConfigServer_1 = require("C:/snapshot/project/obj/servers/ConfigServer"); +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaConfig_1 = require("./FikaConfig"); +let FikaServerTools = class FikaServerTools { + logger; + fikaConfig; + configServer; + name = "FikaServerTools"; + exePath; + httpConfig; + processes = {}; + constructor(logger, fikaConfig, configServer) { + this.logger = logger; + this.fikaConfig = fikaConfig; + this.configServer = configServer; + switch (os_1.default.platform()) { + case "linux": { + this.exePath = node_path_1.default.join(node_path_1.default.join(__dirname, "../../"), "FikaServerTools"); + break; + } + default: { + this.exePath = node_path_1.default.join(node_path_1.default.join(__dirname, "../../"), "FikaServerTools.exe"); + break; + } + } + this.httpConfig = this.configServer.getConfig(ConfigTypes_1.ConfigTypes.HTTP); + } + startService(serviceName) { + var exeArgs; + const natPunchServerConfig = this.fikaConfig.getConfig().natPunchServer; + switch (serviceName) { + case "NatPunchServer": + const ip = this.httpConfig.ip; + const port = natPunchServerConfig.port; + const natIntroduceAmount = natPunchServerConfig.natIntroduceAmount; + exeArgs = `-NatPunchServer -IP ${ip} -Port ${port} -NatIntroduceAmount ${natIntroduceAmount}`.split(" "); + break; + default: + this.logError(this.name, `Unknown service name provided: ${serviceName}`); + return; + } + if (!fs_1.default.existsSync(this.exePath)) { + this.logError(this.name, `File not found: ${this.exePath}`); + return; + } + if (serviceName in this.processes) { + this.stopService(serviceName); + } + const process = (0, child_process_1.spawn)(this.exePath, exeArgs); + process.stdout.on("data", (data) => { + var dataStr = data.toString(); + dataStr = dataStr.substring(0, dataStr.length - 1); + this.logInfo(serviceName, dataStr); + }); + process.stderr.on("data", (data) => { + var dataStr = data.toString(); + dataStr = dataStr.substring(0, dataStr.length - 1); + this.logError(serviceName, dataStr); + }); + process.on("exit", (code) => { + this.logError(this.name, `FikaServerTools ended with code ${code}`); + }); + this.processes[serviceName] = process; + return; + } + stopService(serviceName) { + if (serviceName in this.processes) { + const process = this.processes[serviceName]; + if (process != null) { + if (!process.killed) { + process.kill(); + } + } + } + } + logInfo(serviceName, msg) { + this.logger.info(`[${serviceName}] ${msg}`); + } + logError(serviceName, msg) { + this.logger.error(`[${serviceName}] ${msg}`); + } +}; +exports.FikaServerTools = FikaServerTools; +exports.FikaServerTools = FikaServerTools = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("WinstonLogger")), + __param(1, (0, tsyringe_1.inject)("FikaConfig")), + __param(2, (0, tsyringe_1.inject)("ConfigServer")), + __metadata("design:paramtypes", [Object, typeof (_a = typeof FikaConfig_1.FikaConfig !== "undefined" && FikaConfig_1.FikaConfig) === "function" ? _a : Object, typeof (_b = typeof ConfigServer_1.ConfigServer !== "undefined" && ConfigServer_1.ConfigServer) === "function" ? _b : Object]) +], FikaServerTools); +//# sourceMappingURL=FikaServerTools.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/utils/FikaServerTools.js.map b/user/mods/fika-server/src/utils/FikaServerTools.js.map index d1eed42..1dba379 100644 --- a/user/mods/fika-server/src/utils/FikaServerTools.js.map +++ b/user/mods/fika-server/src/utils/FikaServerTools.js.map @@ -6,5 +6,5 @@ "FikaServerTools.ts" ], "names": [], - "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,iDAAsE;AACtE,4CAAoB;AACpB,0DAA6B;AAC7B,4CAAoB;AACpB,gFAA6E;AAG7E,6EAA0E;AAC1E,sEAA6E;AAE7E,6CAA0C;AAGnC,IAAM,eAAe,GAArB,MAAM,eAAe;IAQe;IACH;IACE;IATnB,IAAI,GAAW,iBAAiB,CAAC;IAC1C,OAAO,CAAS;IAChB,UAAU,CAAc;IAExB,SAAS,GAAmD,EAAE,CAAC;IAEzE,YACuC,MAAe,EAClB,UAAsB,EACpB,YAA0B;QAFzB,WAAM,GAAN,MAAM,CAAS;QAClB,eAAU,GAAV,UAAU,CAAY;QACpB,iBAAY,GAAZ,YAAY,CAAc;QAE5D,QAAQ,YAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBAC5E,MAAM;YACV,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,IAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAC,CAAC;gBAChF,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,yBAAW,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAEM,YAAY,CAAC,WAAmB;QACnC,IAAI,OAAiB,CAAC;QAEtB,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC;QAExE,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,gBAAgB;gBACjB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;gBACvC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC;gBACnE,OAAO,GAAG,uBAAuB,EAAE,UAAU,IAAI,wBAAwB,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzG,MAAM;YACV;gBACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,kCAAkC,WAAW,EAAE,CAAC,CAAC;gBAC1E,OAAO;QACf,CAAC;QAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO;QACX,CAAC;QAED,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,qBAAK,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEnD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEnD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,mCAAmC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;QAEtC,OAAO;IACX,CAAC;IAEM,WAAW,CAAC,WAAmB;QAClC,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEM,OAAO,CAAC,WAAmB,EAAE,GAAW;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,QAAQ,CAAC,WAAmB,EAAE,GAAW;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;CACJ,CAAA;AA9FY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,eAAe,CAAC,CAAA;IACvB,WAAA,IAAA,iBAAM,EAAC,YAAY,CAAC,CAAA;IACpB,WAAA,IAAA,iBAAM,EAAC,cAAc,CAAC,CAAA;iEADqB,uBAAU,oBAAV,uBAAU,oDACN,2BAAY,oBAAZ,2BAAY;GAVvD,eAAe,CA8F3B" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js b/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js new file mode 100644 index 0000000..681d9ee --- /dev/null +++ b/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js @@ -0,0 +1,103 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessClientWebSocket = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const FikaHeadlessHelper_1 = require("../helpers/FikaHeadlessHelper"); +const EFikaHeadlessWSMessageTypes_1 = require("../models/enums/EFikaHeadlessWSMessageTypes"); +const FikaMatchService_1 = require("../services/FikaMatchService"); +const FikaHeadlessService_1 = require("../services/headless/FikaHeadlessService"); +let FikaHeadlessClientWebSocket = class FikaHeadlessClientWebSocket { + fikaHeadlessHelper; + fikaHeadlessService; + fikaMatchService; + logger; + headlessWebSockets = {}; + constructor(fikaHeadlessHelper, fikaHeadlessService, fikaMatchService, logger) { + this.fikaHeadlessHelper = fikaHeadlessHelper; + this.fikaHeadlessService = fikaHeadlessService; + this.fikaMatchService = fikaMatchService; + this.logger = logger; + // Keep websocket connections alive + setInterval(async () => { + await this.keepWebSocketAlive(); + }, 30000); + } + getSocketId() { + return "Fika Headless Client"; + } + getHookUrl() { + return "/fika/headless/client"; + } + async onConnection(ws, req) { + if (req.headers.authorization === undefined) { + ws.close(); + return; + } + const Authorization = Buffer.from(req.headers.authorization.split(" ")[1], "base64").toString().split(":"); + const UserSessionID = Authorization[0]; + this.logger.debug(`[${this.getSocketId()}] User is ${UserSessionID}`); + if (!this.fikaHeadlessHelper.isHeadlessClient(UserSessionID)) { + this.logger.warning(`[${this.getSocketId()}] Invalid headless client ${UserSessionID} tried to authenticate!`); + return; + } + this.headlessWebSockets[UserSessionID] = ws; + ws.on("message", (msg) => this.onMessage(UserSessionID, msg.toString())); + ws.on("close", (code, reason) => this.onClose(ws, UserSessionID, code, reason)); + // Cleanup match if headless has crashed before re-adding it as an available client + if (this.fikaMatchService.getMatchIdByProfile(UserSessionID)) { + this.fikaMatchService.deleteMatch(UserSessionID); + } + this.fikaHeadlessService.addHeadlessClient(UserSessionID, ws); + } + // biome-ignore lint/correctness/noUnusedVariables: Currently unused, but might be implemented in the future. + onMessage(sessionID, msg) { + // Do nothing + } + // biome-ignore lint/correctness/noUnusedVariables: Currently unused, but might be implemented in the future. + onClose(ws, sessionID, code, reason) { + const clientWebSocket = this.headlessWebSockets[sessionID]; + if (clientWebSocket === ws) { + this.logger.debug(`[${this.getSocketId()}] Deleting client ${sessionID}`); + delete this.headlessWebSockets[sessionID]; + this.fikaHeadlessService.removeHeadlessClient(sessionID); + } + } + async keepWebSocketAlive() { + for (const sessionId in this.headlessWebSockets) { + const clientWebSocket = this.headlessWebSockets[sessionId]; + if (clientWebSocket.readyState === WebSocket.CLOSED) { + delete this.headlessWebSockets[sessionId]; + this.fikaHeadlessService.removeHeadlessClient(sessionId); + return; + } + let message = { + type: EFikaHeadlessWSMessageTypes_1.EFikaHeadlessWSMessageTypes.KeepAlive, + }; + // Send a keep alive message to the headless client + await clientWebSocket.sendAsync(JSON.stringify(message)); + } + } +}; +exports.FikaHeadlessClientWebSocket = FikaHeadlessClientWebSocket; +exports.FikaHeadlessClientWebSocket = FikaHeadlessClientWebSocket = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("FikaHeadlessHelper")), + __param(1, (0, tsyringe_1.inject)("FikaHeadlessService")), + __param(2, (0, tsyringe_1.inject)("FikaMatchService")), + __param(3, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof FikaHeadlessHelper_1.FikaHeadlessHelper !== "undefined" && FikaHeadlessHelper_1.FikaHeadlessHelper) === "function" ? _a : Object, typeof (_b = typeof FikaHeadlessService_1.FikaHeadlessService !== "undefined" && FikaHeadlessService_1.FikaHeadlessService) === "function" ? _b : Object, typeof (_c = typeof FikaMatchService_1.FikaMatchService !== "undefined" && FikaMatchService_1.FikaMatchService) === "function" ? _c : Object, Object]) +], FikaHeadlessClientWebSocket); +//# sourceMappingURL=FikaHeadlessClientWebSocket.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js.map b/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js.map index e91727a..7a1e6bd 100644 --- a/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js.map +++ b/user/mods/fika-server/src/websockets/FikaHeadlessClientWebSocket.js.map @@ -6,5 +6,5 @@ "FikaHeadlessClientWebSocket.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js b/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js new file mode 100644 index 0000000..c4f5d79 --- /dev/null +++ b/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js @@ -0,0 +1,97 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaHeadlessRequesterWebSocket = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const EFikaHeadlessWSMessageTypes_1 = require("../models/enums/EFikaHeadlessWSMessageTypes"); +let FikaHeadlessRequesterWebSocket = class FikaHeadlessRequesterWebSocket { + saveServer; + logger; + requesterWebSockets = {}; + constructor(saveServer, logger) { + this.saveServer = saveServer; + this.logger = logger; + // Keep websocket connections alive + setInterval(async () => { + await this.keepWebSocketAlive(); + }, 30000); + } + getSocketId() { + return "Fika Headless Requester"; + } + getHookUrl() { + return "/fika/headless/requester"; + } + async onConnection(ws, req) { + if (req.headers.authorization === undefined) { + ws.close(); + return; + } + const Authorization = Buffer.from(req.headers.authorization.split(" ")[1], "base64").toString().split(":"); + const UserSessionID = Authorization[0]; + this.logger.debug(`[${this.getSocketId()}] User is ${UserSessionID}`); + if (!this.saveServer.getProfile(UserSessionID)) { + this.logger.warning(`[${this.getSocketId()}] Invalid user ${UserSessionID} tried to authenticate!`); + return; + } + this.requesterWebSockets[UserSessionID] = ws; + ws.on("close", (code, reason) => this.onClose(ws, UserSessionID, code, reason)); + } + // biome-ignore lint/correctness/noUnusedVariables: Currently unused, but might be implemented in the future. + onClose(ws, sessionID, code, reason) { + const clientWebSocket = this.requesterWebSockets[sessionID]; + if (clientWebSocket === ws) { + this.logger.debug(`[${this.getSocketId()}] Deleting requester ${sessionID}`); + delete this.requesterWebSockets[sessionID]; + } + } + async sendAsync(sessionID, message) { + const client = this.requesterWebSockets[sessionID]; + // Client is not online or not currently connected to the websocket. + if (!client) { + this.logger.warning(`[${this.getSocketId()}] Requester (${sessionID}) is not connected yet?`); + return; + } + // Client was formerly connected to the websocket, but may have connection issues as it didn't run onClose + if (client.readyState === WebSocket.CLOSED) { + this.logger.warning(`[${this.getSocketId()}] Requester (${sessionID})'s websocket is closed?`); + return; + } + await client.sendAsync(JSON.stringify(message)); + } + async keepWebSocketAlive() { + for (const sessionId in this.requesterWebSockets) { + const clientWebSocket = this.requesterWebSockets[sessionId]; + if (clientWebSocket.readyState === WebSocket.CLOSED) { + delete this.requesterWebSockets[sessionId]; + return; + } + let message = { + type: EFikaHeadlessWSMessageTypes_1.EFikaHeadlessWSMessageTypes.KeepAlive, + }; + // Send a keep alive message to the headless client + await clientWebSocket.sendAsync(JSON.stringify(message)); + } + } +}; +exports.FikaHeadlessRequesterWebSocket = FikaHeadlessRequesterWebSocket; +exports.FikaHeadlessRequesterWebSocket = FikaHeadlessRequesterWebSocket = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("SaveServer")), + __param(1, (0, tsyringe_1.inject)("WinstonLogger")), + __metadata("design:paramtypes", [typeof (_a = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _a : Object, Object]) +], FikaHeadlessRequesterWebSocket); +//# sourceMappingURL=FikaHeadlessRequesterWebSocket.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js.map b/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js.map index c455a38..31798af 100644 --- a/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js.map +++ b/user/mods/fika-server/src/websockets/FikaHeadlessRequesterWebSocket.js.map @@ -6,5 +6,5 @@ "FikaHeadlessRequesterWebSocket.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js b/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js new file mode 100644 index 0000000..fc5523c --- /dev/null +++ b/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js @@ -0,0 +1,107 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FikaNotificationWebSocket = void 0; +const tsyringe_1 = require("C:/snapshot/project/node_modules/tsyringe"); +const SaveServer_1 = require("C:/snapshot/project/obj/servers/SaveServer"); +const EFikaNotifications_1 = require("../models/enums/EFikaNotifications"); +const FikaPresenceService_1 = require("../services/FikaPresenceService"); +let FikaNotificationWebSocket = class FikaNotificationWebSocket { + saveServer; + logger; + fikaPresenceService; + clientWebSockets; + constructor(saveServer, logger, fikaPresenceService) { + this.saveServer = saveServer; + this.logger = logger; + this.fikaPresenceService = fikaPresenceService; + this.clientWebSockets = {}; + // Keep websocket connections alive + setInterval(async () => { + await this.keepWebSocketAlive(); + }, 30000); + } + getSocketId() { + return "Fika Notification Manager"; + } + getHookUrl() { + return "/fika/notification/"; + } + async onConnection(ws, req) { + if (req.headers.authorization === undefined) { + ws.close(); + return; + } + const Authorization = Buffer.from(req.headers.authorization.split(" ")[1], "base64").toString().split(":"); + const UserSessionID = Authorization[0]; + this.logger.debug(`[${this.getSocketId()}] User is ${UserSessionID}`); + if (!this.saveServer.getProfile(UserSessionID)) { + this.logger.warning(`[${this.getSocketId()}] Invalid user ${UserSessionID} tried to authenticate!`); + return; + } + this.clientWebSockets[UserSessionID] = ws; + ws.on("message", (msg) => this.onMessage(UserSessionID, msg.toString())); + ws.on("close", (code, reason) => this.onClose(ws, UserSessionID, code, reason)); + this.fikaPresenceService.addPlayerPresence(UserSessionID); + } + // biome-ignore lint/correctness/noUnusedVariables: Currently unused, but might be implemented in the future. + onMessage(sessionID, msg) { + // Do nothing + } + // biome-ignore lint/correctness/noUnusedVariables: Currently unused, but might be implemented in the future. + onClose(ws, sessionID, code, reason) { + const clientWebSocket = this.clientWebSockets[sessionID]; + if (clientWebSocket === ws) { + this.logger.debug(`[${this.getSocketId()}] Deleting client ${sessionID}`); + delete this.clientWebSockets[sessionID]; + } + this.fikaPresenceService.removePlayerPresence(sessionID); + } + // Send functionality for sending to a single client. + async sendAsync(sessionID, message) { + const client = this.clientWebSockets[sessionID]; + // Client is not online or not currently connected to the websocket. + if (!client) { + return; + } + // Client was formerly connected to the websocket, but may have connection issues as it didn't run onClose + if (client.readyState === WebSocket.CLOSED) { + return; + } + await client.sendAsync(JSON.stringify(message)); + } + async broadcast(message) { + for (const sessionID in this.clientWebSockets) { + await this.sendAsync(sessionID, message); + } + } + async keepWebSocketAlive() { + for (const sessionID in this.clientWebSockets) { + let message = { + type: EFikaNotifications_1.EFikaNotifications.KeepAlive, + }; + await this.sendAsync(sessionID, message); + } + } +}; +exports.FikaNotificationWebSocket = FikaNotificationWebSocket; +exports.FikaNotificationWebSocket = FikaNotificationWebSocket = __decorate([ + (0, tsyringe_1.injectable)(), + __param(0, (0, tsyringe_1.inject)("SaveServer")), + __param(1, (0, tsyringe_1.inject)("WinstonLogger")), + __param(2, (0, tsyringe_1.inject)("FikaPresenceService")), + __metadata("design:paramtypes", [typeof (_a = typeof SaveServer_1.SaveServer !== "undefined" && SaveServer_1.SaveServer) === "function" ? _a : Object, Object, typeof (_b = typeof FikaPresenceService_1.FikaPresenceService !== "undefined" && FikaPresenceService_1.FikaPresenceService) === "function" ? _b : Object]) +], FikaNotificationWebSocket); +//# sourceMappingURL=FikaNotificationWebSocket.js.map \ No newline at end of file diff --git a/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js.map b/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js.map index 5da814f..2338a84 100644 --- a/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js.map +++ b/user/mods/fika-server/src/websockets/FikaNotificationWebSocket.js.map @@ -6,5 +6,5 @@ "FikaNotificationWebSocket.ts" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file