2023-07-21 13:38:52 +02:00
|
|
|
using System.Collections.Immutable;
|
2020-09-29 14:26:00 +02:00
|
|
|
using System.IO;
|
|
|
|
|
using System.Net;
|
2021-11-22 19:08:27 +01:00
|
|
|
using System.Text.Json;
|
2020-11-10 16:50:28 +01:00
|
|
|
using System.Threading;
|
2020-09-29 14:26:00 +02:00
|
|
|
using System.Threading.Tasks;
|
2021-11-22 19:08:27 +01:00
|
|
|
using Content.Server.Administration.Logs;
|
2021-12-25 02:07:12 +01:00
|
|
|
using Content.Shared.Administration.Logs;
|
2021-06-13 14:52:40 +02:00
|
|
|
using Content.Shared.CCVar;
|
2023-07-21 13:38:52 +02:00
|
|
|
using Content.Shared.Database;
|
2020-09-29 14:26:00 +02:00
|
|
|
using Content.Shared.Preferences;
|
2024-06-01 05:08:31 -07:00
|
|
|
using Content.Shared.Roles;
|
2020-09-29 14:26:00 +02:00
|
|
|
using Microsoft.Data.Sqlite;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using Npgsql;
|
2022-08-07 08:00:42 +02:00
|
|
|
using Prometheus;
|
2021-02-11 01:13:03 -08:00
|
|
|
using Robust.Shared.Configuration;
|
|
|
|
|
using Robust.Shared.ContentPack;
|
2020-09-29 14:26:00 +02:00
|
|
|
using Robust.Shared.Network;
|
2024-06-01 05:08:31 -07:00
|
|
|
using Robust.Shared.Prototypes;
|
2020-09-29 14:26:00 +02:00
|
|
|
using LogLevel = Robust.Shared.Log.LogLevel;
|
2021-02-13 17:51:54 +01:00
|
|
|
using MSLogLevel = Microsoft.Extensions.Logging.LogLevel;
|
2020-09-29 14:26:00 +02:00
|
|
|
|
|
|
|
|
namespace Content.Server.Database
|
|
|
|
|
{
|
|
|
|
|
public interface IServerDbManager
|
|
|
|
|
{
|
|
|
|
|
void Init();
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
void Shutdown();
|
|
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#region Preferences
|
2024-05-07 06:21:03 +02:00
|
|
|
Task<PlayerPreferences> InitPrefsAsync(
|
|
|
|
|
NetUserId userId,
|
|
|
|
|
ICharacterProfile defaultProfile,
|
|
|
|
|
CancellationToken cancel);
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
Task SaveSelectedCharacterIndexAsync(NetUserId userId, int index);
|
2020-11-10 16:50:28 +01:00
|
|
|
|
2020-10-06 12:03:14 +02:00
|
|
|
Task SaveCharacterSlotAsync(NetUserId userId, ICharacterProfile? profile, int slot);
|
2020-11-10 16:50:28 +01:00
|
|
|
|
2021-02-14 11:59:56 -03:00
|
|
|
Task SaveAdminOOCColorAsync(NetUserId userId, Color color);
|
|
|
|
|
|
2020-10-07 18:02:10 +02:00
|
|
|
// Single method for two operations for transaction.
|
|
|
|
|
Task DeleteSlotAndSetSelectedIndex(NetUserId userId, int deleteSlot, int newSlot);
|
2024-05-07 06:21:03 +02:00
|
|
|
Task<PlayerPreferences?> GetPlayerPreferencesAsync(NetUserId userId, CancellationToken cancel);
|
2021-11-22 19:08:27 +01:00
|
|
|
#endregion
|
2020-09-29 14:26:00 +02:00
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#region User Ids
|
2020-09-29 14:26:00 +02:00
|
|
|
// Username assignment (for guest accounts, so they persist GUID)
|
|
|
|
|
Task AssignUserIdAsync(string name, NetUserId userId);
|
|
|
|
|
Task<NetUserId?> GetAssignedUserIdAsync(string name);
|
2021-11-22 19:08:27 +01:00
|
|
|
#endregion
|
2020-09-29 14:26:00 +02:00
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#region Bans
|
2021-02-13 17:51:54 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// Looks up a ban by id.
|
|
|
|
|
/// This will return a pardoned ban as well.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id">The ban id to look for.</param>
|
|
|
|
|
/// <returns>The ban with the given id or null if none exist.</returns>
|
|
|
|
|
Task<ServerBanDef?> GetServerBanAsync(int id);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Looks up an user's most recent received un-pardoned ban.
|
|
|
|
|
/// This will NOT return a pardoned ban.
|
|
|
|
|
/// One of <see cref="address"/> or <see cref="userId"/> need to not be null.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="address">The ip address of the user.</param>
|
|
|
|
|
/// <param name="userId">The id of the user.</param>
|
2024-11-12 01:51:23 +01:00
|
|
|
/// <param name="hwId">The legacy HWID of the user.</param>
|
|
|
|
|
/// <param name="modernHWIds">The modern HWIDs of the user.</param>
|
2021-02-13 17:51:54 +01:00
|
|
|
/// <returns>The user's latest received un-pardoned ban, or null if none exist.</returns>
|
2021-03-22 01:30:50 +01:00
|
|
|
Task<ServerBanDef?> GetServerBanAsync(
|
|
|
|
|
IPAddress? address,
|
|
|
|
|
NetUserId? userId,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableArray<byte>? hwId,
|
|
|
|
|
ImmutableArray<ImmutableArray<byte>>? modernHWIds);
|
2021-02-13 17:51:54 +01:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Looks up an user's ban history.
|
|
|
|
|
/// One of <see cref="address"/> or <see cref="userId"/> need to not be null.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="address">The ip address of the user.</param>
|
|
|
|
|
/// <param name="userId">The id of the user.</param>
|
2024-11-12 01:51:23 +01:00
|
|
|
/// <param name="hwId">The legacy HWId of the user.</param>
|
|
|
|
|
/// <param name="modernHWIds">The modern HWIDs of the user.</param>
|
2022-02-02 22:57:11 +01:00
|
|
|
/// <param name="includeUnbanned">If true, bans that have been expired or pardoned are also included.</param>
|
2021-02-13 17:51:54 +01:00
|
|
|
/// <returns>The user's ban history.</returns>
|
2021-03-22 01:30:50 +01:00
|
|
|
Task<List<ServerBanDef>> GetServerBansAsync(
|
|
|
|
|
IPAddress? address,
|
|
|
|
|
NetUserId? userId,
|
2022-02-02 22:57:11 +01:00
|
|
|
ImmutableArray<byte>? hwId,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableArray<ImmutableArray<byte>>? modernHWIds,
|
2022-02-02 22:57:11 +01:00
|
|
|
bool includeUnbanned=true);
|
2021-02-13 17:51:54 +01:00
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
Task AddServerBanAsync(ServerBanDef serverBan);
|
2021-02-13 17:51:54 +01:00
|
|
|
Task AddServerUnbanAsync(ServerUnbanDef serverBan);
|
2023-04-03 02:24:55 +02:00
|
|
|
|
2023-07-21 13:38:52 +02:00
|
|
|
public Task EditServerBan(
|
|
|
|
|
int id,
|
|
|
|
|
string reason,
|
|
|
|
|
NoteSeverity severity,
|
2024-02-20 10:13:31 +01:00
|
|
|
DateTimeOffset? expiration,
|
2023-07-21 13:38:52 +02:00
|
|
|
Guid editedBy,
|
2024-02-20 10:13:31 +01:00
|
|
|
DateTimeOffset editedAt);
|
2023-07-21 13:38:52 +02:00
|
|
|
|
2023-04-03 02:24:55 +02:00
|
|
|
/// <summary>
|
|
|
|
|
/// Update ban exemption information for a player.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>
|
|
|
|
|
/// Database rows are automatically created and removed when appropriate.
|
|
|
|
|
/// </remarks>
|
|
|
|
|
/// <param name="userId">The user to update</param>
|
|
|
|
|
/// <param name="flags">The new ban exemption flags.</param>
|
|
|
|
|
Task UpdateBanExemption(NetUserId userId, ServerBanExemptFlags flags);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Get current ban exemption flags for a user
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns><see cref="ServerBanExemptFlags.None"/> if the user is not exempt from any bans.</returns>
|
2024-08-20 23:31:33 +02:00
|
|
|
Task<ServerBanExemptFlags> GetBanExemption(NetUserId userId, CancellationToken cancel = default);
|
2023-04-03 02:24:55 +02:00
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#endregion
|
2020-09-29 14:26:00 +02:00
|
|
|
|
2022-02-21 14:11:39 -08:00
|
|
|
#region Role Bans
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Looks up a role ban by id.
|
|
|
|
|
/// This will return a pardoned role ban as well.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id">The role ban id to look for.</param>
|
|
|
|
|
/// <returns>The role ban with the given id or null if none exist.</returns>
|
|
|
|
|
Task<ServerRoleBanDef?> GetServerRoleBanAsync(int id);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Looks up an user's role ban history.
|
|
|
|
|
/// This will return pardoned role bans based on the <see cref="includeUnbanned"/> bool.
|
|
|
|
|
/// Requires one of <see cref="address"/>, <see cref="userId"/>, or <see cref="hwId"/> to not be null.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="address">The IP address of the user.</param>
|
|
|
|
|
/// <param name="userId">The NetUserId of the user.</param>
|
|
|
|
|
/// <param name="hwId">The Hardware Id of the user.</param>
|
2024-11-12 01:51:23 +01:00
|
|
|
/// <param name="modernHWIds">The modern HWIDs of the user.</param>
|
2022-02-21 14:11:39 -08:00
|
|
|
/// <param name="includeUnbanned">Whether expired and pardoned bans are included.</param>
|
|
|
|
|
/// <returns>The user's role ban history.</returns>
|
|
|
|
|
Task<List<ServerRoleBanDef>> GetServerRoleBansAsync(
|
|
|
|
|
IPAddress? address,
|
|
|
|
|
NetUserId? userId,
|
|
|
|
|
ImmutableArray<byte>? hwId,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableArray<ImmutableArray<byte>>? modernHWIds,
|
2022-02-21 14:11:39 -08:00
|
|
|
bool includeUnbanned = true);
|
|
|
|
|
|
2023-09-28 16:46:39 -07:00
|
|
|
Task<ServerRoleBanDef> AddServerRoleBanAsync(ServerRoleBanDef serverBan);
|
2022-02-21 14:11:39 -08:00
|
|
|
Task AddServerRoleUnbanAsync(ServerRoleUnbanDef serverBan);
|
2023-07-21 13:38:52 +02:00
|
|
|
|
|
|
|
|
public Task EditServerRoleBan(
|
|
|
|
|
int id,
|
|
|
|
|
string reason,
|
|
|
|
|
NoteSeverity severity,
|
2024-02-20 10:13:31 +01:00
|
|
|
DateTimeOffset? expiration,
|
2023-07-21 13:38:52 +02:00
|
|
|
Guid editedBy,
|
2024-02-20 10:13:31 +01:00
|
|
|
DateTimeOffset editedAt);
|
2022-02-21 14:11:39 -08:00
|
|
|
#endregion
|
|
|
|
|
|
2022-08-07 08:00:42 +02:00
|
|
|
#region Playtime
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Look up a player's role timers.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="player">The player to get the role timer information from.</param>
|
2024-05-07 06:21:03 +02:00
|
|
|
/// <param name="cancel"></param>
|
2022-08-07 08:00:42 +02:00
|
|
|
/// <returns>All role timers belonging to the player.</returns>
|
2024-05-07 06:21:03 +02:00
|
|
|
Task<List<PlayTime>> GetPlayTimes(Guid player, CancellationToken cancel = default);
|
2022-08-07 08:00:42 +02:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Update play time information in bulk.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="updates">The list of all updates to apply to the database.</param>
|
|
|
|
|
Task UpdatePlayTimes(IReadOnlyCollection<PlayTimeUpdate> updates);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#region Player Records
|
2021-03-22 01:30:50 +01:00
|
|
|
Task UpdatePlayerRecordAsync(
|
|
|
|
|
NetUserId userId,
|
|
|
|
|
string userName,
|
|
|
|
|
IPAddress address,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableTypedHwid? hwId);
|
2020-11-10 16:50:28 +01:00
|
|
|
Task<PlayerRecord?> GetPlayerRecordByUserName(string userName, CancellationToken cancel = default);
|
|
|
|
|
Task<PlayerRecord?> GetPlayerRecordByUserId(NetUserId userId, CancellationToken cancel = default);
|
2021-11-22 19:08:27 +01:00
|
|
|
#endregion
|
2020-09-29 14:26:00 +02:00
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#region Connection Logs
|
2022-02-02 22:57:11 +01:00
|
|
|
/// <returns>ID of newly inserted connection log row.</returns>
|
|
|
|
|
Task<int> AddConnectionLogAsync(
|
2021-03-22 01:30:50 +01:00
|
|
|
NetUserId userId,
|
|
|
|
|
string userName,
|
|
|
|
|
IPAddress address,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableTypedHwid? hwId,
|
|
|
|
|
float trust,
|
2023-12-06 23:48:56 +01:00
|
|
|
ConnectionDenyReason? denied,
|
|
|
|
|
int serverId);
|
2022-02-02 22:57:11 +01:00
|
|
|
|
|
|
|
|
Task AddServerBanHitsAsync(int connection, IEnumerable<ServerBanDef> bans);
|
|
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#endregion
|
2020-10-30 16:06:48 +01:00
|
|
|
|
2021-11-22 19:08:27 +01:00
|
|
|
#region Admin Ranks
|
2020-11-10 16:50:28 +01:00
|
|
|
Task<Admin?> GetAdminDataForAsync(NetUserId userId, CancellationToken cancel = default);
|
|
|
|
|
Task<AdminRank?> GetAdminRankAsync(int id, CancellationToken cancel = default);
|
|
|
|
|
|
|
|
|
|
Task<((Admin, string? lastUserName)[] admins, AdminRank[])> GetAllAdminAndRanksAsync(
|
|
|
|
|
CancellationToken cancel = default);
|
|
|
|
|
|
|
|
|
|
Task RemoveAdminAsync(NetUserId userId, CancellationToken cancel = default);
|
|
|
|
|
Task AddAdminAsync(Admin admin, CancellationToken cancel = default);
|
|
|
|
|
Task UpdateAdminAsync(Admin admin, CancellationToken cancel = default);
|
|
|
|
|
|
Upstream sync (#786)
* Box Station - Dechristmassified (#34135)
* dechrismassified
* removed camera from shower
* Marathon Station - Dechristmassified (#34136)
* dechristmassified
* further dechristmassified
* Loop Station Decal and maints additions (#34103)
* many changes
* contentingregrationtests
* serialized invalid removed
* blank
* "Changes and fixes as suggested"
* blank
* blank
* added desk bells
* engi rework rework rework
* added gate to content integration
* tweaks
* aaa
* bbb
* added holopads
* ccc
* Update default.yml
* hotfix
* aaa
* bbb
* many many tweaks and fixes
* aaa
* decals and maints
* aaa
* bbb
* ccc
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Rename cryobed yml file (#34134)
renamed cryopod.yml to cryogenic_sleep_unit.yml
* Cog update (not very merry) (#34144)
removed christmas merry
* bagel update (#34145)
* Add hair pulato (#34117)
* add sprite pulato
* update
* add pulato hair
* add pulato hair
* add pulato hair
* update meta "pulato"
* Automatic changelog update
* Holopad UI tweak for incoming calls (#34137)
* Initial commit
* Update
* Comment correction
* Minor margin increase
* Holopads no longer log broadcasted speech and emotes in the chat (#34114)
Initial commit
* Automatic changelog update
* Fixes borgs not being able to check their laws in crit (#34133)
* fix
* fix2
* Add contraband parent to laser gun safe (#34132)
* Automatic changelog update
* Add Holopad Circuit Board to A/V Communication Technology (#34150)
Added the holopad circuit board to the AV Communication technology and circuit imprinter lathe.
* Automatic changelog update
* Fix disposal signal routers sprites (#34139)
* Fix disposal signal routers sprites
* Remove old shitcode
* Automatic changelog update
* Meta station overhaul (#33506)
* added mail, moved some things around, and fixed a lot of APCs
* fixed my mistakes
* Fixed a few mistakes and AI camera names
* Redid south medbay and more wiring
* Finished sci overhaul, and fixed all issues that I could find.
* rebuilt botany, removed vox box, fixed all known issues.
* Overhauled security
* Minor commit as I prepare to update my copy
* Rebalanced role counts
* Final changes, ready for review!
* Emisse and other people fixed issues with the station
* Finalized changes (for real this time)!
* Standardize shotgun ammo in storagefills (#34156)
shotgun ammo changes
* Automatic changelog update
* meta update (#34158)
* Amber Station Adjustments (#34126)
* Made a couple fixes to various decals, cleaned up some entities, gave the clown their bag and the bartender a handlabeler
* Several changes, more cameras, lighting fixes, adjusted hydro a bit, gave sec a bunch of shutters
* Added new random spawners for science and added them to Amber
* fixed the science spawners and modified amber slightly
* Fixed the random instrument entry
* Fix friendly vent spiders (#34153)
Swapped order of parents for MobGiantSpiderAngry
* Removed UseDelay component from RCD (#34149)
* Automatic changelog update
* Decrease hp for rusted walls (#34043)
* Automatic changelog update
* FIX: Thief beacon doubled steal targets (#33750)
* Automatic changelog update
* remove nukemass song (#34066)
* Automatic changelog update
* Corrected all ghost role names to title case. (#34155)
* Corrected all ghost role names to title case.
* Removes full stop from Hamlet's title.
* Updated ghost role names not in the main ghost roles .ftl
* Two capitals corrections
* Packed Update (Remove Christmas & New Evac) (#34168)
* Packed update (remove christmas, new shuttle)
* Fix invalid
* the voices
* Omega Update (Remove Christmas) (#34174)
omega soap
* Renamed "Irish Car Bomb" drink to "Irish Slammer" (#34107)
* Renamed "Irish Car Bomb" drink to "Irish Slammer", due to concerns over insensitivity.
* Fixing some missed references
* Added prototype id changes to migration.yml. Removed any reference to the troubles (and corrected ale to stout for flavour text).
* Corrected description back to "Irish Cream"
* Removed non-entities from migration.yml
* Automatic changelog update
* Bugfix for the AI player's eye getting stuck when their broadcast is interrupted (#34093)
Initial commit
* Speech is relayed by holopad holograms (#33978)
* Initial commit
* Corrected a field attribute
* Make JPEG a PNG (#34176)
Make 3.png a PNG
* Removed Undesirable Ion Storm Verbs (#34175)
* Remove Undesirable Laws
* empty
* added basic admin logs for PDA notekeeper notes (#34118)
* added basic admin logs for PDA notekeeper notes
* formatting
* added new LogType 'PdaInteract' and changed PDA notekeeper logs to it
---------
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Sprites defined for all non-generic computer boards. Added new syndicate computer board sprite. (#34104)
* Defined sprites for non-generic computer boards. Added new syndicate computer board sprite.
* Added new sprite to meta.json and updated attribution.
* Reformatted module.rsi meta.json to match other meta file styles.
* Syndicate board sprite made less yellow/gold, changed outer chips to black. Using grey/silver for CPU centre, akin to syndie agent PDA theme, and to keep distinctive from security board.
* Corrected indentation spacing for currently edited entities.
* Update Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
* add pr link to attribution
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Added pricegun sound (#34119)
added pricegun sound
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Separate Tables n' Counters (#32673)
* Update tables.yml
* Remove Extra base: state_
* Update tables.yml
* Automatic changelog update
* Add Chameleon PDA (#30514)
* V1 commit
* Remove PDA name and unnecessary pda state
* Adds PDA to Chameleon backpack & thief toolbox
* Change to use AppearanceDataInit
* Add basic PDA state to ensure there's always a sprite before AppearanceData can be applied
* Revert PDA name (this will be changed to another way later)
* Update PDA name updating to new system
* Fix yaml, and fix Agent ID chameleon
* Updated based on review
* Automatic changelog update
* Add some ion storm actions to replace removed ones (#34180)
* Add some ion storm actions to replace removed ones
* Remove other country references, replace
* Some more tuning of the storm values, removing real-world countries
* boldy basics
* Automatic changelog update
* Amber Station and Science Spawner Tweaks (#34187)
* Modified science spawners a bit since I realized including maints loot was undesireable
* Linked Medical doors to buttons, redesigned the floor of the dining area a bit, placed more science spawners
* Somehow I overlooked that I was importing the maints loot table instead of the sci loot table
* Gave sci an EOD closet
* named the evac shuttle
* Core update (#34201)
add
* Elkridge Depot (The station formerly known as Cell) (#34085)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* Add Elkridge Depot into Map Rotation (#34206)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* added Elkridge to default map pool
* added myself to map_attribution.yml credits
* Automatic changelog update
* Packed Update (#34208)
Packed Update (decals mostly)
* Apply forensics when loading with an ammo box (#32280)
* Automatic changelog update
* Update Credits (#34220)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix rainbow lizard plushie inhands (#34128)
* fix rainbow plushie inhands
* address requested changes
* attribute sprites
* wielding refactor/fixes (#32188)
* refactor wieldable events
* fix inconsitency with wielding and use updated events
* wieldable cosmetic refactoring
* Update Content.Shared/Wieldable/Events.cs
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* real
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Automatic changelog update
* Lobby chat width and custom lobby titles (#33783)
* lobby name cvar
* panel width
* skrek
* server name localization fix
* comment format fix
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* remove redundant newline
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* string.empty
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* use SetWidth
* Update Resources/Locale/en-US/lobby/lobby-gui.ftl
---------
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds bullet collision to station lights (#34070)
Adds collision with bullets to lights
* Automatic changelog update
* Oasis Update (#34245)
santa is keel.
* Amber Station - Minor Fixes (#34246)
* Moved the stand clear decal in front of the janitor's shutters up two pixels
* added tech maints under most maints doors, fixed power issues in cargo, and fixed a couple minor issues
* Make station anchor hitbox less insufferable (#34217)
* Automatic changelog update
* Remove kessler and zombeteors gamemodes from the secret pool (#34051)
* Remove kessler, zombeteors gameodes
* Probably should keep the protos in case an admin wants to torture players secretly
* address slart review
* Automatic changelog update
* Added distinct ad and bye chatter to Dr. Gibb vending (#34182)
* Added distinct ad and bye chatter to Dr. Gibb vending
* Correcting revert mistake
* Changed ad pack names to better match naming convention
* Implement approved rule changes (#34233)
* Special reagents now appear in the guidebook (#34265)
* Special reagents now appear in the guidebook
* Improved guidebook wording for reagent category
* Automatic changelog update
* Implement approved rule changes (#34233)
* Fix compilation errors in tests from update (#34272)
Required for https://github.com/space-wizards/RobustToolbox/pull/5590 to not cause compile fails, but can be merged on its own
* Fix portable scrubber appearing powered on spawn (#34274)
* [HOTFIX] Fix chameleon PDAs renaming IDs (#34249)
Fix chameleon PDA
* [HOTFIX] Fix Meta station power (#34256)
* hotfix meta power
* fixed AME
* add missing cargo shuttle pilot console to cargo
* Update vessel_warning.ogg (#34263)
* Update vessel_warning.ogg
Remove DC offset and apply short fade out.
* Update attributions.yml
* Update attributions.yml
* Add bleating accent to goats (#34273)
* Automatic changelog update
* Happy New Year (#34288)
happy new year
* Amber Station - Balance Improvements (#34294)
changed the center area in med bay to a garden, weakened meteor shielding in some areas, also general touch ups around the station
* Fixed Loop Station's southern solar array unlinked airlocks (#34296)
Fixed Southern solar external airlock door bolts
* Fix empty lines in adminwho with stealthmins. (#34122)
Don't print newline if admin is hidden.
* Automatic changelog update
* Added missing cameras to Loop Station (#34308)
* Added missing cameras
* Added missing cameras
* Amber Station - Fixes and Warm Lights (#34324)
* Added warm lights, placed them around the map, also fixed an issue with the MV wire in the cafeteria
* Fixed lv wiring in caf, and adjusted a couple things
* Empty commit to force checks to rerun
* Automatic changelog update
* change locking to use ComplexInteraction (#34326)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Automatic changelog update
* Drink titles and soda vendor consistency (#34178)
* Made capitalisation of proper names consistent.
* Roy Rogers is presumably a proper name.
* Second pass at distinguishing proper names only.
* Two nitpicking/minor changes
* Fixed some overlooked can brand names. Matched case with descriptions.
* Switched generic sodas with brands for SodaInventory
* Removed commonly available branded cans
* Matched case consistency used elsewhere. Minor SPAG corrections.
* Added "nothing" and some missing alcohol bottles to RandomSpawner
* Added distinct ad and bye chatter to Dr. Gibb machines.
* Revert "Added distinct ad and bye chatter to Dr. Gibb machines."
This reverts commit f90b8a470556de05aca81255db8b6b03596ae944.
* Revert "Removed commonly available branded cans"
This reverts commit 43b82168dac1f73b187b7677f34ecdd33b6bb81a.
* Revert "Switched generic sodas with brands for SodaInventory"
This reverts commit f1790f0ce61ef135c79068de6a741e8bb50d85d3.
* Lowercased DrinkGlass suffix. Moved alcoholic drinks from drinks to alcohol.
* Renamed energy drink to Red Bool. Corrected and added some jug descriptions.
* Added reagent names for all bottles except poison-wine
* Revision of title case for cocktails
* SPAG and fixed the only brand reagen with unbranded name.
* Possibly controversial, shortened some bran names to better fit the UI.
* Fixed some inconsistencies in naming
* Matched brand localisation change
* Two name style edits
* Fixed Smite bottle name
* Minor, punctuation
* Blank line to end of file
* Upgraded descriptive names to title case
* Banana Mama
* reverts change, moved to another PR to avoid conflict.
* Removed caffeine reference.
* Minor, corrected some more inconsistencies
* Removed Bottle of Nothing from random spawner.
* Automatic changelog update
* Fix access configurator debug assert (#34330)
* fix
* greytide fix
* fix admin log
* Dirty
* Renamed water melon juice to watermelon juice (#34341)
* Fix battery charging stopping just short of being full (#34028)
* Add copy threshold button to air alarms (#34346)
* Automatic changelog update
* Oasis updoot the dimmining (#34347)
updooty
* Fland Station - Dirt Fix (#34352)
Fland
* Omega Station - Dirt Fix (#34353)
omega
* Marathon Station - Dirt Fix (#34354)
* Marathon
* Rerunning tests
* Cog Station - Dirt Fix (#34355)
Cog
* Box Station - Dirt Fix (#34356)
Box
* Bagel Station - Dirt Fix (#34357)
Bagel
* Packed Station - Dirt Fix (#34351)
* packed
* Rerunning tests
* Replace some sound PlayEntity with PlayPvs (#34317)
* Fixed Forensic Gloves to be Security Contraband (#34193)
* added BaseRestrictedContraband to forensic gloves
* moved from id to parent
* Automatic changelog update
* add large instruments to the cargo request computer (#34240)
* added the church organ to the cargo console (will add more in this PR, assuming i did this right (HOW DO YOU BUY CARGO ORDERS IN DEV ENVIROMENT???? *sobs))
* added other structure instruments to cargo Catalog
* fixed an epic copy/paste fail
* changed prices
* fixed epic copy/paste fail #2
---------
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
* Automatic changelog update
* Fix crayon losing durability on stamped paper (#34202)
* Automatic changelog update
* Adds a border to Oppenhopper poster (#34219)
* border
* Update meta.json
* Update Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Trim trailing newlines from examine messages (#33381)
* Trim trailing newlines from examine messages
* TrimTrailingNewlines -> TrimEnd
* Add a popup message when ghost Boo action does nothing (#34369)
* fix ghost_component.ftl locale grammar (#34372)
fix ghost component locale grammar
* Let ghosts sometimes make certain devices say creepy things (#34368)
* Add SpookySpeaker component/system
* Shuffle Boo action targets before trying to activate them
* Add SpookySpeaker to vending machines
* Fix chatcode eating messages starting with "..."
* Add SpookySpeaker to recycler
* Oops
* Decrease speak probability for vending machines
* Add spooky speaker to arcade machines
* Automatic changelog update
* Add directional escape pod sign (#34367)
* Make indestructible tiles not breakable by explosions (#34339)
* No more Ai Spacing
* Move guard into earlier guard statement
* Automatic changelog update
* Arachnid stomach organ yaml fix (#34298)
Arachnid stomach yaml fix
Arachnids had their stomach `updateInterval` set to 1.5, 50% slower than
normal. But this doesn't actually slow down the speed that the stomach
digests things, only the rate at which it updates to check if enough
time has passed. (See https://github.com/space-wizards/space-station-14/blob/23f0b304f284d2600cb2c6b4c9d36fdca7f99ec4/Content.Server/Body/Systems/StomachSystem.cs#L57 )
This PR changes arachnid stomachs to have a `digestionDelay` of 30 (20
is default) to achive the desired effect.
Stasis beds are also bugged in a similar manner. They are intended to
slow down the digestion speed, but similarly all they do is change the
update rate. But fixing that requires actual code changes and is out of
scope for this commit.
* Automatic changelog update
* Bended radiator (#34251)
* Automatic changelog update
* Remove Entity<T> data-fields (#34083)
* Update submodule, .NET 9 (#34320)
* Role Types (#33420)
* mindcomponent namespace
* wip MindRole stuff
* admin player tab
* mindroletype comment
* mindRolePrototype redesign
* broken param
* wip RoleType implementation
* basic role type switching for antags
* traitor fix
* fix AdminPanel update
* the renameningTM
* cleanup
* feature uncreeping
* roletypes on mind roles
* update MindComponent.RoleType when MindRoles change
* ghostrole configuration
* ghostrole config improvements
* live update of roleType on the character window
* logging stuff and notes
* remove thing no one asked for
* weh
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* move roletypeprototype to its own file, minor note stuff
* remove Roletype.Created
* log stuff
* roletype setup for ghostroles and autotraitor reinforcements
* ghostrole type configs
* adjustable admin overlay
* cleanup
* fix this in its own PR
* silicon antagonist
* borg stuff
* mmi roletype handling
* spawnable borg roletype handling
* weh
* ghost role cleanup
* weh
* RoleEvent update
* polish
* log stuff
* admin overlay config
* ghostrolecomponent cleanup
* weh
* admin overlay code cleanup
* minor cleanup
* Obsolete MindRoleAddedEvent
* comment
* minor code cleanup
* MindOnDoGreeting fix
* Role update message
* fix duplicate job greeting for cyborgs
* fix emag job message dupe
* nicer-looking role type update
* crew aligned
* syndicate assault borg role fix
* fix test fail
* fix a merge mistake
* fix LoneOp role type
* Update Content.Client/Administration/AdminNameOverlay.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Roles/SharedRoleSystem.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* comment formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* change logging category
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* fix a space
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use MindAddRoles
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* get MindComponent from TryGetMind
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* move var declaration outside loop
* remove TryComp
* take RoleEnum behind the barn
* don't use ensurecomp unnecessarily
* cvar comments
* toggleableghostrolecomponent documentation
* skrek
* use EntProtoId
* mindrole config
* merge baserolecomponent into basemindrolecomponent
* ai and borg silicon role tweaks
* formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* I will end you (the color)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use LocId type for a locale id
* update RoleEvent documentation
* update RoleEvent documentation
* remove obsolete MindRoleAddedEvent
* refine MindRolesUpdate()
* use dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* inject dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* roleType.Name no longer required
* reformatted draw code logic
* GhostRoleMarkerRoleComponent comment
* minor SharedRoleSystem cleanup
* StartingMindRoleComponent, unhardcode roundstart silicon
* Update Content.Shared/Roles/SharedRoleSystem.cs
* remove a whitespace
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Update Credits (#34389)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Elkridge Depot Improvements (#34377)
* updates decals
* more decal work, more dinginess in certain areas
* added decals under doors
* Fix force-feeding Loc strings not using target's gender (#34276)
* HOTFIX Tweaked air alarm default settings for nitrogen breathing crew (#34198)
air alarm default settings modified for anaerobic crew
* #33571 Bomb defusal lockers always should have tools (#34394)
* Automatic changelog update
* [HOTFIX] fix holopads with multiple ai cores dying (#34289)
change return to continue
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Reduce Panic Bunker Minimum Playtime to 2 hours (#34401)
* Add IPIntel API support. (#33339)
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* Automatic changelog update
* Fland Reporters Room (#34408)
changed the command checkpoint to a reporters room.
* Automatic changelog update
* Add a high-capacity water tank to the janitor's closet of Oasis (#34366)
added high capacity water tank
* Darkened Service job interface icons for better contrast (#34270)
* Darkened Service job interface icons for better contrast
* Fixed Botanist job interface icon dark handle hole
* Change to new, darker, service color in all resource yml files
* Revert Map file service color changes
* Use new darker service color on id cards
* Revert Service color change in mapping_actions.yml
* Revert salvage difficulties service color
* Redo service ID and job colors to match advanced palette
* Revert all service color yml file changes
* Switch icons to use existing service pallete colors from advanced pallete
* Update meta.json for darkened service icons
---------
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
* Amber Station - Moved Vents Around (#34410)
* Moved all vents around, made some small changes
* Finished work
* Removed insuls spawner since they're not merged yet
* Insuls Spawner (#34407)
* Added insuls spawner, time to test
* adjusted whitespace since that was causing issues
* Update Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Manual Valves Resprite (#34378)
* resprited manual valves to be colourblind friendly
* Update Resources/Textures/Structures/Piping/Atmospherics/pump.rsi/meta.json
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
---------
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Automatic changelog update
* loop station door access fixes and air sink (#34414)
small fixes
* Raise syndicate kobold reinforcement HP crit threshold from 75 to 100 to match monkey. (#34409)
kobold ops have 100 health
* Anomaly dragging exploit fix and QOL changes (#34280)
* Wood wall is now built from barricade congraph and on top of a barricade instead of using rods
* APE dragging exploit fix
* Fixed doors being blocked with mousetraps, and other Collidable items (#34045)
* Changed SharedDoorSystem.GetColliding() to allow non-LowImpassible mask entities to stay in the door while it closes
* Update Content.Shared/Doors/Systems/SharedDoorSystem.cs
Clarifies comment of how the mask is used
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Fixed Jazz Instrument for Electric Guitars (#33363)
* fixed jazz midi program byte
* swapped around jazz and clean in instrumentList
* Automatic changelog update
* Porting Pride-O-Mat to Upstream (#34412)
* Pride-O-Mat (#1322)
* Added Pride-O-Mat
* Yep
* Updated license to the correct one
* Added more lines, reconfigured settings a bit, also added cloaks to inventory, set coder socks to emag inventory
* Removed bunny ears, fixed typo
* Made requested changes
Webedit lmao
---------
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
* Automatic changelog update
* Oasis Power Rebalance + Misc fixes (#34425)
* balance oasis power as a stopgap
* change waste color to proper waste color
* Fix IPIntel causing frequent errors with the cleanup job. (#34428)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* craftable pet carrier (#34431)
* craftable pet carrier
* epic integration test fail
* Update Resources/Prototypes/Recipes/Crafting/improvised.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* extra tab begone
* epic linter fail
* how did linter not see this???
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds omnisexual pin (#34439)
* Make important change (#7)
This is to help julian test his bot
* Omnibus
* Remove random test file from testing a gh bot
* Add pin to vendor, spawners and loadout
---------
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
* Fix bad Rider analysis error in AccessOverriderWindow.xaml.cs (#34213)
* Disable meta-atlas for big rare RSIs (#33643)
* Persist deadmin to database, add admin suspension system (#34048)
* Automatic changelog update
* STAThread client content start (#34212)
* Minor client packaging changes (#33787)
* Fix muzzle accent (#34419)
* Automatic changelog update
* Add Discord webhook on watchlist connection (#33483)
* Automatic changelog update
* Fixed Thief starting gear failing on specific bag inventories. (#34430)
Fixed it yayyy
* Added missing details from worn capes to head of department beadsheets (#34396)
* Added key and missing details from worn cape to HOP bedsheet
* Corrected canvas size for sprite
* Subtle tweak to shading to reduce color blurring at pillow edge
* Matched Hue and tone to cape
* Tweak chekered pattern marks for gold trim
* Removed accidental palette inclusion
* Clearer wording and corrected attribution name.
* Tweaked shading on key image to fit in better with bed aesthetics
* Added CE cape icon to bedsheet
* Added cape image to HOP bedsheet. Made gold trim better match cape visuals
* RD cape icon added. Colour tweaked to better match cape.
* Updates json
* Tweaks to gold trim shading to match bed aesthetics
* Added better shading for HOP sheet side. Halved file size.
* Optimised HOS RD and CE sheet sprites
* Corrected sprite title in attribution
* Replace ERT Medic's Advanced Medkits with 2 Combat Medkits (#34380)
Replaced Adv kits with 2 combat kits
* Fix nonsensical RegEx for name restriction (#34375)
* Fixed nonsense RegEx
"-" character is a range, caused an error.
No need for "," to repeat so much, it's not a separator.
"\\" - just why?
* Further optimized RegEx structure
Added:
"@" delimiter for consistency
"/" to escape "-" for good and to avoid further problems
* Remove the ability to print the station anchor circuit board (#34358)
remove the ability to print the station anchor circuit board
* Automatic changelog update
* Meta hotfix (#34306)
* Fixed major issues with power, cargo shuttle docking, etc.
* remove serialized invalids
* Finished fixing the critical issues, ready for merge?
* Empty commit
* Added new break room to sci (they deserve it)
* Fixed up other minor issues
* if this map isnt PERFECT Emisse has permission to gib me and turn me into a cyborg
* added Roomba's changes
---------
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
* Make Mime PDA interactions silent (#34426)
* make insert and eject datafields in ItemSlotsComponent.cs nullable, make mime PDA silent
* make it so that you can't fit wirecutters into the slots, among other various things
* Automatic changelog update
* Smite vending machine (#34420)
* Added smite machine to YAML
* Added smite ads and inventory
* Added smite vendor sprites
* Changed the description of the machine to not repeat and ad line.
* Added newline to end of inventory .yml
* Corrected erroneous edit.
* Tweaked all sprites
* Added tesla toy to contraband. Reduced number of drinks available
* Reduced soda varieties but increased can numbers.
* Removed tesla toy from contraband inventory
* Removed speech component from vending machines that already inherit it
* Moved Sprite component to top of list
* Added Smite vendors to random spanwers
* Alphabetised spawn prototypes, commented where name is unclear
* Automatic changelog update
* Printable bedsheets (#34034)
* Bedsheets
* that one fixes yellow bedsheet and delete american bedsheet
* Automatic changelog update
* Update RT to v239.0.1 (#34454)
* Remove christmas anomaly spawn (#34053)
Update anomaly.yml
* Automatic changelog update
* Remove baby jail (#34443)
* Remove baby jail
Closes #33893
* Test fail fix.
* Add a CCVar to allow from hiding admins in the reported player count. (#34406)
Good for:
- Keeping admins hidden
- Not confuse players seeing 84/80 players
Nicely pairs up with the ``admin.admins_count_for_max_players`` ccvar
* Automatic changelog update
* Fix Mixed puddles not updating slips when evap (#34303)
* Fix Mixed puddles not updating slips when evap
* Remove Comment that isn't needed
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* CR - use SolutionContainerSystem.UpdateChemicals
* CR - cleanup unused imports
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Automatic changelog update
* WizDen config update for IPIntel (#34457)
* Fix DNA scrambler updating station record (#34091)
* Fix DNA scrambler updating station record
* Update Content.Server/Implants/SubdermalImplantSystem.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* New and Modified Map Spawners (#34424)
* Added spanwers and modified others
* adjusted values to be more in line with what I want
* this comment may have caused that test fail
* oh my god another typo
* Modified door crate to be engineering flavored
* reduced the pride vendor odds
Webedit lmao
* Elkridge Depot Fixes Again (#34461)
fixes evac shuttle, fix north solars, fix vents and scrubbers
* Space Ruins Variant (#34445)
* Space Ruins Variant
* Updated File
* Added Goliaths/Removed some mobs
* Plasma Station (#33991)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Plasma station population tweak (#34462)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
* Tweaked player counts
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Fix inconsistent borg flashlight state (#33027)
* Fix borg light being stuck on if no cell is inserted
* Fix HandheldLightComponent.Activted becoming out of sync with SharedPointLightComponent.Enabled
* Fix for entities which don't have a handheld light component
* FIX: Uranium, Cak, and BreadDog are not garbage! (#34192)
* FIX: Uranium, Cak, and BreadDog are not garbage!
* Fixed bread typo for spacegarbage change.
* Style: moved ediblebase
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Fix the HoS mantle metashield break (#33831)
Changes 'nukies' to 'syndicate agents' in the HoS mantle's description.
* fix for climbable pianos (#33690)
fix for climable pianos
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
* Automatic changelog update
* BorgChassis transfer their mind to a dropped BorgBrain fix (#34464)
Fix
* Staging: Add taped logo back for 10th anniversary (#34486)
* Update engine to v240.0.1 (#34497)
* mind roles
* partial ritual serialization fix
* Update CP14RoundEndSystem.cs
* delete worldEdge system
* Delete StencilOverlay.WorldEdge.cs
* Update CP14MagicEffectComponent.cs
* delete rituals system
* fix demiplane serialization
* mapdamage fix serialization
* common objectives fix
* remove failed personal goals endscreen
* fix special selling, fix serialization
* more fixes
* more fixes x2
* final bruh
* fix
---------
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Booblesnoot42 <108703193+Booblesnoot42@users.noreply.github.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: ~DreamlyJack~ <148849095+DreamlyJack@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: PopGamer46 <yt1popgamer@gmail.com>
Co-authored-by: crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
Co-authored-by: amatwiedle <amatwiedle@gmail.com>
Co-authored-by: justdie12 <125140938+justdie12@users.noreply.github.com>
Co-authored-by: Nox <nebulousnox38@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: ReeZer2 <63300653+ReeZer2@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Alpaccalypse <21291379+Alpaccalypse@users.noreply.github.com>
Co-authored-by: Spanky <scott@wearejacob.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Dylan Hunter Whittingham <45404433+DylanWhittingham@users.noreply.github.com>
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: SpaceRox1244 <138547931+SpaceRox1244@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Pancake <Pangogie@users.noreply.github.com>
Co-authored-by: Piras314 <p1r4s@proton.me>
Co-authored-by: flymo5678 <86871317+flymo5678@users.noreply.github.com>
Co-authored-by: c4llv07e <igor@c4llv07e.xyz>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Coolsurf6 <coolsurf24@yahoo.com.au>
Co-authored-by: TeenSarlacc <46608342+TeenSarlacc@users.noreply.github.com>
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
Co-authored-by: SpaceManiac <tad@platymuus.com>
Co-authored-by: War Pigeon <54217755+minus1over12@users.noreply.github.com>
Co-authored-by: Zachary Higgs <compgeek223@gmail.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Floxington <florian.decker@mailbox.org>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: SlimSlam <73899110+Stewie523@users.noreply.github.com>
Co-authored-by: frobnic8 <erskin@eldritch.org>
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
Co-authored-by: hyperDelegate <zachary1064@gmail.com>
Co-authored-by: JustinWinningham <justinmwinningham@gmail.com>
Co-authored-by: zHonys <69396539+zHonys@users.noreply.github.com>
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: Palladinium <patrick.chieppe@hotmail.com>
Co-authored-by: Alpha-Two <92269094+Alpha-Two@users.noreply.github.com>
Co-authored-by: Hyper B <137433177+HyperB1@users.noreply.github.com>
Co-authored-by: kosticia <kosticia46@gmail.com>
Co-authored-by: compilatron <40789662+jbox144@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Patrik Caes-Sayrs <heartofgoldfish@gmail.com>
Co-authored-by: ApolloVector <149586366+ApolloVector@users.noreply.github.com>
Co-authored-by: Gansu <68031780+GansuLalan@users.noreply.github.com>
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
2025-01-21 23:57:12 +03:00
|
|
|
/// <summary>
|
|
|
|
|
/// Update whether an admin has voluntarily deadminned.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>
|
|
|
|
|
/// This does nothing if the player is not an admin.
|
|
|
|
|
/// </remarks>
|
|
|
|
|
/// <param name="userId">The user ID of the admin.</param>
|
|
|
|
|
/// <param name="deadminned">Whether the admin is deadminned or not.</param>
|
|
|
|
|
Task UpdateAdminDeadminnedAsync(NetUserId userId, bool deadminned, CancellationToken cancel = default);
|
|
|
|
|
|
2020-11-10 16:50:28 +01:00
|
|
|
Task RemoveAdminRankAsync(int rankId, CancellationToken cancel = default);
|
|
|
|
|
Task AddAdminRankAsync(AdminRank rank, CancellationToken cancel = default);
|
|
|
|
|
Task UpdateAdminRankAsync(AdminRank rank, CancellationToken cancel = default);
|
2021-11-22 19:08:27 +01:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Rounds
|
|
|
|
|
|
2022-03-13 18:36:48 +01:00
|
|
|
Task<int> AddNewRound(Server server, params Guid[] playerIds);
|
2021-11-22 19:08:27 +01:00
|
|
|
Task<Round> GetRound(int id);
|
|
|
|
|
Task AddRoundPlayers(int id, params Guid[] playerIds);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Admin Logs
|
|
|
|
|
|
2022-03-13 18:36:48 +01:00
|
|
|
Task<Server> AddOrGetServer(string serverName);
|
2023-05-07 03:14:23 -07:00
|
|
|
Task AddAdminLogs(List<AdminLog> logs);
|
2021-11-22 19:08:27 +01:00
|
|
|
IAsyncEnumerable<string> GetAdminLogMessages(LogFilter? filter = null);
|
2021-12-25 02:07:12 +01:00
|
|
|
IAsyncEnumerable<SharedAdminLog> GetAdminLogs(LogFilter? filter = null);
|
2021-11-22 19:08:27 +01:00
|
|
|
IAsyncEnumerable<JsonDocument> GetAdminLogsJson(LogFilter? filter = null);
|
2023-05-17 04:04:28 -07:00
|
|
|
Task<int> CountAdminLogs(int round);
|
2021-11-22 19:08:27 +01:00
|
|
|
|
|
|
|
|
#endregion
|
2022-01-04 06:37:06 -07:00
|
|
|
|
|
|
|
|
#region Whitelist
|
|
|
|
|
|
|
|
|
|
Task<bool> GetWhitelistStatusAsync(NetUserId player);
|
|
|
|
|
|
|
|
|
|
Task AddToWhitelistAsync(NetUserId player);
|
|
|
|
|
|
|
|
|
|
Task RemoveFromWhitelistAsync(NetUserId player);
|
|
|
|
|
|
|
|
|
|
#endregion
|
2022-03-26 12:46:37 +01:00
|
|
|
|
2024-08-27 18:01:17 +02:00
|
|
|
#region Blacklist
|
|
|
|
|
|
|
|
|
|
Task<bool> GetBlacklistStatusAsync(NetUserId player);
|
|
|
|
|
|
|
|
|
|
Task AddToBlacklistAsync(NetUserId player);
|
|
|
|
|
|
|
|
|
|
Task RemoveFromBlacklistAsync(NetUserId player);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2022-03-26 12:46:37 +01:00
|
|
|
#region Uploaded Resources Logs
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
Task AddUploadedResourceLogAsync(NetUserId user, DateTimeOffset date, string path, byte[] data);
|
2022-03-26 12:46:37 +01:00
|
|
|
|
|
|
|
|
Task PurgeUploadedResourceLogAsync(int days);
|
|
|
|
|
|
|
|
|
|
#endregion
|
2022-03-26 20:16:57 +01:00
|
|
|
|
2024-06-07 15:53:20 -04:00
|
|
|
#region Rules
|
|
|
|
|
|
|
|
|
|
Task<DateTimeOffset?> GetLastReadRules(NetUserId player);
|
|
|
|
|
Task SetLastReadRules(NetUserId player, DateTimeOffset time);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2022-04-16 20:57:50 +02:00
|
|
|
#region Admin Notes
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
Task<int> AddAdminNote(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, NoteSeverity severity, bool secret, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime);
|
|
|
|
|
Task<int> AddAdminWatchlist(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime);
|
|
|
|
|
Task<int> AddAdminMessage(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime);
|
|
|
|
|
Task<AdminNoteRecord?> GetAdminNote(int id);
|
|
|
|
|
Task<AdminWatchlistRecord?> GetAdminWatchlist(int id);
|
|
|
|
|
Task<AdminMessageRecord?> GetAdminMessage(int id);
|
|
|
|
|
Task<ServerBanNoteRecord?> GetServerBanAsNoteAsync(int id);
|
|
|
|
|
Task<ServerRoleBanNoteRecord?> GetServerRoleBanAsNoteAsync(int id);
|
|
|
|
|
Task<List<IAdminRemarksRecord>> GetAllAdminRemarks(Guid player);
|
|
|
|
|
Task<List<IAdminRemarksRecord>> GetVisibleAdminNotes(Guid player);
|
|
|
|
|
Task<List<AdminWatchlistRecord>> GetActiveWatchlists(Guid player);
|
|
|
|
|
Task<List<AdminMessageRecord>> GetMessages(Guid player);
|
|
|
|
|
Task EditAdminNote(int id, string message, NoteSeverity severity, bool secret, Guid editedBy, DateTimeOffset editedAt, DateTimeOffset? expiryTime);
|
|
|
|
|
Task EditAdminWatchlist(int id, string message, Guid editedBy, DateTimeOffset editedAt, DateTimeOffset? expiryTime);
|
|
|
|
|
Task EditAdminMessage(int id, string message, Guid editedBy, DateTimeOffset editedAt, DateTimeOffset? expiryTime);
|
|
|
|
|
Task DeleteAdminNote(int id, Guid deletedBy, DateTimeOffset deletedAt);
|
|
|
|
|
Task DeleteAdminWatchlist(int id, Guid deletedBy, DateTimeOffset deletedAt);
|
|
|
|
|
Task DeleteAdminMessage(int id, Guid deletedBy, DateTimeOffset deletedAt);
|
|
|
|
|
Task HideServerBanFromNotes(int id, Guid deletedBy, DateTimeOffset deletedAt);
|
|
|
|
|
Task HideServerRoleBanFromNotes(int id, Guid deletedBy, DateTimeOffset deletedAt);
|
2024-03-21 16:15:46 +01:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Mark an admin message as being seen by the target player.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id">The database ID of the admin message.</param>
|
|
|
|
|
/// <param name="dismissedToo">
|
|
|
|
|
/// If true, the message is "permanently dismissed" and will not be shown to the player again when they join.
|
|
|
|
|
/// </param>
|
|
|
|
|
Task MarkMessageAsSeen(int id, bool dismissedToo);
|
2022-04-16 20:57:50 +02:00
|
|
|
|
|
|
|
|
#endregion
|
2024-06-01 05:08:31 -07:00
|
|
|
|
|
|
|
|
#region Job Whitelists
|
|
|
|
|
|
|
|
|
|
Task AddJobWhitelist(Guid player, ProtoId<JobPrototype> job);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Task<List<string>> GetJobWhitelists(Guid player, CancellationToken cancel = default);
|
|
|
|
|
Task<bool> IsJobWhitelisted(Guid player, ProtoId<JobPrototype> job);
|
|
|
|
|
|
|
|
|
|
Task<bool> RemoveJobWhitelist(Guid player, ProtoId<JobPrototype> job);
|
|
|
|
|
|
|
|
|
|
#endregion
|
2024-08-20 23:31:33 +02:00
|
|
|
|
Upstream sync (#786)
* Box Station - Dechristmassified (#34135)
* dechrismassified
* removed camera from shower
* Marathon Station - Dechristmassified (#34136)
* dechristmassified
* further dechristmassified
* Loop Station Decal and maints additions (#34103)
* many changes
* contentingregrationtests
* serialized invalid removed
* blank
* "Changes and fixes as suggested"
* blank
* blank
* added desk bells
* engi rework rework rework
* added gate to content integration
* tweaks
* aaa
* bbb
* added holopads
* ccc
* Update default.yml
* hotfix
* aaa
* bbb
* many many tweaks and fixes
* aaa
* decals and maints
* aaa
* bbb
* ccc
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Rename cryobed yml file (#34134)
renamed cryopod.yml to cryogenic_sleep_unit.yml
* Cog update (not very merry) (#34144)
removed christmas merry
* bagel update (#34145)
* Add hair pulato (#34117)
* add sprite pulato
* update
* add pulato hair
* add pulato hair
* add pulato hair
* update meta "pulato"
* Automatic changelog update
* Holopad UI tweak for incoming calls (#34137)
* Initial commit
* Update
* Comment correction
* Minor margin increase
* Holopads no longer log broadcasted speech and emotes in the chat (#34114)
Initial commit
* Automatic changelog update
* Fixes borgs not being able to check their laws in crit (#34133)
* fix
* fix2
* Add contraband parent to laser gun safe (#34132)
* Automatic changelog update
* Add Holopad Circuit Board to A/V Communication Technology (#34150)
Added the holopad circuit board to the AV Communication technology and circuit imprinter lathe.
* Automatic changelog update
* Fix disposal signal routers sprites (#34139)
* Fix disposal signal routers sprites
* Remove old shitcode
* Automatic changelog update
* Meta station overhaul (#33506)
* added mail, moved some things around, and fixed a lot of APCs
* fixed my mistakes
* Fixed a few mistakes and AI camera names
* Redid south medbay and more wiring
* Finished sci overhaul, and fixed all issues that I could find.
* rebuilt botany, removed vox box, fixed all known issues.
* Overhauled security
* Minor commit as I prepare to update my copy
* Rebalanced role counts
* Final changes, ready for review!
* Emisse and other people fixed issues with the station
* Finalized changes (for real this time)!
* Standardize shotgun ammo in storagefills (#34156)
shotgun ammo changes
* Automatic changelog update
* meta update (#34158)
* Amber Station Adjustments (#34126)
* Made a couple fixes to various decals, cleaned up some entities, gave the clown their bag and the bartender a handlabeler
* Several changes, more cameras, lighting fixes, adjusted hydro a bit, gave sec a bunch of shutters
* Added new random spawners for science and added them to Amber
* fixed the science spawners and modified amber slightly
* Fixed the random instrument entry
* Fix friendly vent spiders (#34153)
Swapped order of parents for MobGiantSpiderAngry
* Removed UseDelay component from RCD (#34149)
* Automatic changelog update
* Decrease hp for rusted walls (#34043)
* Automatic changelog update
* FIX: Thief beacon doubled steal targets (#33750)
* Automatic changelog update
* remove nukemass song (#34066)
* Automatic changelog update
* Corrected all ghost role names to title case. (#34155)
* Corrected all ghost role names to title case.
* Removes full stop from Hamlet's title.
* Updated ghost role names not in the main ghost roles .ftl
* Two capitals corrections
* Packed Update (Remove Christmas & New Evac) (#34168)
* Packed update (remove christmas, new shuttle)
* Fix invalid
* the voices
* Omega Update (Remove Christmas) (#34174)
omega soap
* Renamed "Irish Car Bomb" drink to "Irish Slammer" (#34107)
* Renamed "Irish Car Bomb" drink to "Irish Slammer", due to concerns over insensitivity.
* Fixing some missed references
* Added prototype id changes to migration.yml. Removed any reference to the troubles (and corrected ale to stout for flavour text).
* Corrected description back to "Irish Cream"
* Removed non-entities from migration.yml
* Automatic changelog update
* Bugfix for the AI player's eye getting stuck when their broadcast is interrupted (#34093)
Initial commit
* Speech is relayed by holopad holograms (#33978)
* Initial commit
* Corrected a field attribute
* Make JPEG a PNG (#34176)
Make 3.png a PNG
* Removed Undesirable Ion Storm Verbs (#34175)
* Remove Undesirable Laws
* empty
* added basic admin logs for PDA notekeeper notes (#34118)
* added basic admin logs for PDA notekeeper notes
* formatting
* added new LogType 'PdaInteract' and changed PDA notekeeper logs to it
---------
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Sprites defined for all non-generic computer boards. Added new syndicate computer board sprite. (#34104)
* Defined sprites for non-generic computer boards. Added new syndicate computer board sprite.
* Added new sprite to meta.json and updated attribution.
* Reformatted module.rsi meta.json to match other meta file styles.
* Syndicate board sprite made less yellow/gold, changed outer chips to black. Using grey/silver for CPU centre, akin to syndie agent PDA theme, and to keep distinctive from security board.
* Corrected indentation spacing for currently edited entities.
* Update Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
* add pr link to attribution
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Added pricegun sound (#34119)
added pricegun sound
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Separate Tables n' Counters (#32673)
* Update tables.yml
* Remove Extra base: state_
* Update tables.yml
* Automatic changelog update
* Add Chameleon PDA (#30514)
* V1 commit
* Remove PDA name and unnecessary pda state
* Adds PDA to Chameleon backpack & thief toolbox
* Change to use AppearanceDataInit
* Add basic PDA state to ensure there's always a sprite before AppearanceData can be applied
* Revert PDA name (this will be changed to another way later)
* Update PDA name updating to new system
* Fix yaml, and fix Agent ID chameleon
* Updated based on review
* Automatic changelog update
* Add some ion storm actions to replace removed ones (#34180)
* Add some ion storm actions to replace removed ones
* Remove other country references, replace
* Some more tuning of the storm values, removing real-world countries
* boldy basics
* Automatic changelog update
* Amber Station and Science Spawner Tweaks (#34187)
* Modified science spawners a bit since I realized including maints loot was undesireable
* Linked Medical doors to buttons, redesigned the floor of the dining area a bit, placed more science spawners
* Somehow I overlooked that I was importing the maints loot table instead of the sci loot table
* Gave sci an EOD closet
* named the evac shuttle
* Core update (#34201)
add
* Elkridge Depot (The station formerly known as Cell) (#34085)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* Add Elkridge Depot into Map Rotation (#34206)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* added Elkridge to default map pool
* added myself to map_attribution.yml credits
* Automatic changelog update
* Packed Update (#34208)
Packed Update (decals mostly)
* Apply forensics when loading with an ammo box (#32280)
* Automatic changelog update
* Update Credits (#34220)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix rainbow lizard plushie inhands (#34128)
* fix rainbow plushie inhands
* address requested changes
* attribute sprites
* wielding refactor/fixes (#32188)
* refactor wieldable events
* fix inconsitency with wielding and use updated events
* wieldable cosmetic refactoring
* Update Content.Shared/Wieldable/Events.cs
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* real
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Automatic changelog update
* Lobby chat width and custom lobby titles (#33783)
* lobby name cvar
* panel width
* skrek
* server name localization fix
* comment format fix
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* remove redundant newline
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* string.empty
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* use SetWidth
* Update Resources/Locale/en-US/lobby/lobby-gui.ftl
---------
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds bullet collision to station lights (#34070)
Adds collision with bullets to lights
* Automatic changelog update
* Oasis Update (#34245)
santa is keel.
* Amber Station - Minor Fixes (#34246)
* Moved the stand clear decal in front of the janitor's shutters up two pixels
* added tech maints under most maints doors, fixed power issues in cargo, and fixed a couple minor issues
* Make station anchor hitbox less insufferable (#34217)
* Automatic changelog update
* Remove kessler and zombeteors gamemodes from the secret pool (#34051)
* Remove kessler, zombeteors gameodes
* Probably should keep the protos in case an admin wants to torture players secretly
* address slart review
* Automatic changelog update
* Added distinct ad and bye chatter to Dr. Gibb vending (#34182)
* Added distinct ad and bye chatter to Dr. Gibb vending
* Correcting revert mistake
* Changed ad pack names to better match naming convention
* Implement approved rule changes (#34233)
* Special reagents now appear in the guidebook (#34265)
* Special reagents now appear in the guidebook
* Improved guidebook wording for reagent category
* Automatic changelog update
* Implement approved rule changes (#34233)
* Fix compilation errors in tests from update (#34272)
Required for https://github.com/space-wizards/RobustToolbox/pull/5590 to not cause compile fails, but can be merged on its own
* Fix portable scrubber appearing powered on spawn (#34274)
* [HOTFIX] Fix chameleon PDAs renaming IDs (#34249)
Fix chameleon PDA
* [HOTFIX] Fix Meta station power (#34256)
* hotfix meta power
* fixed AME
* add missing cargo shuttle pilot console to cargo
* Update vessel_warning.ogg (#34263)
* Update vessel_warning.ogg
Remove DC offset and apply short fade out.
* Update attributions.yml
* Update attributions.yml
* Add bleating accent to goats (#34273)
* Automatic changelog update
* Happy New Year (#34288)
happy new year
* Amber Station - Balance Improvements (#34294)
changed the center area in med bay to a garden, weakened meteor shielding in some areas, also general touch ups around the station
* Fixed Loop Station's southern solar array unlinked airlocks (#34296)
Fixed Southern solar external airlock door bolts
* Fix empty lines in adminwho with stealthmins. (#34122)
Don't print newline if admin is hidden.
* Automatic changelog update
* Added missing cameras to Loop Station (#34308)
* Added missing cameras
* Added missing cameras
* Amber Station - Fixes and Warm Lights (#34324)
* Added warm lights, placed them around the map, also fixed an issue with the MV wire in the cafeteria
* Fixed lv wiring in caf, and adjusted a couple things
* Empty commit to force checks to rerun
* Automatic changelog update
* change locking to use ComplexInteraction (#34326)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Automatic changelog update
* Drink titles and soda vendor consistency (#34178)
* Made capitalisation of proper names consistent.
* Roy Rogers is presumably a proper name.
* Second pass at distinguishing proper names only.
* Two nitpicking/minor changes
* Fixed some overlooked can brand names. Matched case with descriptions.
* Switched generic sodas with brands for SodaInventory
* Removed commonly available branded cans
* Matched case consistency used elsewhere. Minor SPAG corrections.
* Added "nothing" and some missing alcohol bottles to RandomSpawner
* Added distinct ad and bye chatter to Dr. Gibb machines.
* Revert "Added distinct ad and bye chatter to Dr. Gibb machines."
This reverts commit f90b8a470556de05aca81255db8b6b03596ae944.
* Revert "Removed commonly available branded cans"
This reverts commit 43b82168dac1f73b187b7677f34ecdd33b6bb81a.
* Revert "Switched generic sodas with brands for SodaInventory"
This reverts commit f1790f0ce61ef135c79068de6a741e8bb50d85d3.
* Lowercased DrinkGlass suffix. Moved alcoholic drinks from drinks to alcohol.
* Renamed energy drink to Red Bool. Corrected and added some jug descriptions.
* Added reagent names for all bottles except poison-wine
* Revision of title case for cocktails
* SPAG and fixed the only brand reagen with unbranded name.
* Possibly controversial, shortened some bran names to better fit the UI.
* Fixed some inconsistencies in naming
* Matched brand localisation change
* Two name style edits
* Fixed Smite bottle name
* Minor, punctuation
* Blank line to end of file
* Upgraded descriptive names to title case
* Banana Mama
* reverts change, moved to another PR to avoid conflict.
* Removed caffeine reference.
* Minor, corrected some more inconsistencies
* Removed Bottle of Nothing from random spawner.
* Automatic changelog update
* Fix access configurator debug assert (#34330)
* fix
* greytide fix
* fix admin log
* Dirty
* Renamed water melon juice to watermelon juice (#34341)
* Fix battery charging stopping just short of being full (#34028)
* Add copy threshold button to air alarms (#34346)
* Automatic changelog update
* Oasis updoot the dimmining (#34347)
updooty
* Fland Station - Dirt Fix (#34352)
Fland
* Omega Station - Dirt Fix (#34353)
omega
* Marathon Station - Dirt Fix (#34354)
* Marathon
* Rerunning tests
* Cog Station - Dirt Fix (#34355)
Cog
* Box Station - Dirt Fix (#34356)
Box
* Bagel Station - Dirt Fix (#34357)
Bagel
* Packed Station - Dirt Fix (#34351)
* packed
* Rerunning tests
* Replace some sound PlayEntity with PlayPvs (#34317)
* Fixed Forensic Gloves to be Security Contraband (#34193)
* added BaseRestrictedContraband to forensic gloves
* moved from id to parent
* Automatic changelog update
* add large instruments to the cargo request computer (#34240)
* added the church organ to the cargo console (will add more in this PR, assuming i did this right (HOW DO YOU BUY CARGO ORDERS IN DEV ENVIROMENT???? *sobs))
* added other structure instruments to cargo Catalog
* fixed an epic copy/paste fail
* changed prices
* fixed epic copy/paste fail #2
---------
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
* Automatic changelog update
* Fix crayon losing durability on stamped paper (#34202)
* Automatic changelog update
* Adds a border to Oppenhopper poster (#34219)
* border
* Update meta.json
* Update Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Trim trailing newlines from examine messages (#33381)
* Trim trailing newlines from examine messages
* TrimTrailingNewlines -> TrimEnd
* Add a popup message when ghost Boo action does nothing (#34369)
* fix ghost_component.ftl locale grammar (#34372)
fix ghost component locale grammar
* Let ghosts sometimes make certain devices say creepy things (#34368)
* Add SpookySpeaker component/system
* Shuffle Boo action targets before trying to activate them
* Add SpookySpeaker to vending machines
* Fix chatcode eating messages starting with "..."
* Add SpookySpeaker to recycler
* Oops
* Decrease speak probability for vending machines
* Add spooky speaker to arcade machines
* Automatic changelog update
* Add directional escape pod sign (#34367)
* Make indestructible tiles not breakable by explosions (#34339)
* No more Ai Spacing
* Move guard into earlier guard statement
* Automatic changelog update
* Arachnid stomach organ yaml fix (#34298)
Arachnid stomach yaml fix
Arachnids had their stomach `updateInterval` set to 1.5, 50% slower than
normal. But this doesn't actually slow down the speed that the stomach
digests things, only the rate at which it updates to check if enough
time has passed. (See https://github.com/space-wizards/space-station-14/blob/23f0b304f284d2600cb2c6b4c9d36fdca7f99ec4/Content.Server/Body/Systems/StomachSystem.cs#L57 )
This PR changes arachnid stomachs to have a `digestionDelay` of 30 (20
is default) to achive the desired effect.
Stasis beds are also bugged in a similar manner. They are intended to
slow down the digestion speed, but similarly all they do is change the
update rate. But fixing that requires actual code changes and is out of
scope for this commit.
* Automatic changelog update
* Bended radiator (#34251)
* Automatic changelog update
* Remove Entity<T> data-fields (#34083)
* Update submodule, .NET 9 (#34320)
* Role Types (#33420)
* mindcomponent namespace
* wip MindRole stuff
* admin player tab
* mindroletype comment
* mindRolePrototype redesign
* broken param
* wip RoleType implementation
* basic role type switching for antags
* traitor fix
* fix AdminPanel update
* the renameningTM
* cleanup
* feature uncreeping
* roletypes on mind roles
* update MindComponent.RoleType when MindRoles change
* ghostrole configuration
* ghostrole config improvements
* live update of roleType on the character window
* logging stuff and notes
* remove thing no one asked for
* weh
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* move roletypeprototype to its own file, minor note stuff
* remove Roletype.Created
* log stuff
* roletype setup for ghostroles and autotraitor reinforcements
* ghostrole type configs
* adjustable admin overlay
* cleanup
* fix this in its own PR
* silicon antagonist
* borg stuff
* mmi roletype handling
* spawnable borg roletype handling
* weh
* ghost role cleanup
* weh
* RoleEvent update
* polish
* log stuff
* admin overlay config
* ghostrolecomponent cleanup
* weh
* admin overlay code cleanup
* minor cleanup
* Obsolete MindRoleAddedEvent
* comment
* minor code cleanup
* MindOnDoGreeting fix
* Role update message
* fix duplicate job greeting for cyborgs
* fix emag job message dupe
* nicer-looking role type update
* crew aligned
* syndicate assault borg role fix
* fix test fail
* fix a merge mistake
* fix LoneOp role type
* Update Content.Client/Administration/AdminNameOverlay.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Roles/SharedRoleSystem.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* comment formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* change logging category
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* fix a space
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use MindAddRoles
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* get MindComponent from TryGetMind
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* move var declaration outside loop
* remove TryComp
* take RoleEnum behind the barn
* don't use ensurecomp unnecessarily
* cvar comments
* toggleableghostrolecomponent documentation
* skrek
* use EntProtoId
* mindrole config
* merge baserolecomponent into basemindrolecomponent
* ai and borg silicon role tweaks
* formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* I will end you (the color)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use LocId type for a locale id
* update RoleEvent documentation
* update RoleEvent documentation
* remove obsolete MindRoleAddedEvent
* refine MindRolesUpdate()
* use dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* inject dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* roleType.Name no longer required
* reformatted draw code logic
* GhostRoleMarkerRoleComponent comment
* minor SharedRoleSystem cleanup
* StartingMindRoleComponent, unhardcode roundstart silicon
* Update Content.Shared/Roles/SharedRoleSystem.cs
* remove a whitespace
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Update Credits (#34389)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Elkridge Depot Improvements (#34377)
* updates decals
* more decal work, more dinginess in certain areas
* added decals under doors
* Fix force-feeding Loc strings not using target's gender (#34276)
* HOTFIX Tweaked air alarm default settings for nitrogen breathing crew (#34198)
air alarm default settings modified for anaerobic crew
* #33571 Bomb defusal lockers always should have tools (#34394)
* Automatic changelog update
* [HOTFIX] fix holopads with multiple ai cores dying (#34289)
change return to continue
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Reduce Panic Bunker Minimum Playtime to 2 hours (#34401)
* Add IPIntel API support. (#33339)
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* Automatic changelog update
* Fland Reporters Room (#34408)
changed the command checkpoint to a reporters room.
* Automatic changelog update
* Add a high-capacity water tank to the janitor's closet of Oasis (#34366)
added high capacity water tank
* Darkened Service job interface icons for better contrast (#34270)
* Darkened Service job interface icons for better contrast
* Fixed Botanist job interface icon dark handle hole
* Change to new, darker, service color in all resource yml files
* Revert Map file service color changes
* Use new darker service color on id cards
* Revert Service color change in mapping_actions.yml
* Revert salvage difficulties service color
* Redo service ID and job colors to match advanced palette
* Revert all service color yml file changes
* Switch icons to use existing service pallete colors from advanced pallete
* Update meta.json for darkened service icons
---------
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
* Amber Station - Moved Vents Around (#34410)
* Moved all vents around, made some small changes
* Finished work
* Removed insuls spawner since they're not merged yet
* Insuls Spawner (#34407)
* Added insuls spawner, time to test
* adjusted whitespace since that was causing issues
* Update Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Manual Valves Resprite (#34378)
* resprited manual valves to be colourblind friendly
* Update Resources/Textures/Structures/Piping/Atmospherics/pump.rsi/meta.json
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
---------
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Automatic changelog update
* loop station door access fixes and air sink (#34414)
small fixes
* Raise syndicate kobold reinforcement HP crit threshold from 75 to 100 to match monkey. (#34409)
kobold ops have 100 health
* Anomaly dragging exploit fix and QOL changes (#34280)
* Wood wall is now built from barricade congraph and on top of a barricade instead of using rods
* APE dragging exploit fix
* Fixed doors being blocked with mousetraps, and other Collidable items (#34045)
* Changed SharedDoorSystem.GetColliding() to allow non-LowImpassible mask entities to stay in the door while it closes
* Update Content.Shared/Doors/Systems/SharedDoorSystem.cs
Clarifies comment of how the mask is used
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Fixed Jazz Instrument for Electric Guitars (#33363)
* fixed jazz midi program byte
* swapped around jazz and clean in instrumentList
* Automatic changelog update
* Porting Pride-O-Mat to Upstream (#34412)
* Pride-O-Mat (#1322)
* Added Pride-O-Mat
* Yep
* Updated license to the correct one
* Added more lines, reconfigured settings a bit, also added cloaks to inventory, set coder socks to emag inventory
* Removed bunny ears, fixed typo
* Made requested changes
Webedit lmao
---------
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
* Automatic changelog update
* Oasis Power Rebalance + Misc fixes (#34425)
* balance oasis power as a stopgap
* change waste color to proper waste color
* Fix IPIntel causing frequent errors with the cleanup job. (#34428)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* craftable pet carrier (#34431)
* craftable pet carrier
* epic integration test fail
* Update Resources/Prototypes/Recipes/Crafting/improvised.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* extra tab begone
* epic linter fail
* how did linter not see this???
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds omnisexual pin (#34439)
* Make important change (#7)
This is to help julian test his bot
* Omnibus
* Remove random test file from testing a gh bot
* Add pin to vendor, spawners and loadout
---------
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
* Fix bad Rider analysis error in AccessOverriderWindow.xaml.cs (#34213)
* Disable meta-atlas for big rare RSIs (#33643)
* Persist deadmin to database, add admin suspension system (#34048)
* Automatic changelog update
* STAThread client content start (#34212)
* Minor client packaging changes (#33787)
* Fix muzzle accent (#34419)
* Automatic changelog update
* Add Discord webhook on watchlist connection (#33483)
* Automatic changelog update
* Fixed Thief starting gear failing on specific bag inventories. (#34430)
Fixed it yayyy
* Added missing details from worn capes to head of department beadsheets (#34396)
* Added key and missing details from worn cape to HOP bedsheet
* Corrected canvas size for sprite
* Subtle tweak to shading to reduce color blurring at pillow edge
* Matched Hue and tone to cape
* Tweak chekered pattern marks for gold trim
* Removed accidental palette inclusion
* Clearer wording and corrected attribution name.
* Tweaked shading on key image to fit in better with bed aesthetics
* Added CE cape icon to bedsheet
* Added cape image to HOP bedsheet. Made gold trim better match cape visuals
* RD cape icon added. Colour tweaked to better match cape.
* Updates json
* Tweaks to gold trim shading to match bed aesthetics
* Added better shading for HOP sheet side. Halved file size.
* Optimised HOS RD and CE sheet sprites
* Corrected sprite title in attribution
* Replace ERT Medic's Advanced Medkits with 2 Combat Medkits (#34380)
Replaced Adv kits with 2 combat kits
* Fix nonsensical RegEx for name restriction (#34375)
* Fixed nonsense RegEx
"-" character is a range, caused an error.
No need for "," to repeat so much, it's not a separator.
"\\" - just why?
* Further optimized RegEx structure
Added:
"@" delimiter for consistency
"/" to escape "-" for good and to avoid further problems
* Remove the ability to print the station anchor circuit board (#34358)
remove the ability to print the station anchor circuit board
* Automatic changelog update
* Meta hotfix (#34306)
* Fixed major issues with power, cargo shuttle docking, etc.
* remove serialized invalids
* Finished fixing the critical issues, ready for merge?
* Empty commit
* Added new break room to sci (they deserve it)
* Fixed up other minor issues
* if this map isnt PERFECT Emisse has permission to gib me and turn me into a cyborg
* added Roomba's changes
---------
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
* Make Mime PDA interactions silent (#34426)
* make insert and eject datafields in ItemSlotsComponent.cs nullable, make mime PDA silent
* make it so that you can't fit wirecutters into the slots, among other various things
* Automatic changelog update
* Smite vending machine (#34420)
* Added smite machine to YAML
* Added smite ads and inventory
* Added smite vendor sprites
* Changed the description of the machine to not repeat and ad line.
* Added newline to end of inventory .yml
* Corrected erroneous edit.
* Tweaked all sprites
* Added tesla toy to contraband. Reduced number of drinks available
* Reduced soda varieties but increased can numbers.
* Removed tesla toy from contraband inventory
* Removed speech component from vending machines that already inherit it
* Moved Sprite component to top of list
* Added Smite vendors to random spanwers
* Alphabetised spawn prototypes, commented where name is unclear
* Automatic changelog update
* Printable bedsheets (#34034)
* Bedsheets
* that one fixes yellow bedsheet and delete american bedsheet
* Automatic changelog update
* Update RT to v239.0.1 (#34454)
* Remove christmas anomaly spawn (#34053)
Update anomaly.yml
* Automatic changelog update
* Remove baby jail (#34443)
* Remove baby jail
Closes #33893
* Test fail fix.
* Add a CCVar to allow from hiding admins in the reported player count. (#34406)
Good for:
- Keeping admins hidden
- Not confuse players seeing 84/80 players
Nicely pairs up with the ``admin.admins_count_for_max_players`` ccvar
* Automatic changelog update
* Fix Mixed puddles not updating slips when evap (#34303)
* Fix Mixed puddles not updating slips when evap
* Remove Comment that isn't needed
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* CR - use SolutionContainerSystem.UpdateChemicals
* CR - cleanup unused imports
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Automatic changelog update
* WizDen config update for IPIntel (#34457)
* Fix DNA scrambler updating station record (#34091)
* Fix DNA scrambler updating station record
* Update Content.Server/Implants/SubdermalImplantSystem.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* New and Modified Map Spawners (#34424)
* Added spanwers and modified others
* adjusted values to be more in line with what I want
* this comment may have caused that test fail
* oh my god another typo
* Modified door crate to be engineering flavored
* reduced the pride vendor odds
Webedit lmao
* Elkridge Depot Fixes Again (#34461)
fixes evac shuttle, fix north solars, fix vents and scrubbers
* Space Ruins Variant (#34445)
* Space Ruins Variant
* Updated File
* Added Goliaths/Removed some mobs
* Plasma Station (#33991)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Plasma station population tweak (#34462)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
* Tweaked player counts
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Fix inconsistent borg flashlight state (#33027)
* Fix borg light being stuck on if no cell is inserted
* Fix HandheldLightComponent.Activted becoming out of sync with SharedPointLightComponent.Enabled
* Fix for entities which don't have a handheld light component
* FIX: Uranium, Cak, and BreadDog are not garbage! (#34192)
* FIX: Uranium, Cak, and BreadDog are not garbage!
* Fixed bread typo for spacegarbage change.
* Style: moved ediblebase
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Fix the HoS mantle metashield break (#33831)
Changes 'nukies' to 'syndicate agents' in the HoS mantle's description.
* fix for climbable pianos (#33690)
fix for climable pianos
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
* Automatic changelog update
* BorgChassis transfer their mind to a dropped BorgBrain fix (#34464)
Fix
* Staging: Add taped logo back for 10th anniversary (#34486)
* Update engine to v240.0.1 (#34497)
* mind roles
* partial ritual serialization fix
* Update CP14RoundEndSystem.cs
* delete worldEdge system
* Delete StencilOverlay.WorldEdge.cs
* Update CP14MagicEffectComponent.cs
* delete rituals system
* fix demiplane serialization
* mapdamage fix serialization
* common objectives fix
* remove failed personal goals endscreen
* fix special selling, fix serialization
* more fixes
* more fixes x2
* final bruh
* fix
---------
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Booblesnoot42 <108703193+Booblesnoot42@users.noreply.github.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: ~DreamlyJack~ <148849095+DreamlyJack@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: PopGamer46 <yt1popgamer@gmail.com>
Co-authored-by: crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
Co-authored-by: amatwiedle <amatwiedle@gmail.com>
Co-authored-by: justdie12 <125140938+justdie12@users.noreply.github.com>
Co-authored-by: Nox <nebulousnox38@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: ReeZer2 <63300653+ReeZer2@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Alpaccalypse <21291379+Alpaccalypse@users.noreply.github.com>
Co-authored-by: Spanky <scott@wearejacob.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Dylan Hunter Whittingham <45404433+DylanWhittingham@users.noreply.github.com>
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: SpaceRox1244 <138547931+SpaceRox1244@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Pancake <Pangogie@users.noreply.github.com>
Co-authored-by: Piras314 <p1r4s@proton.me>
Co-authored-by: flymo5678 <86871317+flymo5678@users.noreply.github.com>
Co-authored-by: c4llv07e <igor@c4llv07e.xyz>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Coolsurf6 <coolsurf24@yahoo.com.au>
Co-authored-by: TeenSarlacc <46608342+TeenSarlacc@users.noreply.github.com>
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
Co-authored-by: SpaceManiac <tad@platymuus.com>
Co-authored-by: War Pigeon <54217755+minus1over12@users.noreply.github.com>
Co-authored-by: Zachary Higgs <compgeek223@gmail.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Floxington <florian.decker@mailbox.org>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: SlimSlam <73899110+Stewie523@users.noreply.github.com>
Co-authored-by: frobnic8 <erskin@eldritch.org>
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
Co-authored-by: hyperDelegate <zachary1064@gmail.com>
Co-authored-by: JustinWinningham <justinmwinningham@gmail.com>
Co-authored-by: zHonys <69396539+zHonys@users.noreply.github.com>
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: Palladinium <patrick.chieppe@hotmail.com>
Co-authored-by: Alpha-Two <92269094+Alpha-Two@users.noreply.github.com>
Co-authored-by: Hyper B <137433177+HyperB1@users.noreply.github.com>
Co-authored-by: kosticia <kosticia46@gmail.com>
Co-authored-by: compilatron <40789662+jbox144@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Patrik Caes-Sayrs <heartofgoldfish@gmail.com>
Co-authored-by: ApolloVector <149586366+ApolloVector@users.noreply.github.com>
Co-authored-by: Gansu <68031780+GansuLalan@users.noreply.github.com>
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
2025-01-21 23:57:12 +03:00
|
|
|
#region IPintel
|
|
|
|
|
|
|
|
|
|
Task<bool> UpsertIPIntelCache(DateTime time, IPAddress ip, float score);
|
|
|
|
|
Task<IPIntelCache?> GetIPIntelCache(IPAddress ip);
|
|
|
|
|
Task<bool> CleanIPIntelCache(TimeSpan range);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2024-08-20 23:31:33 +02:00
|
|
|
#region DB Notifications
|
|
|
|
|
|
|
|
|
|
void SubscribeToNotifications(Action<DatabaseNotification> handler);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Inject a notification as if it was created by the database. This is intended for testing.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="notification">The notification to trigger</param>
|
|
|
|
|
void InjectTestNotification(DatabaseNotification notification);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Represents a notification sent between servers via the database layer.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>
|
|
|
|
|
/// <para>
|
|
|
|
|
/// Database notifications are a simple system to broadcast messages to an entire server group
|
|
|
|
|
/// backed by the same database. For example, this is used to notify all servers of new ban records.
|
|
|
|
|
/// </para>
|
|
|
|
|
/// <para>
|
|
|
|
|
/// They are currently implemented by the PostgreSQL <c>NOTIFY</c> and <c>LISTEN</c> commands.
|
|
|
|
|
/// </para>
|
|
|
|
|
/// </remarks>
|
|
|
|
|
public struct DatabaseNotification
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The channel for the notification. This can be used to differentiate notifications for different purposes.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public required string Channel { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The actual contents of the notification. Optional.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string? Payload { get; set; }
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class ServerDbManager : IServerDbManager
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
public static readonly Counter DbReadOpsMetric = Metrics.CreateCounter(
|
|
|
|
|
"db_read_ops",
|
|
|
|
|
"Amount of read operations processed by the database manager.");
|
|
|
|
|
|
|
|
|
|
public static readonly Counter DbWriteOpsMetric = Metrics.CreateCounter(
|
|
|
|
|
"db_write_ops",
|
|
|
|
|
"Amount of write operations processed by the database manager.");
|
|
|
|
|
|
2023-12-10 16:30:12 +01:00
|
|
|
public static readonly Gauge DbActiveOps = Metrics.CreateGauge(
|
|
|
|
|
"db_executing_ops",
|
|
|
|
|
"Amount of active database operations. Note that some operations may be waiting for a database connection.");
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
|
|
|
|
[Dependency] private readonly IResourceManager _res = default!;
|
|
|
|
|
[Dependency] private readonly ILogManager _logMgr = default!;
|
|
|
|
|
|
|
|
|
|
private ServerDbBase _db = default!;
|
|
|
|
|
private LoggingProvider _msLogProvider = default!;
|
|
|
|
|
private ILoggerFactory _msLoggerFactory = default!;
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
private bool _synchronous;
|
|
|
|
|
// When running in integration tests, we'll use a single in-memory SQLite database connection.
|
|
|
|
|
// This is that connection, close it when we shut down.
|
|
|
|
|
private SqliteConnection? _sqliteInMemoryConnection;
|
2020-09-29 14:26:00 +02:00
|
|
|
|
2024-08-20 23:31:33 +02:00
|
|
|
private readonly List<Action<DatabaseNotification>> _notificationHandlers = [];
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
public void Init()
|
|
|
|
|
{
|
|
|
|
|
_msLogProvider = new LoggingProvider(_logMgr);
|
|
|
|
|
_msLoggerFactory = LoggerFactory.Create(builder =>
|
|
|
|
|
{
|
|
|
|
|
builder.AddProvider(_msLogProvider);
|
|
|
|
|
});
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
_synchronous = _cfg.GetCVar(CCVars.DatabaseSynchronous);
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
var engine = _cfg.GetCVar(CCVars.DatabaseEngine).ToLower();
|
2023-12-10 16:30:12 +01:00
|
|
|
var opsLog = _logMgr.GetSawmill("db.op");
|
2024-08-20 23:31:33 +02:00
|
|
|
var notifyLog = _logMgr.GetSawmill("db.notify");
|
2020-09-29 14:26:00 +02:00
|
|
|
switch (engine)
|
|
|
|
|
{
|
|
|
|
|
case "sqlite":
|
2023-05-02 02:36:39 +02:00
|
|
|
SetupSqlite(out var contextFunc, out var inMemory);
|
2023-12-10 16:30:12 +01:00
|
|
|
_db = new ServerDbSqlite(contextFunc, inMemory, _cfg, _synchronous, opsLog);
|
2020-09-29 14:26:00 +02:00
|
|
|
break;
|
|
|
|
|
case "postgres":
|
2024-08-20 23:31:33 +02:00
|
|
|
var (pgOptions, conString) = CreatePostgresOptions();
|
|
|
|
|
_db = new ServerDbPostgres(pgOptions, conString, _cfg, opsLog, notifyLog);
|
2020-09-29 14:26:00 +02:00
|
|
|
break;
|
|
|
|
|
default:
|
2021-03-13 03:04:19 +01:00
|
|
|
throw new InvalidDataException($"Unknown database engine {engine}.");
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
2024-08-20 23:31:33 +02:00
|
|
|
|
|
|
|
|
_db.OnNotificationReceived += HandleDatabaseNotification;
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
public void Shutdown()
|
|
|
|
|
{
|
2024-08-20 23:31:33 +02:00
|
|
|
_db.OnNotificationReceived -= HandleDatabaseNotification;
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
_sqliteInMemoryConnection?.Dispose();
|
2024-08-20 23:31:33 +02:00
|
|
|
_db.Shutdown();
|
2023-05-02 02:36:39 +02:00
|
|
|
}
|
|
|
|
|
|
2024-05-07 06:21:03 +02:00
|
|
|
public Task<PlayerPreferences> InitPrefsAsync(
|
|
|
|
|
NetUserId userId,
|
|
|
|
|
ICharacterProfile defaultProfile,
|
|
|
|
|
CancellationToken cancel)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.InitPrefsAsync(userId, defaultProfile));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task SaveSelectedCharacterIndexAsync(NetUserId userId, int index)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.SaveSelectedCharacterIndexAsync(userId, index));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-06 12:03:14 +02:00
|
|
|
public Task SaveCharacterSlotAsync(NetUserId userId, ICharacterProfile? profile, int slot)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.SaveCharacterSlotAsync(userId, profile, slot));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2020-10-07 18:02:10 +02:00
|
|
|
public Task DeleteSlotAndSetSelectedIndex(NetUserId userId, int deleteSlot, int newSlot)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.DeleteSlotAndSetSelectedIndex(userId, deleteSlot, newSlot));
|
2020-10-07 18:02:10 +02:00
|
|
|
}
|
|
|
|
|
|
2021-02-14 11:59:56 -03:00
|
|
|
public Task SaveAdminOOCColorAsync(NetUserId userId, Color color)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.SaveAdminOOCColorAsync(userId, color));
|
2021-02-14 11:59:56 -03:00
|
|
|
}
|
|
|
|
|
|
2024-05-07 06:21:03 +02:00
|
|
|
public Task<PlayerPreferences?> GetPlayerPreferencesAsync(NetUserId userId, CancellationToken cancel)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2024-05-07 06:21:03 +02:00
|
|
|
return RunDbCommand(() => _db.GetPlayerPreferencesAsync(userId, cancel));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AssignUserIdAsync(string name, NetUserId userId)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AssignUserIdAsync(name, userId));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<NetUserId?> GetAssignedUserIdAsync(string name)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetAssignedUserIdAsync(name));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2021-02-13 17:51:54 +01:00
|
|
|
public Task<ServerBanDef?> GetServerBanAsync(int id)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetServerBanAsync(id));
|
2021-02-13 17:51:54 +01:00
|
|
|
}
|
|
|
|
|
|
2021-03-22 01:30:50 +01:00
|
|
|
public Task<ServerBanDef?> GetServerBanAsync(
|
|
|
|
|
IPAddress? address,
|
|
|
|
|
NetUserId? userId,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableArray<byte>? hwId,
|
|
|
|
|
ImmutableArray<ImmutableArray<byte>>? modernHWIds)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2024-11-12 01:51:23 +01:00
|
|
|
return RunDbCommand(() => _db.GetServerBanAsync(address, userId, hwId, modernHWIds));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2021-03-22 01:30:50 +01:00
|
|
|
public Task<List<ServerBanDef>> GetServerBansAsync(
|
|
|
|
|
IPAddress? address,
|
|
|
|
|
NetUserId? userId,
|
2022-02-02 22:57:11 +01:00
|
|
|
ImmutableArray<byte>? hwId,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableArray<ImmutableArray<byte>>? modernHWIds,
|
2022-02-02 22:57:11 +01:00
|
|
|
bool includeUnbanned=true)
|
2021-02-12 13:04:32 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2024-11-12 01:51:23 +01:00
|
|
|
return RunDbCommand(() => _db.GetServerBansAsync(address, userId, hwId, modernHWIds, includeUnbanned));
|
2021-02-12 13:04:32 +01:00
|
|
|
}
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
public Task AddServerBanAsync(ServerBanDef serverBan)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddServerBanAsync(serverBan));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2021-02-13 17:51:54 +01:00
|
|
|
public Task AddServerUnbanAsync(ServerUnbanDef serverUnban)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddServerUnbanAsync(serverUnban));
|
2021-02-13 17:51:54 +01:00
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task EditServerBan(int id, string reason, NoteSeverity severity, DateTimeOffset? expiration, Guid editedBy, DateTimeOffset editedAt)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.EditServerBan(id, reason, severity, expiration, editedBy, editedAt));
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 02:24:55 +02:00
|
|
|
public Task UpdateBanExemption(NetUserId userId, ServerBanExemptFlags flags)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
2023-07-21 13:38:52 +02:00
|
|
|
return RunDbCommand(() => _db.UpdateBanExemption(userId, flags));
|
2023-04-03 02:24:55 +02:00
|
|
|
}
|
|
|
|
|
|
2024-08-20 23:31:33 +02:00
|
|
|
public Task<ServerBanExemptFlags> GetBanExemption(NetUserId userId, CancellationToken cancel = default)
|
2023-04-03 02:24:55 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
2024-08-20 23:31:33 +02:00
|
|
|
return RunDbCommand(() => _db.GetBanExemption(userId, cancel));
|
2023-04-03 02:24:55 +02:00
|
|
|
}
|
|
|
|
|
|
2022-02-21 14:11:39 -08:00
|
|
|
#region Role Ban
|
|
|
|
|
public Task<ServerRoleBanDef?> GetServerRoleBanAsync(int id)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetServerRoleBanAsync(id));
|
2022-02-21 14:11:39 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<List<ServerRoleBanDef>> GetServerRoleBansAsync(
|
|
|
|
|
IPAddress? address,
|
|
|
|
|
NetUserId? userId,
|
|
|
|
|
ImmutableArray<byte>? hwId,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableArray<ImmutableArray<byte>>? modernHWIds,
|
2022-02-21 14:11:39 -08:00
|
|
|
bool includeUnbanned = true)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2024-11-12 01:51:23 +01:00
|
|
|
return RunDbCommand(() => _db.GetServerRoleBansAsync(address, userId, hwId, modernHWIds, includeUnbanned));
|
2022-02-21 14:11:39 -08:00
|
|
|
}
|
|
|
|
|
|
2023-09-28 16:46:39 -07:00
|
|
|
public Task<ServerRoleBanDef> AddServerRoleBanAsync(ServerRoleBanDef serverRoleBan)
|
2022-02-21 14:11:39 -08:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddServerRoleBanAsync(serverRoleBan));
|
2022-02-21 14:11:39 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddServerRoleUnbanAsync(ServerRoleUnbanDef serverRoleUnban)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddServerRoleUnbanAsync(serverRoleUnban));
|
2022-02-21 14:11:39 -08:00
|
|
|
}
|
2023-07-21 13:38:52 +02:00
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task EditServerRoleBan(int id, string reason, NoteSeverity severity, DateTimeOffset? expiration, Guid editedBy, DateTimeOffset editedAt)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.EditServerRoleBan(id, reason, severity, expiration, editedBy, editedAt));
|
|
|
|
|
}
|
2022-02-21 14:11:39 -08:00
|
|
|
#endregion
|
|
|
|
|
|
2022-08-07 08:00:42 +02:00
|
|
|
#region Playtime
|
|
|
|
|
|
2024-05-07 06:21:03 +02:00
|
|
|
public Task<List<PlayTime>> GetPlayTimes(Guid player, CancellationToken cancel)
|
2022-08-07 08:00:42 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
2024-05-07 06:21:03 +02:00
|
|
|
return RunDbCommand(() => _db.GetPlayTimes(player, cancel));
|
2022-08-07 08:00:42 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task UpdatePlayTimes(IReadOnlyCollection<PlayTimeUpdate> updates)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.UpdatePlayTimes(updates));
|
2022-08-07 08:00:42 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2021-03-22 01:30:50 +01:00
|
|
|
public Task UpdatePlayerRecordAsync(
|
|
|
|
|
NetUserId userId,
|
|
|
|
|
string userName,
|
|
|
|
|
IPAddress address,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableTypedHwid? hwId)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.UpdatePlayerRecord(userId, userName, address, hwId));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2020-11-10 16:50:28 +01:00
|
|
|
public Task<PlayerRecord?> GetPlayerRecordByUserName(string userName, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetPlayerRecordByUserName(userName, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<PlayerRecord?> GetPlayerRecordByUserId(NetUserId userId, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetPlayerRecordByUserId(userId, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
2022-02-02 22:57:11 +01:00
|
|
|
public Task<int> AddConnectionLogAsync(
|
2021-03-22 01:30:50 +01:00
|
|
|
NetUserId userId,
|
|
|
|
|
string userName,
|
|
|
|
|
IPAddress address,
|
2024-11-12 01:51:23 +01:00
|
|
|
ImmutableTypedHwid? hwId,
|
|
|
|
|
float trust,
|
2023-12-06 23:48:56 +01:00
|
|
|
ConnectionDenyReason? denied,
|
|
|
|
|
int serverId)
|
2022-02-02 22:57:11 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2024-11-12 01:51:23 +01:00
|
|
|
return RunDbCommand(() => _db.AddConnectionLogAsync(userId, userName, address, hwId, trust, denied, serverId));
|
2022-02-02 22:57:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddServerBanHitsAsync(int connection, IEnumerable<ServerBanDef> bans)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddServerBanHitsAsync(connection, bans));
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2020-11-10 16:50:28 +01:00
|
|
|
public Task<Admin?> GetAdminDataForAsync(NetUserId userId, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetAdminDataForAsync(userId, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<AdminRank?> GetAdminRankAsync(int id, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetAdminRankDataForAsync(id, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<((Admin, string? lastUserName)[] admins, AdminRank[])> GetAllAdminAndRanksAsync(
|
|
|
|
|
CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetAllAdminAndRanksAsync(cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task RemoveAdminAsync(NetUserId userId, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.RemoveAdminAsync(userId, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddAdminAsync(Admin admin, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddAdminAsync(admin, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task UpdateAdminAsync(Admin admin, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.UpdateAdminAsync(admin, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
Upstream sync (#786)
* Box Station - Dechristmassified (#34135)
* dechrismassified
* removed camera from shower
* Marathon Station - Dechristmassified (#34136)
* dechristmassified
* further dechristmassified
* Loop Station Decal and maints additions (#34103)
* many changes
* contentingregrationtests
* serialized invalid removed
* blank
* "Changes and fixes as suggested"
* blank
* blank
* added desk bells
* engi rework rework rework
* added gate to content integration
* tweaks
* aaa
* bbb
* added holopads
* ccc
* Update default.yml
* hotfix
* aaa
* bbb
* many many tweaks and fixes
* aaa
* decals and maints
* aaa
* bbb
* ccc
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Rename cryobed yml file (#34134)
renamed cryopod.yml to cryogenic_sleep_unit.yml
* Cog update (not very merry) (#34144)
removed christmas merry
* bagel update (#34145)
* Add hair pulato (#34117)
* add sprite pulato
* update
* add pulato hair
* add pulato hair
* add pulato hair
* update meta "pulato"
* Automatic changelog update
* Holopad UI tweak for incoming calls (#34137)
* Initial commit
* Update
* Comment correction
* Minor margin increase
* Holopads no longer log broadcasted speech and emotes in the chat (#34114)
Initial commit
* Automatic changelog update
* Fixes borgs not being able to check their laws in crit (#34133)
* fix
* fix2
* Add contraband parent to laser gun safe (#34132)
* Automatic changelog update
* Add Holopad Circuit Board to A/V Communication Technology (#34150)
Added the holopad circuit board to the AV Communication technology and circuit imprinter lathe.
* Automatic changelog update
* Fix disposal signal routers sprites (#34139)
* Fix disposal signal routers sprites
* Remove old shitcode
* Automatic changelog update
* Meta station overhaul (#33506)
* added mail, moved some things around, and fixed a lot of APCs
* fixed my mistakes
* Fixed a few mistakes and AI camera names
* Redid south medbay and more wiring
* Finished sci overhaul, and fixed all issues that I could find.
* rebuilt botany, removed vox box, fixed all known issues.
* Overhauled security
* Minor commit as I prepare to update my copy
* Rebalanced role counts
* Final changes, ready for review!
* Emisse and other people fixed issues with the station
* Finalized changes (for real this time)!
* Standardize shotgun ammo in storagefills (#34156)
shotgun ammo changes
* Automatic changelog update
* meta update (#34158)
* Amber Station Adjustments (#34126)
* Made a couple fixes to various decals, cleaned up some entities, gave the clown their bag and the bartender a handlabeler
* Several changes, more cameras, lighting fixes, adjusted hydro a bit, gave sec a bunch of shutters
* Added new random spawners for science and added them to Amber
* fixed the science spawners and modified amber slightly
* Fixed the random instrument entry
* Fix friendly vent spiders (#34153)
Swapped order of parents for MobGiantSpiderAngry
* Removed UseDelay component from RCD (#34149)
* Automatic changelog update
* Decrease hp for rusted walls (#34043)
* Automatic changelog update
* FIX: Thief beacon doubled steal targets (#33750)
* Automatic changelog update
* remove nukemass song (#34066)
* Automatic changelog update
* Corrected all ghost role names to title case. (#34155)
* Corrected all ghost role names to title case.
* Removes full stop from Hamlet's title.
* Updated ghost role names not in the main ghost roles .ftl
* Two capitals corrections
* Packed Update (Remove Christmas & New Evac) (#34168)
* Packed update (remove christmas, new shuttle)
* Fix invalid
* the voices
* Omega Update (Remove Christmas) (#34174)
omega soap
* Renamed "Irish Car Bomb" drink to "Irish Slammer" (#34107)
* Renamed "Irish Car Bomb" drink to "Irish Slammer", due to concerns over insensitivity.
* Fixing some missed references
* Added prototype id changes to migration.yml. Removed any reference to the troubles (and corrected ale to stout for flavour text).
* Corrected description back to "Irish Cream"
* Removed non-entities from migration.yml
* Automatic changelog update
* Bugfix for the AI player's eye getting stuck when their broadcast is interrupted (#34093)
Initial commit
* Speech is relayed by holopad holograms (#33978)
* Initial commit
* Corrected a field attribute
* Make JPEG a PNG (#34176)
Make 3.png a PNG
* Removed Undesirable Ion Storm Verbs (#34175)
* Remove Undesirable Laws
* empty
* added basic admin logs for PDA notekeeper notes (#34118)
* added basic admin logs for PDA notekeeper notes
* formatting
* added new LogType 'PdaInteract' and changed PDA notekeeper logs to it
---------
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Sprites defined for all non-generic computer boards. Added new syndicate computer board sprite. (#34104)
* Defined sprites for non-generic computer boards. Added new syndicate computer board sprite.
* Added new sprite to meta.json and updated attribution.
* Reformatted module.rsi meta.json to match other meta file styles.
* Syndicate board sprite made less yellow/gold, changed outer chips to black. Using grey/silver for CPU centre, akin to syndie agent PDA theme, and to keep distinctive from security board.
* Corrected indentation spacing for currently edited entities.
* Update Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
* add pr link to attribution
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Added pricegun sound (#34119)
added pricegun sound
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Separate Tables n' Counters (#32673)
* Update tables.yml
* Remove Extra base: state_
* Update tables.yml
* Automatic changelog update
* Add Chameleon PDA (#30514)
* V1 commit
* Remove PDA name and unnecessary pda state
* Adds PDA to Chameleon backpack & thief toolbox
* Change to use AppearanceDataInit
* Add basic PDA state to ensure there's always a sprite before AppearanceData can be applied
* Revert PDA name (this will be changed to another way later)
* Update PDA name updating to new system
* Fix yaml, and fix Agent ID chameleon
* Updated based on review
* Automatic changelog update
* Add some ion storm actions to replace removed ones (#34180)
* Add some ion storm actions to replace removed ones
* Remove other country references, replace
* Some more tuning of the storm values, removing real-world countries
* boldy basics
* Automatic changelog update
* Amber Station and Science Spawner Tweaks (#34187)
* Modified science spawners a bit since I realized including maints loot was undesireable
* Linked Medical doors to buttons, redesigned the floor of the dining area a bit, placed more science spawners
* Somehow I overlooked that I was importing the maints loot table instead of the sci loot table
* Gave sci an EOD closet
* named the evac shuttle
* Core update (#34201)
add
* Elkridge Depot (The station formerly known as Cell) (#34085)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* Add Elkridge Depot into Map Rotation (#34206)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* added Elkridge to default map pool
* added myself to map_attribution.yml credits
* Automatic changelog update
* Packed Update (#34208)
Packed Update (decals mostly)
* Apply forensics when loading with an ammo box (#32280)
* Automatic changelog update
* Update Credits (#34220)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix rainbow lizard plushie inhands (#34128)
* fix rainbow plushie inhands
* address requested changes
* attribute sprites
* wielding refactor/fixes (#32188)
* refactor wieldable events
* fix inconsitency with wielding and use updated events
* wieldable cosmetic refactoring
* Update Content.Shared/Wieldable/Events.cs
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* real
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Automatic changelog update
* Lobby chat width and custom lobby titles (#33783)
* lobby name cvar
* panel width
* skrek
* server name localization fix
* comment format fix
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* remove redundant newline
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* string.empty
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* use SetWidth
* Update Resources/Locale/en-US/lobby/lobby-gui.ftl
---------
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds bullet collision to station lights (#34070)
Adds collision with bullets to lights
* Automatic changelog update
* Oasis Update (#34245)
santa is keel.
* Amber Station - Minor Fixes (#34246)
* Moved the stand clear decal in front of the janitor's shutters up two pixels
* added tech maints under most maints doors, fixed power issues in cargo, and fixed a couple minor issues
* Make station anchor hitbox less insufferable (#34217)
* Automatic changelog update
* Remove kessler and zombeteors gamemodes from the secret pool (#34051)
* Remove kessler, zombeteors gameodes
* Probably should keep the protos in case an admin wants to torture players secretly
* address slart review
* Automatic changelog update
* Added distinct ad and bye chatter to Dr. Gibb vending (#34182)
* Added distinct ad and bye chatter to Dr. Gibb vending
* Correcting revert mistake
* Changed ad pack names to better match naming convention
* Implement approved rule changes (#34233)
* Special reagents now appear in the guidebook (#34265)
* Special reagents now appear in the guidebook
* Improved guidebook wording for reagent category
* Automatic changelog update
* Implement approved rule changes (#34233)
* Fix compilation errors in tests from update (#34272)
Required for https://github.com/space-wizards/RobustToolbox/pull/5590 to not cause compile fails, but can be merged on its own
* Fix portable scrubber appearing powered on spawn (#34274)
* [HOTFIX] Fix chameleon PDAs renaming IDs (#34249)
Fix chameleon PDA
* [HOTFIX] Fix Meta station power (#34256)
* hotfix meta power
* fixed AME
* add missing cargo shuttle pilot console to cargo
* Update vessel_warning.ogg (#34263)
* Update vessel_warning.ogg
Remove DC offset and apply short fade out.
* Update attributions.yml
* Update attributions.yml
* Add bleating accent to goats (#34273)
* Automatic changelog update
* Happy New Year (#34288)
happy new year
* Amber Station - Balance Improvements (#34294)
changed the center area in med bay to a garden, weakened meteor shielding in some areas, also general touch ups around the station
* Fixed Loop Station's southern solar array unlinked airlocks (#34296)
Fixed Southern solar external airlock door bolts
* Fix empty lines in adminwho with stealthmins. (#34122)
Don't print newline if admin is hidden.
* Automatic changelog update
* Added missing cameras to Loop Station (#34308)
* Added missing cameras
* Added missing cameras
* Amber Station - Fixes and Warm Lights (#34324)
* Added warm lights, placed them around the map, also fixed an issue with the MV wire in the cafeteria
* Fixed lv wiring in caf, and adjusted a couple things
* Empty commit to force checks to rerun
* Automatic changelog update
* change locking to use ComplexInteraction (#34326)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Automatic changelog update
* Drink titles and soda vendor consistency (#34178)
* Made capitalisation of proper names consistent.
* Roy Rogers is presumably a proper name.
* Second pass at distinguishing proper names only.
* Two nitpicking/minor changes
* Fixed some overlooked can brand names. Matched case with descriptions.
* Switched generic sodas with brands for SodaInventory
* Removed commonly available branded cans
* Matched case consistency used elsewhere. Minor SPAG corrections.
* Added "nothing" and some missing alcohol bottles to RandomSpawner
* Added distinct ad and bye chatter to Dr. Gibb machines.
* Revert "Added distinct ad and bye chatter to Dr. Gibb machines."
This reverts commit f90b8a470556de05aca81255db8b6b03596ae944.
* Revert "Removed commonly available branded cans"
This reverts commit 43b82168dac1f73b187b7677f34ecdd33b6bb81a.
* Revert "Switched generic sodas with brands for SodaInventory"
This reverts commit f1790f0ce61ef135c79068de6a741e8bb50d85d3.
* Lowercased DrinkGlass suffix. Moved alcoholic drinks from drinks to alcohol.
* Renamed energy drink to Red Bool. Corrected and added some jug descriptions.
* Added reagent names for all bottles except poison-wine
* Revision of title case for cocktails
* SPAG and fixed the only brand reagen with unbranded name.
* Possibly controversial, shortened some bran names to better fit the UI.
* Fixed some inconsistencies in naming
* Matched brand localisation change
* Two name style edits
* Fixed Smite bottle name
* Minor, punctuation
* Blank line to end of file
* Upgraded descriptive names to title case
* Banana Mama
* reverts change, moved to another PR to avoid conflict.
* Removed caffeine reference.
* Minor, corrected some more inconsistencies
* Removed Bottle of Nothing from random spawner.
* Automatic changelog update
* Fix access configurator debug assert (#34330)
* fix
* greytide fix
* fix admin log
* Dirty
* Renamed water melon juice to watermelon juice (#34341)
* Fix battery charging stopping just short of being full (#34028)
* Add copy threshold button to air alarms (#34346)
* Automatic changelog update
* Oasis updoot the dimmining (#34347)
updooty
* Fland Station - Dirt Fix (#34352)
Fland
* Omega Station - Dirt Fix (#34353)
omega
* Marathon Station - Dirt Fix (#34354)
* Marathon
* Rerunning tests
* Cog Station - Dirt Fix (#34355)
Cog
* Box Station - Dirt Fix (#34356)
Box
* Bagel Station - Dirt Fix (#34357)
Bagel
* Packed Station - Dirt Fix (#34351)
* packed
* Rerunning tests
* Replace some sound PlayEntity with PlayPvs (#34317)
* Fixed Forensic Gloves to be Security Contraband (#34193)
* added BaseRestrictedContraband to forensic gloves
* moved from id to parent
* Automatic changelog update
* add large instruments to the cargo request computer (#34240)
* added the church organ to the cargo console (will add more in this PR, assuming i did this right (HOW DO YOU BUY CARGO ORDERS IN DEV ENVIROMENT???? *sobs))
* added other structure instruments to cargo Catalog
* fixed an epic copy/paste fail
* changed prices
* fixed epic copy/paste fail #2
---------
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
* Automatic changelog update
* Fix crayon losing durability on stamped paper (#34202)
* Automatic changelog update
* Adds a border to Oppenhopper poster (#34219)
* border
* Update meta.json
* Update Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Trim trailing newlines from examine messages (#33381)
* Trim trailing newlines from examine messages
* TrimTrailingNewlines -> TrimEnd
* Add a popup message when ghost Boo action does nothing (#34369)
* fix ghost_component.ftl locale grammar (#34372)
fix ghost component locale grammar
* Let ghosts sometimes make certain devices say creepy things (#34368)
* Add SpookySpeaker component/system
* Shuffle Boo action targets before trying to activate them
* Add SpookySpeaker to vending machines
* Fix chatcode eating messages starting with "..."
* Add SpookySpeaker to recycler
* Oops
* Decrease speak probability for vending machines
* Add spooky speaker to arcade machines
* Automatic changelog update
* Add directional escape pod sign (#34367)
* Make indestructible tiles not breakable by explosions (#34339)
* No more Ai Spacing
* Move guard into earlier guard statement
* Automatic changelog update
* Arachnid stomach organ yaml fix (#34298)
Arachnid stomach yaml fix
Arachnids had their stomach `updateInterval` set to 1.5, 50% slower than
normal. But this doesn't actually slow down the speed that the stomach
digests things, only the rate at which it updates to check if enough
time has passed. (See https://github.com/space-wizards/space-station-14/blob/23f0b304f284d2600cb2c6b4c9d36fdca7f99ec4/Content.Server/Body/Systems/StomachSystem.cs#L57 )
This PR changes arachnid stomachs to have a `digestionDelay` of 30 (20
is default) to achive the desired effect.
Stasis beds are also bugged in a similar manner. They are intended to
slow down the digestion speed, but similarly all they do is change the
update rate. But fixing that requires actual code changes and is out of
scope for this commit.
* Automatic changelog update
* Bended radiator (#34251)
* Automatic changelog update
* Remove Entity<T> data-fields (#34083)
* Update submodule, .NET 9 (#34320)
* Role Types (#33420)
* mindcomponent namespace
* wip MindRole stuff
* admin player tab
* mindroletype comment
* mindRolePrototype redesign
* broken param
* wip RoleType implementation
* basic role type switching for antags
* traitor fix
* fix AdminPanel update
* the renameningTM
* cleanup
* feature uncreeping
* roletypes on mind roles
* update MindComponent.RoleType when MindRoles change
* ghostrole configuration
* ghostrole config improvements
* live update of roleType on the character window
* logging stuff and notes
* remove thing no one asked for
* weh
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* move roletypeprototype to its own file, minor note stuff
* remove Roletype.Created
* log stuff
* roletype setup for ghostroles and autotraitor reinforcements
* ghostrole type configs
* adjustable admin overlay
* cleanup
* fix this in its own PR
* silicon antagonist
* borg stuff
* mmi roletype handling
* spawnable borg roletype handling
* weh
* ghost role cleanup
* weh
* RoleEvent update
* polish
* log stuff
* admin overlay config
* ghostrolecomponent cleanup
* weh
* admin overlay code cleanup
* minor cleanup
* Obsolete MindRoleAddedEvent
* comment
* minor code cleanup
* MindOnDoGreeting fix
* Role update message
* fix duplicate job greeting for cyborgs
* fix emag job message dupe
* nicer-looking role type update
* crew aligned
* syndicate assault borg role fix
* fix test fail
* fix a merge mistake
* fix LoneOp role type
* Update Content.Client/Administration/AdminNameOverlay.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Roles/SharedRoleSystem.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* comment formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* change logging category
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* fix a space
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use MindAddRoles
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* get MindComponent from TryGetMind
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* move var declaration outside loop
* remove TryComp
* take RoleEnum behind the barn
* don't use ensurecomp unnecessarily
* cvar comments
* toggleableghostrolecomponent documentation
* skrek
* use EntProtoId
* mindrole config
* merge baserolecomponent into basemindrolecomponent
* ai and borg silicon role tweaks
* formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* I will end you (the color)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use LocId type for a locale id
* update RoleEvent documentation
* update RoleEvent documentation
* remove obsolete MindRoleAddedEvent
* refine MindRolesUpdate()
* use dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* inject dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* roleType.Name no longer required
* reformatted draw code logic
* GhostRoleMarkerRoleComponent comment
* minor SharedRoleSystem cleanup
* StartingMindRoleComponent, unhardcode roundstart silicon
* Update Content.Shared/Roles/SharedRoleSystem.cs
* remove a whitespace
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Update Credits (#34389)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Elkridge Depot Improvements (#34377)
* updates decals
* more decal work, more dinginess in certain areas
* added decals under doors
* Fix force-feeding Loc strings not using target's gender (#34276)
* HOTFIX Tweaked air alarm default settings for nitrogen breathing crew (#34198)
air alarm default settings modified for anaerobic crew
* #33571 Bomb defusal lockers always should have tools (#34394)
* Automatic changelog update
* [HOTFIX] fix holopads with multiple ai cores dying (#34289)
change return to continue
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Reduce Panic Bunker Minimum Playtime to 2 hours (#34401)
* Add IPIntel API support. (#33339)
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* Automatic changelog update
* Fland Reporters Room (#34408)
changed the command checkpoint to a reporters room.
* Automatic changelog update
* Add a high-capacity water tank to the janitor's closet of Oasis (#34366)
added high capacity water tank
* Darkened Service job interface icons for better contrast (#34270)
* Darkened Service job interface icons for better contrast
* Fixed Botanist job interface icon dark handle hole
* Change to new, darker, service color in all resource yml files
* Revert Map file service color changes
* Use new darker service color on id cards
* Revert Service color change in mapping_actions.yml
* Revert salvage difficulties service color
* Redo service ID and job colors to match advanced palette
* Revert all service color yml file changes
* Switch icons to use existing service pallete colors from advanced pallete
* Update meta.json for darkened service icons
---------
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
* Amber Station - Moved Vents Around (#34410)
* Moved all vents around, made some small changes
* Finished work
* Removed insuls spawner since they're not merged yet
* Insuls Spawner (#34407)
* Added insuls spawner, time to test
* adjusted whitespace since that was causing issues
* Update Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Manual Valves Resprite (#34378)
* resprited manual valves to be colourblind friendly
* Update Resources/Textures/Structures/Piping/Atmospherics/pump.rsi/meta.json
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
---------
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Automatic changelog update
* loop station door access fixes and air sink (#34414)
small fixes
* Raise syndicate kobold reinforcement HP crit threshold from 75 to 100 to match monkey. (#34409)
kobold ops have 100 health
* Anomaly dragging exploit fix and QOL changes (#34280)
* Wood wall is now built from barricade congraph and on top of a barricade instead of using rods
* APE dragging exploit fix
* Fixed doors being blocked with mousetraps, and other Collidable items (#34045)
* Changed SharedDoorSystem.GetColliding() to allow non-LowImpassible mask entities to stay in the door while it closes
* Update Content.Shared/Doors/Systems/SharedDoorSystem.cs
Clarifies comment of how the mask is used
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Fixed Jazz Instrument for Electric Guitars (#33363)
* fixed jazz midi program byte
* swapped around jazz and clean in instrumentList
* Automatic changelog update
* Porting Pride-O-Mat to Upstream (#34412)
* Pride-O-Mat (#1322)
* Added Pride-O-Mat
* Yep
* Updated license to the correct one
* Added more lines, reconfigured settings a bit, also added cloaks to inventory, set coder socks to emag inventory
* Removed bunny ears, fixed typo
* Made requested changes
Webedit lmao
---------
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
* Automatic changelog update
* Oasis Power Rebalance + Misc fixes (#34425)
* balance oasis power as a stopgap
* change waste color to proper waste color
* Fix IPIntel causing frequent errors with the cleanup job. (#34428)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* craftable pet carrier (#34431)
* craftable pet carrier
* epic integration test fail
* Update Resources/Prototypes/Recipes/Crafting/improvised.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* extra tab begone
* epic linter fail
* how did linter not see this???
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds omnisexual pin (#34439)
* Make important change (#7)
This is to help julian test his bot
* Omnibus
* Remove random test file from testing a gh bot
* Add pin to vendor, spawners and loadout
---------
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
* Fix bad Rider analysis error in AccessOverriderWindow.xaml.cs (#34213)
* Disable meta-atlas for big rare RSIs (#33643)
* Persist deadmin to database, add admin suspension system (#34048)
* Automatic changelog update
* STAThread client content start (#34212)
* Minor client packaging changes (#33787)
* Fix muzzle accent (#34419)
* Automatic changelog update
* Add Discord webhook on watchlist connection (#33483)
* Automatic changelog update
* Fixed Thief starting gear failing on specific bag inventories. (#34430)
Fixed it yayyy
* Added missing details from worn capes to head of department beadsheets (#34396)
* Added key and missing details from worn cape to HOP bedsheet
* Corrected canvas size for sprite
* Subtle tweak to shading to reduce color blurring at pillow edge
* Matched Hue and tone to cape
* Tweak chekered pattern marks for gold trim
* Removed accidental palette inclusion
* Clearer wording and corrected attribution name.
* Tweaked shading on key image to fit in better with bed aesthetics
* Added CE cape icon to bedsheet
* Added cape image to HOP bedsheet. Made gold trim better match cape visuals
* RD cape icon added. Colour tweaked to better match cape.
* Updates json
* Tweaks to gold trim shading to match bed aesthetics
* Added better shading for HOP sheet side. Halved file size.
* Optimised HOS RD and CE sheet sprites
* Corrected sprite title in attribution
* Replace ERT Medic's Advanced Medkits with 2 Combat Medkits (#34380)
Replaced Adv kits with 2 combat kits
* Fix nonsensical RegEx for name restriction (#34375)
* Fixed nonsense RegEx
"-" character is a range, caused an error.
No need for "," to repeat so much, it's not a separator.
"\\" - just why?
* Further optimized RegEx structure
Added:
"@" delimiter for consistency
"/" to escape "-" for good and to avoid further problems
* Remove the ability to print the station anchor circuit board (#34358)
remove the ability to print the station anchor circuit board
* Automatic changelog update
* Meta hotfix (#34306)
* Fixed major issues with power, cargo shuttle docking, etc.
* remove serialized invalids
* Finished fixing the critical issues, ready for merge?
* Empty commit
* Added new break room to sci (they deserve it)
* Fixed up other minor issues
* if this map isnt PERFECT Emisse has permission to gib me and turn me into a cyborg
* added Roomba's changes
---------
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
* Make Mime PDA interactions silent (#34426)
* make insert and eject datafields in ItemSlotsComponent.cs nullable, make mime PDA silent
* make it so that you can't fit wirecutters into the slots, among other various things
* Automatic changelog update
* Smite vending machine (#34420)
* Added smite machine to YAML
* Added smite ads and inventory
* Added smite vendor sprites
* Changed the description of the machine to not repeat and ad line.
* Added newline to end of inventory .yml
* Corrected erroneous edit.
* Tweaked all sprites
* Added tesla toy to contraband. Reduced number of drinks available
* Reduced soda varieties but increased can numbers.
* Removed tesla toy from contraband inventory
* Removed speech component from vending machines that already inherit it
* Moved Sprite component to top of list
* Added Smite vendors to random spanwers
* Alphabetised spawn prototypes, commented where name is unclear
* Automatic changelog update
* Printable bedsheets (#34034)
* Bedsheets
* that one fixes yellow bedsheet and delete american bedsheet
* Automatic changelog update
* Update RT to v239.0.1 (#34454)
* Remove christmas anomaly spawn (#34053)
Update anomaly.yml
* Automatic changelog update
* Remove baby jail (#34443)
* Remove baby jail
Closes #33893
* Test fail fix.
* Add a CCVar to allow from hiding admins in the reported player count. (#34406)
Good for:
- Keeping admins hidden
- Not confuse players seeing 84/80 players
Nicely pairs up with the ``admin.admins_count_for_max_players`` ccvar
* Automatic changelog update
* Fix Mixed puddles not updating slips when evap (#34303)
* Fix Mixed puddles not updating slips when evap
* Remove Comment that isn't needed
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* CR - use SolutionContainerSystem.UpdateChemicals
* CR - cleanup unused imports
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Automatic changelog update
* WizDen config update for IPIntel (#34457)
* Fix DNA scrambler updating station record (#34091)
* Fix DNA scrambler updating station record
* Update Content.Server/Implants/SubdermalImplantSystem.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* New and Modified Map Spawners (#34424)
* Added spanwers and modified others
* adjusted values to be more in line with what I want
* this comment may have caused that test fail
* oh my god another typo
* Modified door crate to be engineering flavored
* reduced the pride vendor odds
Webedit lmao
* Elkridge Depot Fixes Again (#34461)
fixes evac shuttle, fix north solars, fix vents and scrubbers
* Space Ruins Variant (#34445)
* Space Ruins Variant
* Updated File
* Added Goliaths/Removed some mobs
* Plasma Station (#33991)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Plasma station population tweak (#34462)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
* Tweaked player counts
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Fix inconsistent borg flashlight state (#33027)
* Fix borg light being stuck on if no cell is inserted
* Fix HandheldLightComponent.Activted becoming out of sync with SharedPointLightComponent.Enabled
* Fix for entities which don't have a handheld light component
* FIX: Uranium, Cak, and BreadDog are not garbage! (#34192)
* FIX: Uranium, Cak, and BreadDog are not garbage!
* Fixed bread typo for spacegarbage change.
* Style: moved ediblebase
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Fix the HoS mantle metashield break (#33831)
Changes 'nukies' to 'syndicate agents' in the HoS mantle's description.
* fix for climbable pianos (#33690)
fix for climable pianos
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
* Automatic changelog update
* BorgChassis transfer their mind to a dropped BorgBrain fix (#34464)
Fix
* Staging: Add taped logo back for 10th anniversary (#34486)
* Update engine to v240.0.1 (#34497)
* mind roles
* partial ritual serialization fix
* Update CP14RoundEndSystem.cs
* delete worldEdge system
* Delete StencilOverlay.WorldEdge.cs
* Update CP14MagicEffectComponent.cs
* delete rituals system
* fix demiplane serialization
* mapdamage fix serialization
* common objectives fix
* remove failed personal goals endscreen
* fix special selling, fix serialization
* more fixes
* more fixes x2
* final bruh
* fix
---------
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Booblesnoot42 <108703193+Booblesnoot42@users.noreply.github.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: ~DreamlyJack~ <148849095+DreamlyJack@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: PopGamer46 <yt1popgamer@gmail.com>
Co-authored-by: crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
Co-authored-by: amatwiedle <amatwiedle@gmail.com>
Co-authored-by: justdie12 <125140938+justdie12@users.noreply.github.com>
Co-authored-by: Nox <nebulousnox38@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: ReeZer2 <63300653+ReeZer2@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Alpaccalypse <21291379+Alpaccalypse@users.noreply.github.com>
Co-authored-by: Spanky <scott@wearejacob.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Dylan Hunter Whittingham <45404433+DylanWhittingham@users.noreply.github.com>
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: SpaceRox1244 <138547931+SpaceRox1244@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Pancake <Pangogie@users.noreply.github.com>
Co-authored-by: Piras314 <p1r4s@proton.me>
Co-authored-by: flymo5678 <86871317+flymo5678@users.noreply.github.com>
Co-authored-by: c4llv07e <igor@c4llv07e.xyz>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Coolsurf6 <coolsurf24@yahoo.com.au>
Co-authored-by: TeenSarlacc <46608342+TeenSarlacc@users.noreply.github.com>
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
Co-authored-by: SpaceManiac <tad@platymuus.com>
Co-authored-by: War Pigeon <54217755+minus1over12@users.noreply.github.com>
Co-authored-by: Zachary Higgs <compgeek223@gmail.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Floxington <florian.decker@mailbox.org>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: SlimSlam <73899110+Stewie523@users.noreply.github.com>
Co-authored-by: frobnic8 <erskin@eldritch.org>
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
Co-authored-by: hyperDelegate <zachary1064@gmail.com>
Co-authored-by: JustinWinningham <justinmwinningham@gmail.com>
Co-authored-by: zHonys <69396539+zHonys@users.noreply.github.com>
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: Palladinium <patrick.chieppe@hotmail.com>
Co-authored-by: Alpha-Two <92269094+Alpha-Two@users.noreply.github.com>
Co-authored-by: Hyper B <137433177+HyperB1@users.noreply.github.com>
Co-authored-by: kosticia <kosticia46@gmail.com>
Co-authored-by: compilatron <40789662+jbox144@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Patrik Caes-Sayrs <heartofgoldfish@gmail.com>
Co-authored-by: ApolloVector <149586366+ApolloVector@users.noreply.github.com>
Co-authored-by: Gansu <68031780+GansuLalan@users.noreply.github.com>
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
2025-01-21 23:57:12 +03:00
|
|
|
public Task UpdateAdminDeadminnedAsync(NetUserId userId, bool deadminned, CancellationToken cancel = default)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.UpdateAdminDeadminnedAsync(userId, deadminned, cancel));
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-10 16:50:28 +01:00
|
|
|
public Task RemoveAdminRankAsync(int rankId, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.RemoveAdminRankAsync(rankId, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddAdminRankAsync(AdminRank rank, CancellationToken cancel = default)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddAdminRankAsync(rank, cancel));
|
2020-11-10 16:50:28 +01:00
|
|
|
}
|
|
|
|
|
|
2022-03-13 18:36:48 +01:00
|
|
|
public Task<int> AddNewRound(Server server, params Guid[] playerIds)
|
2021-11-22 19:08:27 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddNewRound(server, playerIds));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<Round> GetRound(int id)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetRound(id));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddRoundPlayers(int id, params Guid[] playerIds)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddRoundPlayers(id, playerIds));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
2020-11-10 16:50:28 +01:00
|
|
|
public Task UpdateAdminRankAsync(AdminRank rank, CancellationToken cancel = default)
|
2020-10-30 16:06:48 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.UpdateAdminRankAsync(rank, cancel));
|
2020-10-30 16:06:48 +01:00
|
|
|
}
|
|
|
|
|
|
2022-08-07 08:00:42 +02:00
|
|
|
public async Task<Server> AddOrGetServer(string serverName)
|
2022-03-13 18:36:48 +01:00
|
|
|
{
|
2023-05-02 02:36:39 +02:00
|
|
|
var (server, existed) = await RunDbCommand(() => _db.AddOrGetServer(serverName));
|
2022-08-07 08:00:42 +02:00
|
|
|
if (existed)
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
else
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
|
|
|
|
|
return server;
|
2022-03-13 18:36:48 +01:00
|
|
|
}
|
|
|
|
|
|
2023-05-07 03:14:23 -07:00
|
|
|
public Task AddAdminLogs(List<AdminLog> logs)
|
2021-11-22 19:08:27 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddAdminLogs(logs));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IAsyncEnumerable<string> GetAdminLogMessages(LogFilter? filter = null)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-07-25 03:10:50 +02:00
|
|
|
return RunDbCommand(() => _db.GetAdminLogMessages(filter));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
2021-12-25 02:07:12 +01:00
|
|
|
public IAsyncEnumerable<SharedAdminLog> GetAdminLogs(LogFilter? filter = null)
|
2021-11-22 19:08:27 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-07-25 03:10:50 +02:00
|
|
|
return RunDbCommand(() => _db.GetAdminLogs(filter));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IAsyncEnumerable<JsonDocument> GetAdminLogsJson(LogFilter? filter = null)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-07-25 03:10:50 +02:00
|
|
|
return RunDbCommand(() => _db.GetAdminLogsJson(filter));
|
2021-11-22 19:08:27 +01:00
|
|
|
}
|
|
|
|
|
|
2023-05-17 04:04:28 -07:00
|
|
|
public Task<int> CountAdminLogs(int round)
|
|
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
2023-07-25 03:10:50 +02:00
|
|
|
return RunDbCommand(() => _db.CountAdminLogs(round));
|
2023-05-17 04:04:28 -07:00
|
|
|
}
|
|
|
|
|
|
2022-01-04 06:37:06 -07:00
|
|
|
public Task<bool> GetWhitelistStatusAsync(NetUserId player)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetWhitelistStatusAsync(player));
|
2022-01-04 06:37:06 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddToWhitelistAsync(NetUserId player)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddToWhitelistAsync(player));
|
2022-01-04 06:37:06 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task RemoveFromWhitelistAsync(NetUserId player)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.RemoveFromWhitelistAsync(player));
|
2022-01-04 06:37:06 -07:00
|
|
|
}
|
|
|
|
|
|
2024-08-27 18:01:17 +02:00
|
|
|
public Task<bool> GetBlacklistStatusAsync(NetUserId player)
|
|
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetBlacklistStatusAsync(player));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task AddToBlacklistAsync(NetUserId player)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.AddToBlacklistAsync(player));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task RemoveFromBlacklistAsync(NetUserId player)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.RemoveFromBlacklistAsync(player));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task AddUploadedResourceLogAsync(NetUserId user, DateTimeOffset date, string path, byte[] data)
|
2022-03-26 12:46:37 +01:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddUploadedResourceLogAsync(user, date, path, data));
|
2022-03-26 12:46:37 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task PurgeUploadedResourceLogAsync(int days)
|
|
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.PurgeUploadedResourceLogAsync(days));
|
2022-03-26 12:46:37 +01:00
|
|
|
}
|
|
|
|
|
|
2024-06-07 15:53:20 -04:00
|
|
|
public Task<DateTimeOffset?> GetLastReadRules(NetUserId player)
|
|
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetLastReadRules(player));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task SetLastReadRules(NetUserId player, DateTimeOffset time)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.SetLastReadRules(player, time));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<int> AddAdminNote(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, NoteSeverity severity, bool secret, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime)
|
2022-04-16 20:57:50 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2022-04-16 20:57:50 +02:00
|
|
|
var note = new AdminNote
|
|
|
|
|
{
|
|
|
|
|
RoundId = roundId,
|
|
|
|
|
CreatedById = createdBy,
|
|
|
|
|
LastEditedById = createdBy,
|
|
|
|
|
PlayerUserId = player,
|
2023-07-21 13:38:52 +02:00
|
|
|
PlaytimeAtNote = playtimeAtNote,
|
2022-04-16 20:57:50 +02:00
|
|
|
Message = message,
|
2023-07-21 13:38:52 +02:00
|
|
|
Severity = severity,
|
|
|
|
|
Secret = secret,
|
2024-02-20 10:13:31 +01:00
|
|
|
CreatedAt = createdAt.UtcDateTime,
|
|
|
|
|
LastEditedAt = createdAt.UtcDateTime,
|
|
|
|
|
ExpirationTime = expiryTime?.UtcDateTime
|
2022-04-16 20:57:50 +02:00
|
|
|
};
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.AddAdminNote(note));
|
2022-04-16 20:57:50 +02:00
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<int> AddAdminWatchlist(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
var note = new AdminWatchlist
|
|
|
|
|
{
|
|
|
|
|
RoundId = roundId,
|
|
|
|
|
CreatedById = createdBy,
|
|
|
|
|
LastEditedById = createdBy,
|
|
|
|
|
PlayerUserId = player,
|
|
|
|
|
PlaytimeAtNote = playtimeAtNote,
|
|
|
|
|
Message = message,
|
2024-02-20 10:13:31 +01:00
|
|
|
CreatedAt = createdAt.UtcDateTime,
|
|
|
|
|
LastEditedAt = createdAt.UtcDateTime,
|
|
|
|
|
ExpirationTime = expiryTime?.UtcDateTime
|
2023-07-21 13:38:52 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return RunDbCommand(() => _db.AddAdminWatchlist(note));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<int> AddAdminMessage(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
var note = new AdminMessage
|
|
|
|
|
{
|
|
|
|
|
RoundId = roundId,
|
|
|
|
|
CreatedById = createdBy,
|
|
|
|
|
LastEditedById = createdBy,
|
|
|
|
|
PlayerUserId = player,
|
|
|
|
|
PlaytimeAtNote = playtimeAtNote,
|
|
|
|
|
Message = message,
|
2024-02-20 10:13:31 +01:00
|
|
|
CreatedAt = createdAt.UtcDateTime,
|
|
|
|
|
LastEditedAt = createdAt.UtcDateTime,
|
|
|
|
|
ExpirationTime = expiryTime?.UtcDateTime
|
2023-07-21 13:38:52 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return RunDbCommand(() => _db.AddAdminMessage(note));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<AdminNoteRecord?> GetAdminNote(int id)
|
2022-04-16 20:57:50 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.GetAdminNote(id));
|
2022-04-16 20:57:50 +02:00
|
|
|
}
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<AdminWatchlistRecord?> GetAdminWatchlist(int id)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetAdminWatchlist(id));
|
|
|
|
|
}
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<AdminMessageRecord?> GetAdminMessage(int id)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetAdminMessage(id));
|
|
|
|
|
}
|
2022-04-16 20:57:50 +02:00
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<ServerBanNoteRecord?> GetServerBanAsNoteAsync(int id)
|
2022-04-16 20:57:50 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbReadOpsMetric.Inc();
|
2023-07-21 13:38:52 +02:00
|
|
|
return RunDbCommand(() => _db.GetServerBanAsNoteAsync(id));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<ServerRoleBanNoteRecord?> GetServerRoleBanAsNoteAsync(int id)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetServerRoleBanAsNoteAsync(id));
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-20 23:31:33 +02:00
|
|
|
public Task<List<IAdminRemarksRecord>> GetAllAdminRemarks(Guid player)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetAllAdminRemarks(player));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<List<IAdminRemarksRecord>> GetVisibleAdminNotes(Guid player)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetVisibleAdminRemarks(player));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<List<AdminWatchlistRecord>> GetActiveWatchlists(Guid player)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetActiveWatchlists(player));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task<List<AdminMessageRecord>> GetMessages(Guid player)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetMessages(player));
|
|
|
|
|
}
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task EditAdminNote(int id, string message, NoteSeverity severity, bool secret, Guid editedBy, DateTimeOffset editedAt, DateTimeOffset? expiryTime)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.EditAdminNote(id, message, severity, secret, editedBy, editedAt, expiryTime));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task EditAdminWatchlist(int id, string message, Guid editedBy, DateTimeOffset editedAt, DateTimeOffset? expiryTime)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.EditAdminWatchlist(id, message, editedBy, editedAt, expiryTime));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task EditAdminMessage(int id, string message, Guid editedBy, DateTimeOffset editedAt, DateTimeOffset? expiryTime)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.EditAdminMessage(id, message, editedBy, editedAt, expiryTime));
|
2022-04-16 20:57:50 +02:00
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task DeleteAdminNote(int id, Guid deletedBy, DateTimeOffset deletedAt)
|
2022-04-16 20:57:50 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2023-05-02 02:36:39 +02:00
|
|
|
return RunDbCommand(() => _db.DeleteAdminNote(id, deletedBy, deletedAt));
|
2022-04-16 20:57:50 +02:00
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task DeleteAdminWatchlist(int id, Guid deletedBy, DateTimeOffset deletedAt)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.DeleteAdminWatchlist(id, deletedBy, deletedAt));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task DeleteAdminMessage(int id, Guid deletedBy, DateTimeOffset deletedAt)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.DeleteAdminMessage(id, deletedBy, deletedAt));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task HideServerBanFromNotes(int id, Guid deletedBy, DateTimeOffset deletedAt)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.HideServerBanFromNotes(id, deletedBy, deletedAt));
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-20 10:13:31 +01:00
|
|
|
public Task HideServerRoleBanFromNotes(int id, Guid deletedBy, DateTimeOffset deletedAt)
|
2023-07-21 13:38:52 +02:00
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.HideServerRoleBanFromNotes(id, deletedBy, deletedAt));
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-21 16:15:46 +01:00
|
|
|
public Task MarkMessageAsSeen(int id, bool dismissedToo)
|
2022-04-16 20:57:50 +02:00
|
|
|
{
|
2022-08-07 08:00:42 +02:00
|
|
|
DbWriteOpsMetric.Inc();
|
2024-03-21 16:15:46 +01:00
|
|
|
return RunDbCommand(() => _db.MarkMessageAsSeen(id, dismissedToo));
|
2023-05-02 02:36:39 +02:00
|
|
|
}
|
|
|
|
|
|
2024-06-01 05:08:31 -07:00
|
|
|
public Task AddJobWhitelist(Guid player, ProtoId<JobPrototype> job)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.AddJobWhitelist(player, job));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<List<string>> GetJobWhitelists(Guid player, CancellationToken cancel = default)
|
|
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.GetJobWhitelists(player, cancel));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<bool> IsJobWhitelisted(Guid player, ProtoId<JobPrototype> job)
|
|
|
|
|
{
|
|
|
|
|
DbReadOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.IsJobWhitelisted(player, job));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<bool> RemoveJobWhitelist(Guid player, ProtoId<JobPrototype> job)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.RemoveJobWhitelist(player, job));
|
|
|
|
|
}
|
|
|
|
|
|
Upstream sync (#786)
* Box Station - Dechristmassified (#34135)
* dechrismassified
* removed camera from shower
* Marathon Station - Dechristmassified (#34136)
* dechristmassified
* further dechristmassified
* Loop Station Decal and maints additions (#34103)
* many changes
* contentingregrationtests
* serialized invalid removed
* blank
* "Changes and fixes as suggested"
* blank
* blank
* added desk bells
* engi rework rework rework
* added gate to content integration
* tweaks
* aaa
* bbb
* added holopads
* ccc
* Update default.yml
* hotfix
* aaa
* bbb
* many many tweaks and fixes
* aaa
* decals and maints
* aaa
* bbb
* ccc
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Rename cryobed yml file (#34134)
renamed cryopod.yml to cryogenic_sleep_unit.yml
* Cog update (not very merry) (#34144)
removed christmas merry
* bagel update (#34145)
* Add hair pulato (#34117)
* add sprite pulato
* update
* add pulato hair
* add pulato hair
* add pulato hair
* update meta "pulato"
* Automatic changelog update
* Holopad UI tweak for incoming calls (#34137)
* Initial commit
* Update
* Comment correction
* Minor margin increase
* Holopads no longer log broadcasted speech and emotes in the chat (#34114)
Initial commit
* Automatic changelog update
* Fixes borgs not being able to check their laws in crit (#34133)
* fix
* fix2
* Add contraband parent to laser gun safe (#34132)
* Automatic changelog update
* Add Holopad Circuit Board to A/V Communication Technology (#34150)
Added the holopad circuit board to the AV Communication technology and circuit imprinter lathe.
* Automatic changelog update
* Fix disposal signal routers sprites (#34139)
* Fix disposal signal routers sprites
* Remove old shitcode
* Automatic changelog update
* Meta station overhaul (#33506)
* added mail, moved some things around, and fixed a lot of APCs
* fixed my mistakes
* Fixed a few mistakes and AI camera names
* Redid south medbay and more wiring
* Finished sci overhaul, and fixed all issues that I could find.
* rebuilt botany, removed vox box, fixed all known issues.
* Overhauled security
* Minor commit as I prepare to update my copy
* Rebalanced role counts
* Final changes, ready for review!
* Emisse and other people fixed issues with the station
* Finalized changes (for real this time)!
* Standardize shotgun ammo in storagefills (#34156)
shotgun ammo changes
* Automatic changelog update
* meta update (#34158)
* Amber Station Adjustments (#34126)
* Made a couple fixes to various decals, cleaned up some entities, gave the clown their bag and the bartender a handlabeler
* Several changes, more cameras, lighting fixes, adjusted hydro a bit, gave sec a bunch of shutters
* Added new random spawners for science and added them to Amber
* fixed the science spawners and modified amber slightly
* Fixed the random instrument entry
* Fix friendly vent spiders (#34153)
Swapped order of parents for MobGiantSpiderAngry
* Removed UseDelay component from RCD (#34149)
* Automatic changelog update
* Decrease hp for rusted walls (#34043)
* Automatic changelog update
* FIX: Thief beacon doubled steal targets (#33750)
* Automatic changelog update
* remove nukemass song (#34066)
* Automatic changelog update
* Corrected all ghost role names to title case. (#34155)
* Corrected all ghost role names to title case.
* Removes full stop from Hamlet's title.
* Updated ghost role names not in the main ghost roles .ftl
* Two capitals corrections
* Packed Update (Remove Christmas & New Evac) (#34168)
* Packed update (remove christmas, new shuttle)
* Fix invalid
* the voices
* Omega Update (Remove Christmas) (#34174)
omega soap
* Renamed "Irish Car Bomb" drink to "Irish Slammer" (#34107)
* Renamed "Irish Car Bomb" drink to "Irish Slammer", due to concerns over insensitivity.
* Fixing some missed references
* Added prototype id changes to migration.yml. Removed any reference to the troubles (and corrected ale to stout for flavour text).
* Corrected description back to "Irish Cream"
* Removed non-entities from migration.yml
* Automatic changelog update
* Bugfix for the AI player's eye getting stuck when their broadcast is interrupted (#34093)
Initial commit
* Speech is relayed by holopad holograms (#33978)
* Initial commit
* Corrected a field attribute
* Make JPEG a PNG (#34176)
Make 3.png a PNG
* Removed Undesirable Ion Storm Verbs (#34175)
* Remove Undesirable Laws
* empty
* added basic admin logs for PDA notekeeper notes (#34118)
* added basic admin logs for PDA notekeeper notes
* formatting
* added new LogType 'PdaInteract' and changed PDA notekeeper logs to it
---------
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Sprites defined for all non-generic computer boards. Added new syndicate computer board sprite. (#34104)
* Defined sprites for non-generic computer boards. Added new syndicate computer board sprite.
* Added new sprite to meta.json and updated attribution.
* Reformatted module.rsi meta.json to match other meta file styles.
* Syndicate board sprite made less yellow/gold, changed outer chips to black. Using grey/silver for CPU centre, akin to syndie agent PDA theme, and to keep distinctive from security board.
* Corrected indentation spacing for currently edited entities.
* Update Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
* add pr link to attribution
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Added pricegun sound (#34119)
added pricegun sound
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
* Automatic changelog update
* Separate Tables n' Counters (#32673)
* Update tables.yml
* Remove Extra base: state_
* Update tables.yml
* Automatic changelog update
* Add Chameleon PDA (#30514)
* V1 commit
* Remove PDA name and unnecessary pda state
* Adds PDA to Chameleon backpack & thief toolbox
* Change to use AppearanceDataInit
* Add basic PDA state to ensure there's always a sprite before AppearanceData can be applied
* Revert PDA name (this will be changed to another way later)
* Update PDA name updating to new system
* Fix yaml, and fix Agent ID chameleon
* Updated based on review
* Automatic changelog update
* Add some ion storm actions to replace removed ones (#34180)
* Add some ion storm actions to replace removed ones
* Remove other country references, replace
* Some more tuning of the storm values, removing real-world countries
* boldy basics
* Automatic changelog update
* Amber Station and Science Spawner Tweaks (#34187)
* Modified science spawners a bit since I realized including maints loot was undesireable
* Linked Medical doors to buttons, redesigned the floor of the dining area a bit, placed more science spawners
* Somehow I overlooked that I was importing the maints loot table instead of the sci loot table
* Gave sci an EOD closet
* named the evac shuttle
* Core update (#34201)
add
* Elkridge Depot (The station formerly known as Cell) (#34085)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* Add Elkridge Depot into Map Rotation (#34206)
* named apcs, doors, air alarms, cameras, fire alarms, substations, SMESs
* updated PostMapInitTest.cs to include Cell
* added psychologist spawn
* fixed scanner console link, fixed disposals conveyors, and more
* added janitor service lights, maints firelocks, and more
* added more fun maint rooms
* improved head offices, kitchen, psych. added maints between science and arrivals
* fixed spawners placed over solid objects
* added unique evac shuttle, the Cilium
* evac shuttle is now orientated correctly
* added unique cargo shuttle
* updated kitchen area
* renamed Cell Station to Elkridge Depot, removed most main hall airlocks for smoother travel
* general last-minute touch-ups around the bridge and sec
* changed station name in PostMapInitTest.cs
* added Elkridge to default map pool
* added myself to map_attribution.yml credits
* Automatic changelog update
* Packed Update (#34208)
Packed Update (decals mostly)
* Apply forensics when loading with an ammo box (#32280)
* Automatic changelog update
* Update Credits (#34220)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Fix rainbow lizard plushie inhands (#34128)
* fix rainbow plushie inhands
* address requested changes
* attribute sprites
* wielding refactor/fixes (#32188)
* refactor wieldable events
* fix inconsitency with wielding and use updated events
* wieldable cosmetic refactoring
* Update Content.Shared/Wieldable/Events.cs
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* real
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* Automatic changelog update
* Lobby chat width and custom lobby titles (#33783)
* lobby name cvar
* panel width
* skrek
* server name localization fix
* comment format fix
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* remove redundant newline
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* string.empty
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
* use SetWidth
* Update Resources/Locale/en-US/lobby/lobby-gui.ftl
---------
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds bullet collision to station lights (#34070)
Adds collision with bullets to lights
* Automatic changelog update
* Oasis Update (#34245)
santa is keel.
* Amber Station - Minor Fixes (#34246)
* Moved the stand clear decal in front of the janitor's shutters up two pixels
* added tech maints under most maints doors, fixed power issues in cargo, and fixed a couple minor issues
* Make station anchor hitbox less insufferable (#34217)
* Automatic changelog update
* Remove kessler and zombeteors gamemodes from the secret pool (#34051)
* Remove kessler, zombeteors gameodes
* Probably should keep the protos in case an admin wants to torture players secretly
* address slart review
* Automatic changelog update
* Added distinct ad and bye chatter to Dr. Gibb vending (#34182)
* Added distinct ad and bye chatter to Dr. Gibb vending
* Correcting revert mistake
* Changed ad pack names to better match naming convention
* Implement approved rule changes (#34233)
* Special reagents now appear in the guidebook (#34265)
* Special reagents now appear in the guidebook
* Improved guidebook wording for reagent category
* Automatic changelog update
* Implement approved rule changes (#34233)
* Fix compilation errors in tests from update (#34272)
Required for https://github.com/space-wizards/RobustToolbox/pull/5590 to not cause compile fails, but can be merged on its own
* Fix portable scrubber appearing powered on spawn (#34274)
* [HOTFIX] Fix chameleon PDAs renaming IDs (#34249)
Fix chameleon PDA
* [HOTFIX] Fix Meta station power (#34256)
* hotfix meta power
* fixed AME
* add missing cargo shuttle pilot console to cargo
* Update vessel_warning.ogg (#34263)
* Update vessel_warning.ogg
Remove DC offset and apply short fade out.
* Update attributions.yml
* Update attributions.yml
* Add bleating accent to goats (#34273)
* Automatic changelog update
* Happy New Year (#34288)
happy new year
* Amber Station - Balance Improvements (#34294)
changed the center area in med bay to a garden, weakened meteor shielding in some areas, also general touch ups around the station
* Fixed Loop Station's southern solar array unlinked airlocks (#34296)
Fixed Southern solar external airlock door bolts
* Fix empty lines in adminwho with stealthmins. (#34122)
Don't print newline if admin is hidden.
* Automatic changelog update
* Added missing cameras to Loop Station (#34308)
* Added missing cameras
* Added missing cameras
* Amber Station - Fixes and Warm Lights (#34324)
* Added warm lights, placed them around the map, also fixed an issue with the MV wire in the cafeteria
* Fixed lv wiring in caf, and adjusted a couple things
* Empty commit to force checks to rerun
* Automatic changelog update
* change locking to use ComplexInteraction (#34326)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Automatic changelog update
* Drink titles and soda vendor consistency (#34178)
* Made capitalisation of proper names consistent.
* Roy Rogers is presumably a proper name.
* Second pass at distinguishing proper names only.
* Two nitpicking/minor changes
* Fixed some overlooked can brand names. Matched case with descriptions.
* Switched generic sodas with brands for SodaInventory
* Removed commonly available branded cans
* Matched case consistency used elsewhere. Minor SPAG corrections.
* Added "nothing" and some missing alcohol bottles to RandomSpawner
* Added distinct ad and bye chatter to Dr. Gibb machines.
* Revert "Added distinct ad and bye chatter to Dr. Gibb machines."
This reverts commit f90b8a470556de05aca81255db8b6b03596ae944.
* Revert "Removed commonly available branded cans"
This reverts commit 43b82168dac1f73b187b7677f34ecdd33b6bb81a.
* Revert "Switched generic sodas with brands for SodaInventory"
This reverts commit f1790f0ce61ef135c79068de6a741e8bb50d85d3.
* Lowercased DrinkGlass suffix. Moved alcoholic drinks from drinks to alcohol.
* Renamed energy drink to Red Bool. Corrected and added some jug descriptions.
* Added reagent names for all bottles except poison-wine
* Revision of title case for cocktails
* SPAG and fixed the only brand reagen with unbranded name.
* Possibly controversial, shortened some bran names to better fit the UI.
* Fixed some inconsistencies in naming
* Matched brand localisation change
* Two name style edits
* Fixed Smite bottle name
* Minor, punctuation
* Blank line to end of file
* Upgraded descriptive names to title case
* Banana Mama
* reverts change, moved to another PR to avoid conflict.
* Removed caffeine reference.
* Minor, corrected some more inconsistencies
* Removed Bottle of Nothing from random spawner.
* Automatic changelog update
* Fix access configurator debug assert (#34330)
* fix
* greytide fix
* fix admin log
* Dirty
* Renamed water melon juice to watermelon juice (#34341)
* Fix battery charging stopping just short of being full (#34028)
* Add copy threshold button to air alarms (#34346)
* Automatic changelog update
* Oasis updoot the dimmining (#34347)
updooty
* Fland Station - Dirt Fix (#34352)
Fland
* Omega Station - Dirt Fix (#34353)
omega
* Marathon Station - Dirt Fix (#34354)
* Marathon
* Rerunning tests
* Cog Station - Dirt Fix (#34355)
Cog
* Box Station - Dirt Fix (#34356)
Box
* Bagel Station - Dirt Fix (#34357)
Bagel
* Packed Station - Dirt Fix (#34351)
* packed
* Rerunning tests
* Replace some sound PlayEntity with PlayPvs (#34317)
* Fixed Forensic Gloves to be Security Contraband (#34193)
* added BaseRestrictedContraband to forensic gloves
* moved from id to parent
* Automatic changelog update
* add large instruments to the cargo request computer (#34240)
* added the church organ to the cargo console (will add more in this PR, assuming i did this right (HOW DO YOU BUY CARGO ORDERS IN DEV ENVIROMENT???? *sobs))
* added other structure instruments to cargo Catalog
* fixed an epic copy/paste fail
* changed prices
* fixed epic copy/paste fail #2
---------
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
* Automatic changelog update
* Fix crayon losing durability on stamped paper (#34202)
* Automatic changelog update
* Adds a border to Oppenhopper poster (#34219)
* border
* Update meta.json
* Update Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Trim trailing newlines from examine messages (#33381)
* Trim trailing newlines from examine messages
* TrimTrailingNewlines -> TrimEnd
* Add a popup message when ghost Boo action does nothing (#34369)
* fix ghost_component.ftl locale grammar (#34372)
fix ghost component locale grammar
* Let ghosts sometimes make certain devices say creepy things (#34368)
* Add SpookySpeaker component/system
* Shuffle Boo action targets before trying to activate them
* Add SpookySpeaker to vending machines
* Fix chatcode eating messages starting with "..."
* Add SpookySpeaker to recycler
* Oops
* Decrease speak probability for vending machines
* Add spooky speaker to arcade machines
* Automatic changelog update
* Add directional escape pod sign (#34367)
* Make indestructible tiles not breakable by explosions (#34339)
* No more Ai Spacing
* Move guard into earlier guard statement
* Automatic changelog update
* Arachnid stomach organ yaml fix (#34298)
Arachnid stomach yaml fix
Arachnids had their stomach `updateInterval` set to 1.5, 50% slower than
normal. But this doesn't actually slow down the speed that the stomach
digests things, only the rate at which it updates to check if enough
time has passed. (See https://github.com/space-wizards/space-station-14/blob/23f0b304f284d2600cb2c6b4c9d36fdca7f99ec4/Content.Server/Body/Systems/StomachSystem.cs#L57 )
This PR changes arachnid stomachs to have a `digestionDelay` of 30 (20
is default) to achive the desired effect.
Stasis beds are also bugged in a similar manner. They are intended to
slow down the digestion speed, but similarly all they do is change the
update rate. But fixing that requires actual code changes and is out of
scope for this commit.
* Automatic changelog update
* Bended radiator (#34251)
* Automatic changelog update
* Remove Entity<T> data-fields (#34083)
* Update submodule, .NET 9 (#34320)
* Role Types (#33420)
* mindcomponent namespace
* wip MindRole stuff
* admin player tab
* mindroletype comment
* mindRolePrototype redesign
* broken param
* wip RoleType implementation
* basic role type switching for antags
* traitor fix
* fix AdminPanel update
* the renameningTM
* cleanup
* feature uncreeping
* roletypes on mind roles
* update MindComponent.RoleType when MindRoles change
* ghostrole configuration
* ghostrole config improvements
* live update of roleType on the character window
* logging stuff and notes
* remove thing no one asked for
* weh
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* move roletypeprototype to its own file, minor note stuff
* remove Roletype.Created
* log stuff
* roletype setup for ghostroles and autotraitor reinforcements
* ghostrole type configs
* adjustable admin overlay
* cleanup
* fix this in its own PR
* silicon antagonist
* borg stuff
* mmi roletype handling
* spawnable borg roletype handling
* weh
* ghost role cleanup
* weh
* RoleEvent update
* polish
* log stuff
* admin overlay config
* ghostrolecomponent cleanup
* weh
* admin overlay code cleanup
* minor cleanup
* Obsolete MindRoleAddedEvent
* comment
* minor code cleanup
* MindOnDoGreeting fix
* Role update message
* fix duplicate job greeting for cyborgs
* fix emag job message dupe
* nicer-looking role type update
* crew aligned
* syndicate assault borg role fix
* fix test fail
* fix a merge mistake
* fix LoneOp role type
* Update Content.Client/Administration/AdminNameOverlay.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Roles/SharedRoleSystem.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* comment formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* change logging category
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* fix a space
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use MindAddRoles
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* get MindComponent from TryGetMind
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* move var declaration outside loop
* remove TryComp
* take RoleEnum behind the barn
* don't use ensurecomp unnecessarily
* cvar comments
* toggleableghostrolecomponent documentation
* skrek
* use EntProtoId
* mindrole config
* merge baserolecomponent into basemindrolecomponent
* ai and borg silicon role tweaks
* formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* I will end you (the color)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* use LocId type for a locale id
* update RoleEvent documentation
* update RoleEvent documentation
* remove obsolete MindRoleAddedEvent
* refine MindRolesUpdate()
* use dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* inject dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* roleType.Name no longer required
* reformatted draw code logic
* GhostRoleMarkerRoleComponent comment
* minor SharedRoleSystem cleanup
* StartingMindRoleComponent, unhardcode roundstart silicon
* Update Content.Shared/Roles/SharedRoleSystem.cs
* remove a whitespace
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Update Credits (#34389)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Elkridge Depot Improvements (#34377)
* updates decals
* more decal work, more dinginess in certain areas
* added decals under doors
* Fix force-feeding Loc strings not using target's gender (#34276)
* HOTFIX Tweaked air alarm default settings for nitrogen breathing crew (#34198)
air alarm default settings modified for anaerobic crew
* #33571 Bomb defusal lockers always should have tools (#34394)
* Automatic changelog update
* [HOTFIX] fix holopads with multiple ai cores dying (#34289)
change return to continue
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Reduce Panic Bunker Minimum Playtime to 2 hours (#34401)
* Add IPIntel API support. (#33339)
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* Automatic changelog update
* Fland Reporters Room (#34408)
changed the command checkpoint to a reporters room.
* Automatic changelog update
* Add a high-capacity water tank to the janitor's closet of Oasis (#34366)
added high capacity water tank
* Darkened Service job interface icons for better contrast (#34270)
* Darkened Service job interface icons for better contrast
* Fixed Botanist job interface icon dark handle hole
* Change to new, darker, service color in all resource yml files
* Revert Map file service color changes
* Use new darker service color on id cards
* Revert Service color change in mapping_actions.yml
* Revert salvage difficulties service color
* Redo service ID and job colors to match advanced palette
* Revert all service color yml file changes
* Switch icons to use existing service pallete colors from advanced pallete
* Update meta.json for darkened service icons
---------
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
* Amber Station - Moved Vents Around (#34410)
* Moved all vents around, made some small changes
* Finished work
* Removed insuls spawner since they're not merged yet
* Insuls Spawner (#34407)
* Added insuls spawner, time to test
* adjusted whitespace since that was causing issues
* Update Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Manual Valves Resprite (#34378)
* resprited manual valves to be colourblind friendly
* Update Resources/Textures/Structures/Piping/Atmospherics/pump.rsi/meta.json
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
---------
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
* Automatic changelog update
* loop station door access fixes and air sink (#34414)
small fixes
* Raise syndicate kobold reinforcement HP crit threshold from 75 to 100 to match monkey. (#34409)
kobold ops have 100 health
* Anomaly dragging exploit fix and QOL changes (#34280)
* Wood wall is now built from barricade congraph and on top of a barricade instead of using rods
* APE dragging exploit fix
* Fixed doors being blocked with mousetraps, and other Collidable items (#34045)
* Changed SharedDoorSystem.GetColliding() to allow non-LowImpassible mask entities to stay in the door while it closes
* Update Content.Shared/Doors/Systems/SharedDoorSystem.cs
Clarifies comment of how the mask is used
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Fixed Jazz Instrument for Electric Guitars (#33363)
* fixed jazz midi program byte
* swapped around jazz and clean in instrumentList
* Automatic changelog update
* Porting Pride-O-Mat to Upstream (#34412)
* Pride-O-Mat (#1322)
* Added Pride-O-Mat
* Yep
* Updated license to the correct one
* Added more lines, reconfigured settings a bit, also added cloaks to inventory, set coder socks to emag inventory
* Removed bunny ears, fixed typo
* Made requested changes
Webedit lmao
---------
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
* Automatic changelog update
* Oasis Power Rebalance + Misc fixes (#34425)
* balance oasis power as a stopgap
* change waste color to proper waste color
* Fix IPIntel causing frequent errors with the cleanup job. (#34428)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* craftable pet carrier (#34431)
* craftable pet carrier
* epic integration test fail
* Update Resources/Prototypes/Recipes/Crafting/improvised.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Recipes/Crafting/Graphs/storage/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Objects/Misc/pet_carrier.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* extra tab begone
* epic linter fail
* how did linter not see this???
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Adds omnisexual pin (#34439)
* Make important change (#7)
This is to help julian test his bot
* Omnibus
* Remove random test file from testing a gh bot
* Add pin to vendor, spawners and loadout
---------
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
* Fix bad Rider analysis error in AccessOverriderWindow.xaml.cs (#34213)
* Disable meta-atlas for big rare RSIs (#33643)
* Persist deadmin to database, add admin suspension system (#34048)
* Automatic changelog update
* STAThread client content start (#34212)
* Minor client packaging changes (#33787)
* Fix muzzle accent (#34419)
* Automatic changelog update
* Add Discord webhook on watchlist connection (#33483)
* Automatic changelog update
* Fixed Thief starting gear failing on specific bag inventories. (#34430)
Fixed it yayyy
* Added missing details from worn capes to head of department beadsheets (#34396)
* Added key and missing details from worn cape to HOP bedsheet
* Corrected canvas size for sprite
* Subtle tweak to shading to reduce color blurring at pillow edge
* Matched Hue and tone to cape
* Tweak chekered pattern marks for gold trim
* Removed accidental palette inclusion
* Clearer wording and corrected attribution name.
* Tweaked shading on key image to fit in better with bed aesthetics
* Added CE cape icon to bedsheet
* Added cape image to HOP bedsheet. Made gold trim better match cape visuals
* RD cape icon added. Colour tweaked to better match cape.
* Updates json
* Tweaks to gold trim shading to match bed aesthetics
* Added better shading for HOP sheet side. Halved file size.
* Optimised HOS RD and CE sheet sprites
* Corrected sprite title in attribution
* Replace ERT Medic's Advanced Medkits with 2 Combat Medkits (#34380)
Replaced Adv kits with 2 combat kits
* Fix nonsensical RegEx for name restriction (#34375)
* Fixed nonsense RegEx
"-" character is a range, caused an error.
No need for "," to repeat so much, it's not a separator.
"\\" - just why?
* Further optimized RegEx structure
Added:
"@" delimiter for consistency
"/" to escape "-" for good and to avoid further problems
* Remove the ability to print the station anchor circuit board (#34358)
remove the ability to print the station anchor circuit board
* Automatic changelog update
* Meta hotfix (#34306)
* Fixed major issues with power, cargo shuttle docking, etc.
* remove serialized invalids
* Finished fixing the critical issues, ready for merge?
* Empty commit
* Added new break room to sci (they deserve it)
* Fixed up other minor issues
* if this map isnt PERFECT Emisse has permission to gib me and turn me into a cyborg
* added Roomba's changes
---------
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
* Make Mime PDA interactions silent (#34426)
* make insert and eject datafields in ItemSlotsComponent.cs nullable, make mime PDA silent
* make it so that you can't fit wirecutters into the slots, among other various things
* Automatic changelog update
* Smite vending machine (#34420)
* Added smite machine to YAML
* Added smite ads and inventory
* Added smite vendor sprites
* Changed the description of the machine to not repeat and ad line.
* Added newline to end of inventory .yml
* Corrected erroneous edit.
* Tweaked all sprites
* Added tesla toy to contraband. Reduced number of drinks available
* Reduced soda varieties but increased can numbers.
* Removed tesla toy from contraband inventory
* Removed speech component from vending machines that already inherit it
* Moved Sprite component to top of list
* Added Smite vendors to random spanwers
* Alphabetised spawn prototypes, commented where name is unclear
* Automatic changelog update
* Printable bedsheets (#34034)
* Bedsheets
* that one fixes yellow bedsheet and delete american bedsheet
* Automatic changelog update
* Update RT to v239.0.1 (#34454)
* Remove christmas anomaly spawn (#34053)
Update anomaly.yml
* Automatic changelog update
* Remove baby jail (#34443)
* Remove baby jail
Closes #33893
* Test fail fix.
* Add a CCVar to allow from hiding admins in the reported player count. (#34406)
Good for:
- Keeping admins hidden
- Not confuse players seeing 84/80 players
Nicely pairs up with the ``admin.admins_count_for_max_players`` ccvar
* Automatic changelog update
* Fix Mixed puddles not updating slips when evap (#34303)
* Fix Mixed puddles not updating slips when evap
* Remove Comment that isn't needed
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* CR - use SolutionContainerSystem.UpdateChemicals
* CR - cleanup unused imports
---------
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
* Automatic changelog update
* WizDen config update for IPIntel (#34457)
* Fix DNA scrambler updating station record (#34091)
* Fix DNA scrambler updating station record
* Update Content.Server/Implants/SubdermalImplantSystem.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* New and Modified Map Spawners (#34424)
* Added spanwers and modified others
* adjusted values to be more in line with what I want
* this comment may have caused that test fail
* oh my god another typo
* Modified door crate to be engineering flavored
* reduced the pride vendor odds
Webedit lmao
* Elkridge Depot Fixes Again (#34461)
fixes evac shuttle, fix north solars, fix vents and scrubbers
* Space Ruins Variant (#34445)
* Space Ruins Variant
* Updated File
* Added Goliaths/Removed some mobs
* Plasma Station (#33991)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Plasma station population tweak (#34462)
* Plasma Station initial commit
* Map fixes 1
Expanded science's SMES array
Added advanced SMES
Redone stamped documents with custom stamps
Expanded atmospherics with more storage tanks
Added status displays
Add missing beacons to solars
Replaced the passive gates in science with valves
Removed protolathe in engineering
Added guitar to CE office
Replaced throngler plushie with weh cloak
Add a lattice tile outside the atmos burn chamber and storange tanks
Added atmos network monitor in bridge
* Add cargo and emergency shuttle
* Updated maps
* Add plasma to map testing list
* Map fixes 2
Reworked pipenets to not go under walls
Redid salvage and disposals
Reworked the bar to include a new bar extension facing the pool
Replaced arrivals cryo with an arcade
Replaced the toilets in the service plaza with cryo
Removed the cryo in dorms
Added more details to hallways
Redid tools room to include a front desk for the janitor closet
Reconnected sci to power roundstart
Removed some unideal spawns
Expanded the TEG airlock to be 2x3 instead of 1x3
Reduced the size of the SMES bank from 10 to 6
Disabled the plasma miners (downstreams or admins can re-enable them)
Replaced illegal maint items
* Fixes a 6 pack destroying the universe
Ok maybe cracking a cold one with the boys wasn't a great idea.
* Map fixes 3
* Quick research assistant fix
* Map fixes 4
* Map fixes 5
* webedit go brrrt
* Map fixes 6
* Map fixes 7
* Map fixes 8
* Fixes non-existent object
It's amazing this game runs at all
* Map fixes 9
* update pools
* Map fixes 10
* forgot to clear my multitool
I love mapping I love mapping I love mapping I love mapping I love mapping
* Tweaked player counts
---------
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
* Automatic changelog update
* Fix inconsistent borg flashlight state (#33027)
* Fix borg light being stuck on if no cell is inserted
* Fix HandheldLightComponent.Activted becoming out of sync with SharedPointLightComponent.Enabled
* Fix for entities which don't have a handheld light component
* FIX: Uranium, Cak, and BreadDog are not garbage! (#34192)
* FIX: Uranium, Cak, and BreadDog are not garbage!
* Fixed bread typo for spacegarbage change.
* Style: moved ediblebase
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Fix the HoS mantle metashield break (#33831)
Changes 'nukies' to 'syndicate agents' in the HoS mantle's description.
* fix for climbable pianos (#33690)
fix for climable pianos
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
* Automatic changelog update
* BorgChassis transfer their mind to a dropped BorgBrain fix (#34464)
Fix
* Staging: Add taped logo back for 10th anniversary (#34486)
* Update engine to v240.0.1 (#34497)
* mind roles
* partial ritual serialization fix
* Update CP14RoundEndSystem.cs
* delete worldEdge system
* Delete StencilOverlay.WorldEdge.cs
* Update CP14MagicEffectComponent.cs
* delete rituals system
* fix demiplane serialization
* mapdamage fix serialization
* common objectives fix
* remove failed personal goals endscreen
* fix special selling, fix serialization
* more fixes
* more fixes x2
* final bruh
* fix
---------
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Booblesnoot42 <108703193+Booblesnoot42@users.noreply.github.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: ~DreamlyJack~ <148849095+DreamlyJack@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: PopGamer46 <yt1popgamer@gmail.com>
Co-authored-by: crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
Co-authored-by: amatwiedle <amatwiedle@gmail.com>
Co-authored-by: justdie12 <125140938+justdie12@users.noreply.github.com>
Co-authored-by: Nox <nebulousnox38@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: ReeZer2 <63300653+ReeZer2@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Alpaccalypse <21291379+Alpaccalypse@users.noreply.github.com>
Co-authored-by: Spanky <scott@wearejacob.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Dylan Hunter Whittingham <45404433+DylanWhittingham@users.noreply.github.com>
Co-authored-by: dylanhunter <dylan2.whittingham@live.uwe.ac.uk>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Centronias <charlie.t.santos@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: SpaceRox1244 <138547931+SpaceRox1244@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Pancake <Pangogie@users.noreply.github.com>
Co-authored-by: Piras314 <p1r4s@proton.me>
Co-authored-by: flymo5678 <86871317+flymo5678@users.noreply.github.com>
Co-authored-by: c4llv07e <igor@c4llv07e.xyz>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Coolsurf6 <coolsurf24@yahoo.com.au>
Co-authored-by: TeenSarlacc <46608342+TeenSarlacc@users.noreply.github.com>
Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
Co-authored-by: SpaceManiac <tad@platymuus.com>
Co-authored-by: War Pigeon <54217755+minus1over12@users.noreply.github.com>
Co-authored-by: Zachary Higgs <compgeek223@gmail.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Floxington <florian.decker@mailbox.org>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: SlimSlam <73899110+Stewie523@users.noreply.github.com>
Co-authored-by: frobnic8 <erskin@eldritch.org>
Co-authored-by: Erskin Cherry <frobnic8@gmail.com>
Co-authored-by: hyperDelegate <zachary1064@gmail.com>
Co-authored-by: JustinWinningham <justinmwinningham@gmail.com>
Co-authored-by: zHonys <69396539+zHonys@users.noreply.github.com>
Co-authored-by: Dorragon <101672978+Dorragon@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: Palladinium <patrick.chieppe@hotmail.com>
Co-authored-by: Alpha-Two <92269094+Alpha-Two@users.noreply.github.com>
Co-authored-by: Hyper B <137433177+HyperB1@users.noreply.github.com>
Co-authored-by: kosticia <kosticia46@gmail.com>
Co-authored-by: compilatron <40789662+jbox144@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Patrik Caes-Sayrs <heartofgoldfish@gmail.com>
Co-authored-by: ApolloVector <149586366+ApolloVector@users.noreply.github.com>
Co-authored-by: Gansu <68031780+GansuLalan@users.noreply.github.com>
Co-authored-by: aa5g21 <aa5g21@soton.ac.uk>
2025-01-21 23:57:12 +03:00
|
|
|
public Task<bool> UpsertIPIntelCache(DateTime time, IPAddress ip, float score)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.UpsertIPIntelCache(time, ip, score));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<IPIntelCache?> GetIPIntelCache(IPAddress ip)
|
|
|
|
|
{
|
|
|
|
|
return RunDbCommand(() => _db.GetIPIntelCache(ip));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<bool> CleanIPIntelCache(TimeSpan range)
|
|
|
|
|
{
|
|
|
|
|
DbWriteOpsMetric.Inc();
|
|
|
|
|
return RunDbCommand(() => _db.CleanIPIntelCache(range));
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-20 23:31:33 +02:00
|
|
|
public void SubscribeToNotifications(Action<DatabaseNotification> handler)
|
|
|
|
|
{
|
|
|
|
|
lock (_notificationHandlers)
|
|
|
|
|
{
|
|
|
|
|
_notificationHandlers.Add(handler);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void InjectTestNotification(DatabaseNotification notification)
|
|
|
|
|
{
|
|
|
|
|
HandleDatabaseNotification(notification);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void HandleDatabaseNotification(DatabaseNotification notification)
|
|
|
|
|
{
|
|
|
|
|
lock (_notificationHandlers)
|
|
|
|
|
{
|
|
|
|
|
foreach (var handler in _notificationHandlers)
|
|
|
|
|
{
|
|
|
|
|
handler(notification);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
// Wrapper functions to run DB commands from the thread pool.
|
|
|
|
|
// This will avoid SynchronizationContext capturing and avoid running CPU work on the main thread.
|
|
|
|
|
// For SQLite, this will also enable read parallelization (within limits).
|
|
|
|
|
//
|
|
|
|
|
// If we're configured to be synchronous (for integration tests) we shouldn't thread pool it,
|
|
|
|
|
// as that would make things very random and undeterministic.
|
|
|
|
|
// That only works on SQLite though, since SQLite is internally synchronous anyways.
|
|
|
|
|
|
2023-12-10 16:30:12 +01:00
|
|
|
private async Task<T> RunDbCommand<T>(Func<Task<T>> command)
|
2023-05-02 02:36:39 +02:00
|
|
|
{
|
2023-12-10 16:30:12 +01:00
|
|
|
using var _ = DbActiveOps.TrackInProgress();
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
if (_synchronous)
|
2023-12-10 16:30:12 +01:00
|
|
|
return await RunDbCommandCoreSync(command);
|
2023-05-02 02:36:39 +02:00
|
|
|
|
2023-12-10 16:30:12 +01:00
|
|
|
return await Task.Run(command);
|
2023-05-02 02:36:39 +02:00
|
|
|
}
|
|
|
|
|
|
2023-12-10 16:30:12 +01:00
|
|
|
private async Task RunDbCommand(Func<Task> command)
|
2023-05-02 02:36:39 +02:00
|
|
|
{
|
2023-12-10 16:30:12 +01:00
|
|
|
using var _ = DbActiveOps.TrackInProgress();
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
if (_synchronous)
|
2023-12-10 16:30:12 +01:00
|
|
|
{
|
|
|
|
|
await RunDbCommandCoreSync(command);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-05-02 02:36:39 +02:00
|
|
|
|
2023-12-10 16:30:12 +01:00
|
|
|
await Task.Run(command);
|
2022-04-16 20:57:50 +02:00
|
|
|
}
|
|
|
|
|
|
2023-07-25 03:10:50 +02:00
|
|
|
private static T RunDbCommandCoreSync<T>(Func<T> command) where T : IAsyncResult
|
|
|
|
|
{
|
|
|
|
|
var task = command();
|
|
|
|
|
if (!task.IsCompleted)
|
|
|
|
|
{
|
|
|
|
|
// We can't just do BlockWaitOnTask here, because that could cause deadlocks.
|
|
|
|
|
// This flag is only intended for integration tests. If we trip this, it's a bug.
|
|
|
|
|
throw new InvalidOperationException(
|
|
|
|
|
"Database task is running asynchronously. " +
|
|
|
|
|
"This should be impossible when the database is set to synchronous.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return task;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IAsyncEnumerable<T> RunDbCommand<T>(Func<IAsyncEnumerable<T>> command)
|
|
|
|
|
{
|
|
|
|
|
var enumerable = command();
|
2023-07-26 02:03:41 +02:00
|
|
|
if (_synchronous)
|
|
|
|
|
return new SyncAsyncEnumerable<T>(enumerable);
|
2023-07-25 03:10:50 +02:00
|
|
|
|
2023-07-26 02:03:41 +02:00
|
|
|
return enumerable;
|
2023-07-25 03:10:50 +02:00
|
|
|
}
|
|
|
|
|
|
2024-08-20 23:31:33 +02:00
|
|
|
private (DbContextOptions<PostgresServerDbContext> options, string connectionString) CreatePostgresOptions()
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
|
|
|
|
var host = _cfg.GetCVar(CCVars.DatabasePgHost);
|
|
|
|
|
var port = _cfg.GetCVar(CCVars.DatabasePgPort);
|
|
|
|
|
var db = _cfg.GetCVar(CCVars.DatabasePgDatabase);
|
|
|
|
|
var user = _cfg.GetCVar(CCVars.DatabasePgUsername);
|
|
|
|
|
var pass = _cfg.GetCVar(CCVars.DatabasePgPassword);
|
|
|
|
|
|
2022-02-03 03:13:34 +01:00
|
|
|
var builder = new DbContextOptionsBuilder<PostgresServerDbContext>();
|
2020-09-29 14:26:00 +02:00
|
|
|
var connectionString = new NpgsqlConnectionStringBuilder
|
|
|
|
|
{
|
|
|
|
|
Host = host,
|
|
|
|
|
Port = port,
|
|
|
|
|
Database = db,
|
|
|
|
|
Username = user,
|
|
|
|
|
Password = pass
|
|
|
|
|
}.ConnectionString;
|
2021-10-31 21:18:01 +07:00
|
|
|
|
|
|
|
|
Logger.DebugS("db.manager", $"Using Postgres \"{host}:{port}/{db}\"");
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
builder.UseNpgsql(connectionString);
|
|
|
|
|
SetupLogging(builder);
|
2024-08-20 23:31:33 +02:00
|
|
|
return (builder.Options, connectionString);
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
private void SetupSqlite(out Func<DbContextOptions<SqliteServerDbContext>> contextFunc, out bool inMemory)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
2022-10-07 22:41:16 -07:00
|
|
|
#if USE_SYSTEM_SQLITE
|
|
|
|
|
SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3());
|
|
|
|
|
#endif
|
2023-05-02 02:36:39 +02:00
|
|
|
|
|
|
|
|
// Can't re-use the SqliteConnection across multiple threads, so we have to make it every time.
|
|
|
|
|
|
|
|
|
|
Func<SqliteConnection> getConnection;
|
|
|
|
|
|
|
|
|
|
var configPreferencesDbPath = _cfg.GetCVar(CCVars.DatabaseSqliteDbPath);
|
|
|
|
|
inMemory = _res.UserData.RootDir == null;
|
|
|
|
|
|
2020-09-29 14:26:00 +02:00
|
|
|
if (!inMemory)
|
|
|
|
|
{
|
|
|
|
|
var finalPreferencesDbPath = Path.Combine(_res.UserData.RootDir!, configPreferencesDbPath);
|
2021-10-31 21:18:01 +07:00
|
|
|
Logger.DebugS("db.manager", $"Using SQLite DB \"{finalPreferencesDbPath}\"");
|
2023-05-02 02:36:39 +02:00
|
|
|
getConnection = () => new SqliteConnection($"Data Source={finalPreferencesDbPath}");
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2023-05-02 02:36:39 +02:00
|
|
|
Logger.DebugS("db.manager", "Using in-memory SQLite DB");
|
|
|
|
|
_sqliteInMemoryConnection = new SqliteConnection("Data Source=:memory:");
|
2020-09-29 14:26:00 +02:00
|
|
|
// When using an in-memory DB we have to open it manually
|
2023-05-02 02:36:39 +02:00
|
|
|
// so EFCore doesn't open, close and wipe it every operation.
|
|
|
|
|
_sqliteInMemoryConnection.Open();
|
|
|
|
|
getConnection = () => _sqliteInMemoryConnection;
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2023-05-02 02:36:39 +02:00
|
|
|
contextFunc = () =>
|
|
|
|
|
{
|
|
|
|
|
var builder = new DbContextOptionsBuilder<SqliteServerDbContext>();
|
|
|
|
|
builder.UseSqlite(getConnection());
|
|
|
|
|
SetupLogging(builder);
|
|
|
|
|
return builder.Options;
|
|
|
|
|
};
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
|
2022-02-03 03:13:34 +01:00
|
|
|
private void SetupLogging(DbContextOptionsBuilder builder)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
|
|
|
|
builder.UseLoggerFactory(_msLoggerFactory);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private sealed class LoggingProvider : ILoggerProvider
|
|
|
|
|
{
|
|
|
|
|
private readonly ILogManager _logManager;
|
|
|
|
|
|
|
|
|
|
public LoggingProvider(ILogManager logManager)
|
|
|
|
|
{
|
|
|
|
|
_logManager = logManager;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ILogger CreateLogger(string categoryName)
|
|
|
|
|
{
|
|
|
|
|
return new MSLogger(_logManager.GetSawmill("db.ef"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private sealed class MSLogger : ILogger
|
|
|
|
|
{
|
|
|
|
|
private readonly ISawmill _sawmill;
|
|
|
|
|
|
|
|
|
|
public MSLogger(ISawmill sawmill)
|
|
|
|
|
{
|
|
|
|
|
_sawmill = sawmill;
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-09 15:05:07 +01:00
|
|
|
public void Log<TState>(MSLogLevel logLevel, EventId eventId, TState state, Exception? exception,
|
|
|
|
|
Func<TState, Exception?, string> formatter)
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
|
|
|
|
var lvl = logLevel switch
|
|
|
|
|
{
|
|
|
|
|
MSLogLevel.Trace => LogLevel.Debug,
|
|
|
|
|
MSLogLevel.Debug => LogLevel.Debug,
|
|
|
|
|
// EFCore feels the need to log individual DB commands as "Information" so I'm slapping debug on it.
|
|
|
|
|
MSLogLevel.Information => LogLevel.Debug,
|
|
|
|
|
MSLogLevel.Warning => LogLevel.Warning,
|
|
|
|
|
MSLogLevel.Error => LogLevel.Error,
|
|
|
|
|
MSLogLevel.Critical => LogLevel.Fatal,
|
|
|
|
|
MSLogLevel.None => LogLevel.Debug,
|
|
|
|
|
_ => LogLevel.Debug
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
_sawmill.Log(lvl, formatter(state, exception));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool IsEnabled(MSLogLevel logLevel)
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 02:24:55 +02:00
|
|
|
public IDisposable? BeginScope<TState>(TState state) where TState : notnull
|
2020-09-29 14:26:00 +02:00
|
|
|
{
|
|
|
|
|
// TODO: this
|
2023-04-03 02:24:55 +02:00
|
|
|
return null;
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-08-07 08:00:42 +02:00
|
|
|
|
|
|
|
|
public sealed record PlayTimeUpdate(NetUserId User, string Tracker, TimeSpan Time);
|
2023-07-25 03:10:50 +02:00
|
|
|
|
2023-07-26 02:03:41 +02:00
|
|
|
internal sealed class SyncAsyncEnumerable<T> : IAsyncEnumerable<T>
|
2023-07-25 03:10:50 +02:00
|
|
|
{
|
2023-07-26 02:03:41 +02:00
|
|
|
private readonly IAsyncEnumerable<T> _enumerable;
|
2023-07-25 03:10:50 +02:00
|
|
|
|
2023-07-26 02:03:41 +02:00
|
|
|
public SyncAsyncEnumerable(IAsyncEnumerable<T> enumerable)
|
2023-07-25 03:10:50 +02:00
|
|
|
{
|
|
|
|
|
_enumerable = enumerable;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IAsyncEnumerator<T> GetAsyncEnumerator(CancellationToken cancellationToken = default)
|
|
|
|
|
{
|
2023-07-26 02:03:41 +02:00
|
|
|
return new Enumerator(_enumerable.GetAsyncEnumerator(cancellationToken));
|
2023-07-25 03:10:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private sealed class Enumerator : IAsyncEnumerator<T>
|
|
|
|
|
{
|
2023-07-26 02:03:41 +02:00
|
|
|
private readonly IAsyncEnumerator<T> _enumerator;
|
2023-07-25 03:10:50 +02:00
|
|
|
|
2023-07-26 02:03:41 +02:00
|
|
|
public Enumerator(IAsyncEnumerator<T> enumerator)
|
2023-07-25 03:10:50 +02:00
|
|
|
{
|
|
|
|
|
_enumerator = enumerator;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ValueTask DisposeAsync()
|
|
|
|
|
{
|
2023-07-26 02:03:41 +02:00
|
|
|
var task = _enumerator.DisposeAsync();
|
|
|
|
|
if (!task.IsCompleted)
|
|
|
|
|
throw new InvalidOperationException("DisposeAsync did not complete synchronously.");
|
|
|
|
|
|
|
|
|
|
return task;
|
2023-07-25 03:10:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ValueTask<bool> MoveNextAsync()
|
|
|
|
|
{
|
2023-07-26 02:03:41 +02:00
|
|
|
var task = _enumerator.MoveNextAsync();
|
|
|
|
|
if (!task.IsCompleted)
|
|
|
|
|
throw new InvalidOperationException("MoveNextAsync did not complete synchronously.");
|
|
|
|
|
|
|
|
|
|
return task;
|
2023-07-25 03:10:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public T Current => _enumerator.Current;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-09-29 14:26:00 +02:00
|
|
|
}
|