This commit is contained in:
GetParanoid 2025-07-18 13:40:11 -07:00
parent 55ebd481bc
commit 8493972695
190 changed files with 10732 additions and 146 deletions

View file

@ -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]

View file

@ -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

View file

@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,5 +1,5 @@
{
"enabled": false,
"enabled": true,
"maxBackups": 15,
"directory": "./user/profiles/backups",
"backupInterval": {

View file

@ -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
"backendIp": "127.0.0.1",
"backendPort": 6969,
"webSocketPingDelayMs": 90000,
"logRequests": true,
"serverImagePathOverride": {}
}

View file

@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,11
[InternetShortcut]
IDList=
URL=https://hub.sp-tarkov.com/advertising-disclaimer/

Binary file not shown.

View file

@ -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

View file

@ -0,0 +1,3 @@
{
"CurrentlySelectedPreset":"test"
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -0,0 +1,9 @@
{
"name": "SVM",
"author": "GhostFenixx",
"version": "1.11.1",
"sptVersion": "3.11.x",
"license": "PUSL",
"devdependencies": {},
"main": "src/SVM.js"
}

View file

@ -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"]
}

View file

@ -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-"]
}

File diff suppressed because it is too large Load diff

View file

@ -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": ""
}
}

View file

@ -1,59 +1,59 @@
{
"background": {
"easteregg": false,
"enable": true
},
"client": {
"useBtr": true,
"friendlyFire": true,
"dynamicVExfils": false,
"allowFreeCam": false,
"allowSpectateFreeCam": false,
"anyoneCanStartRaid": true,
"blacklistedItems": [],
"canEditRaidSettings": true,
"dynamicVExfils": false,
"enableTransits": true,
"forceSaveOnDeath": false,
"friendlyFire": true,
"forceSaveOnDeath": true,
"mods": {
"optional": [],
"required": []
"required": [],
"optional": []
},
"useInertia": true,
"sharedQuestProgression": true,
"useBtr": true,
"useInertia": true
},
"headless": {
"profiles": {
"aliases": {},
"amount": 1
},
"restartAfterAmountOfRaids": 0,
"scripts": {
"forceIp": "",
"generate": true
},
"setLevelToAverageOfLobby": true
},
"natPunchServer": {
"enable": "",
"natIntroduceAmount": "",
"port": ""
"canEditRaidSettings": true,
"enableTransits": true,
"anyoneCanStartRaid": true
},
"server": {
"SPT": {
"disableSPTChatBots": true,
"http": {
"backendIp": "0.0.0.0",
"backendPort": 6969,
"ip": "0.0.0.0",
"port": 6969
}
"port": 6969,
"backendIp": "0.0.0.0",
"backendPort": 6969
},
"disableSPTChatBots": true
},
"allowItemSending": true,
"sentItemsLoseFIR": true,
"launcherListAllProfiles": false,
"logClientModsInConsole": false,
"sentItemsLoseFIR": false,
"sessionTimeout": 5,
"showDevProfile": false,
"showNonStandardProfile": 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
}
}

View file

@ -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"
}

View file

@ -1 +1 @@
{"6879deb69450db5e1800223e":{"Friends":[],"Ignore":[]}}
{"6879f6c10002c57d66dfeb39":{"Friends":[],"Ignore":[]},"687a982bf3ffa8709400227e":{"Friends":[],"Ignore":[]}}

View file

@ -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

File diff suppressed because one or more lines are too long

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

File diff suppressed because one or more lines are too long

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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

View file

@ -6,5 +6,5 @@
"FikaRaidController.ts"
],
"names": [],
"mappings": "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"
"mappings": "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"
}

View file

@ -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

View file

@ -6,5 +6,5 @@
"FikaSendItemController.ts"
],
"names": [],
"mappings": "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"
"mappings": "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"
}

View file

@ -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

View file

@ -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"
}

View file

@ -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", 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

File diff suppressed because one or more lines are too long

View file

@ -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

View file

@ -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

View file

@ -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

File diff suppressed because one or more lines are too long

View file

@ -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

View file

@ -6,5 +6,5 @@
"FikaHeadlessHelper.ts"
],
"names": [],
"mappings": "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"
"mappings": "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"
}

View file

@ -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

File diff suppressed because one or more lines are too long

View file

@ -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

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFriendRequestListResponse.js.map

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaFriendRequests.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaMatch.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaPlayer.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaPlayerRelations.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaConfig.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaConfigBackground.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaConfigClient.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaConfigHeadless.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaConfigNatPunchServer.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaConfigServer.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IHeadlessAvailableClients.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IHeadlessClientInfo.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IHeadlessClients.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IHeadlessRestartAfterAmountOfRaids.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaInsurancePlayer.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaPlayerPresence.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaRaidPresence.js.map

View file

@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=IFikaSetPresence.js.map

Some files were not shown because too many files have changed in this diff Show more