Commit graph

85 commits

Author SHA1 Message Date
Dmitry
73ffef2ac0 merge remote wizden/master 2026-09-17 23:33:06 +07:00
Whatstone
a023e5784c
Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Dmitry
892b111839 idk mb it fix tts t2 2026-07-03 01:32:56 +07:00
Dmitry
cdefb5d363 migration update CorvaxTTS 2026-07-02 23:19:56 +07:00
Dmitry
f8bc2e5786 merge remote wizden/master 2026-07-02 09:39:38 +07:00
Falcon
9805fe3956
Refactor voice to separate it from sex (#40593)
* feat: separate sex from voice

* wip: tried to make it use voice collection directly

* fix: yaml

* fix: migrations

* fix: ensure valid now validates correctly

* fix: unisex mobs wouldn't have voice

* chore: fix RT version

* refactor: clean up code into subfunctions

* refactor: swap name and protoId in voice

also rename sounds to voice

* chore: add comment

* fix: fallback sounds for non-humanoid characters

* fix: tests

* fix: tests

* refactor: change requests

* refactor: convert sheepers

* refactor: move Voice to SpeciesPrototype

* chore: add tests

* fix: test IoC error

* refactor: use null coalesing in ConvertProfiles

* refactor: move vocal sex association to speciesPrototype

* style: remove space from new()

* refactor: use name from emoteSoundsPrototype for UI

* refactor: no more null Voice on profile

* refactor: make DefaultVoice a static readonly property

* fix: add default voice to HumanoidProfileComponent

* chore: remove repeated vocal component from species yaml

It's inherited from BaseSpeciesMob

* style: correct comments for refactor

* fix: add missing locale for FemaleVulpkanin

* refactor: simplify logic based off surounding code

* test: add test to make sure that sexes are properly enumerated for the voices

* fix: add back urist sounds

* style: clarify comments again

* style: last thing im changing before I sleep

* refactor: battling programming semantics

* refactor: Name on EmoteSoundsPrototype.cs to VoiceSelectorName for clarity

* revert: isDirty change

* Fix HumanoidProfileTest.EnsureValidLoading.
    The profile's voice wasnt being updated, thus the voiceChanged event was never raised and that meant that the voice component had old EmoteSounds

* oops

* refactor: do the easy change requests

* refactor: use an array for indexing sex conversion for performance

* fix master

* mistakes were made

* chore: redo migrations

---------

Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
2026-06-30 23:46:27 -04:00
Dmitry
f29b823c79 merge remote wizden/master 2026-06-29 15:09:19 +07:00
Pieter-Jan Briers
9da1cff855
Log custom votes to database. (#42650)
* Log custom votes to database.

* Add navigation property from round entity
2026-06-11 21:46:18 +00:00
Dmitry
d7704cb9cb merge remote wizden/master 2026-01-24 00:55:41 +07:00
Pieter-Jan Briers
29b7fc4463
Stable to master (#42599)
Ban database refactor (#42495)

* Ban DB refactor seems to work at a basic level for PostgreSQL

* New ban creation API

Supports all the new functionality (multiple players/addresses/hwids/roles/rounds per ban).

* Make the migration irreversible

* Re-implement ban notifications

The server ID check is no longer done as admins may want to place bans spanning multiple rounds irrelevant of the source server.

* Fix some split query warnings

* Implement migration on SQLite

* More comments

* Remove required from ban reason

SS14.Admin changes would like this

* More missing AsSplitQuery() calls

* Fix missing ban type filter

* Fix old CreateServerBan API with permanent time

* Fix department and role ban commands with permanent time

* Re-add banhits navigation property

Dropped this on accident, SS14.Admin needs it.

* More ban API fixes.

* Don't fetch ban exemption info for role bans

Not relevant, reduces query performance

* Regenerate migrations

* Fix adminnotes command for players that never connected

Would blow up handling null player records. Not a new bug introduced by the refactor, but I ran into it.

* Great shame... I accidentally committed submodule update...

* Update GDPR scripts

* Fix sandbox violation

* Fix bans with duplicate info causing DB exceptions

Most notably happened with role bans, as multiple departments may include the same role.
2026-01-23 15:34:23 +01:00
Dmitry
17ca2dfc3e merge remote wizden/master 2026-01-22 01:52:20 +07:00
pathetic meowmeow
8cf744ec55
Visual nubody (humanoid appearance refactor) (#42476)
* initial visual nubody

* oops overlay

* im so pheeming rn

* conversion...

* tests

* comeback of the underwear

* oops eyes

* blabbl

* zeds

* yaml linted

* search and visible count constraints

* reordering

* preserve previously selected markings colors

* fix test

* some ui niceties

* ordering

* make DB changes backwards-compatible/downgrade-friendly

* fix things again

* fix migration

* vulpkanin markings limit increase

* wrapping

* code cleanup and more code cleanup and more code cleanup and more code cleanup and

* fix slop ports

* better sampling API

* make filter work + use the method i made for its intended purpose

* fix test fails real quick

* magic mirror cleanup, remove TODO

* don't 0-init the organ profile data

* remove deltastates

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-20 07:07:53 +00:00
Vasilis The Pikachu
5100068a78
Revert "Admin Log Browser Improvements (#39130)"
This reverts commit f67cebf7a4.

Per request of @Kowlin and @southbridge-fur

Check out https://github.com/space-wizards/space-station-14/issues/39960 for further information
2025-08-31 17:50:37 +02:00
Southbridge
f67cebf7a4
Admin Log Browser Improvements (#39130) 2025-08-21 22:12:16 +02:00
Dmitry
a6ecbc3410 Merge remote-tracking branch 'upstream/master' 2025-05-24 22:35:13 +07:00
YotaXP
e404e45ffc
Persist construction menu favorites server-side (#35867)
* Persist construction menu favorites to player profile

* Use `ProtoId`s for construction favorites

* Validate construction favorites updates from the client

* Actually await the async database call
2025-05-17 13:37:19 -04:00
lzk228
0af3e04fd8 Merge commit '3551eb04115854cdbbf1841f5960c3cdbc508583' into 02-19-upstream
# Conflicts:
#	Content.Server/Administration/Systems/AdminSystem.cs
#	Content.Server/Doors/Systems/AirlockSystem.cs
#	Content.Server/Holopad/HolopadSystem.cs
#	Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs
#	Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
#	Resources/Prototypes/Catalog/VendingMachines/Inventories/curadrobe.yml
#	Resources/Prototypes/Datasets/Names/borg.yml
#	Resources/Prototypes/Datasets/ion_storm.yml
#	Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
#	Resources/Prototypes/Entities/Clothing/Neck/mantles.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
#	Resources/Prototypes/Entities/Stations/base.yml
#	Resources/Prototypes/Entities/Structures/Machines/lathe.yml
#	Resources/Prototypes/Maps/amber.yml
#	Resources/Prototypes/Maps/box.yml
#	Resources/Prototypes/Maps/convex.yml
#	Resources/Prototypes/Maps/fland.yml
#	Resources/Prototypes/Maps/meta.yml
#	Resources/Prototypes/Maps/plasma.yml
#	Resources/ServerInfo/Guidebook/Engineering/AME.xml
#	Resources/ServerInfo/Guidebook/Engineering/AirlockSecurity.xml
#	Resources/ServerInfo/Guidebook/Engineering/Atmospherics.xml
#	Resources/ServerInfo/Guidebook/Engineering/Construction.xml
#	Resources/ServerInfo/Guidebook/Engineering/Engineering.xml
#	Resources/ServerInfo/Guidebook/Engineering/Fires.xml
#	Resources/ServerInfo/Guidebook/Engineering/NetworkConfigurator.xml
#	Resources/ServerInfo/Guidebook/Engineering/Networking.xml
#	Resources/ServerInfo/Guidebook/Engineering/PortableGenerator.xml
#	Resources/ServerInfo/Guidebook/Engineering/Power.xml
#	Resources/ServerInfo/Guidebook/Engineering/RTG.xml
#	Resources/ServerInfo/Guidebook/Engineering/Shuttlecraft.xml
#	Resources/ServerInfo/Guidebook/Engineering/Singularity.xml
#	Resources/ServerInfo/Guidebook/Engineering/TEG.xml
#	Resources/ServerInfo/Guidebook/NewPlayer/Controls/Controls.xml
#	Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/icon.png
#	Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/inhand-left.png
#	Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/goliath.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Vests/hazard.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/ancient.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/inhand-right.png
#	Resources/Textures/Interface/Actions/actions_fakemindshield.rsi/icon-on.png
#	Resources/Textures/Objects/Storage/Briefcases/briefcase_brown.rsi/icon.png
#	Resources/Textures/Objects/Storage/Briefcases/briefcase_brown.rsi/meta.json
#	Resources/Textures/Objects/Storage/boxes.rsi/beaker.png
#	Resources/Textures/Objects/Storage/boxes.rsi/bodybags.png
#	Resources/Textures/Objects/Storage/boxes.rsi/bottle.png
#	Resources/Textures/Objects/Storage/boxes.rsi/box.png
#	Resources/Textures/Objects/Storage/boxes.rsi/box_hug.png
#	Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom.png
#	Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom_big.png
#	Resources/Textures/Objects/Storage/boxes.rsi/box_science.png
#	Resources/Textures/Objects/Storage/boxes.rsi/box_security.png
#	Resources/Textures/Objects/Storage/boxes.rsi/boxwide.png
#	Resources/Textures/Objects/Storage/boxes.rsi/boxwidetoy.png
#	Resources/Textures/Objects/Storage/boxes.rsi/candle.png
#	Resources/Textures/Objects/Storage/boxes.rsi/circuit.png
#	Resources/Textures/Objects/Storage/boxes.rsi/clown.png
#	Resources/Textures/Objects/Storage/boxes.rsi/darts.png
#	Resources/Textures/Objects/Storage/boxes.rsi/disk.png
#	Resources/Textures/Objects/Storage/boxes.rsi/emergencytank.png
#	Resources/Textures/Objects/Storage/boxes.rsi/encryptokey.png
#	Resources/Textures/Objects/Storage/boxes.rsi/evidence_markers.png
#	Resources/Textures/Objects/Storage/boxes.rsi/extendedtank.png
#	Resources/Textures/Objects/Storage/boxes.rsi/flare.png
#	Resources/Textures/Objects/Storage/boxes.rsi/flashbang.png
#	Resources/Textures/Objects/Storage/boxes.rsi/forensic.png
#	Resources/Textures/Objects/Storage/boxes.rsi/glasses.png
#	Resources/Textures/Objects/Storage/boxes.rsi/handcuff.png
#	Resources/Textures/Objects/Storage/boxes.rsi/headset.png
#	Resources/Textures/Objects/Storage/boxes.rsi/heart.png
#	Resources/Textures/Objects/Storage/boxes.rsi/holo.png
#	Resources/Textures/Objects/Storage/boxes.rsi/implant.png
#	Resources/Textures/Objects/Storage/boxes.rsi/inflatable.png
#	Resources/Textures/Objects/Storage/boxes.rsi/internals.png
#	Resources/Textures/Objects/Storage/boxes.rsi/latex.png
#	Resources/Textures/Objects/Storage/boxes.rsi/light.png
#	Resources/Textures/Objects/Storage/boxes.rsi/lightmixed.png
#	Resources/Textures/Objects/Storage/boxes.rsi/lighttube.png
#	Resources/Textures/Objects/Storage/boxes.rsi/magazine.png
#	Resources/Textures/Objects/Storage/boxes.rsi/meson.png
#	Resources/Textures/Objects/Storage/boxes.rsi/meta.json
#	Resources/Textures/Objects/Storage/boxes.rsi/mousetraps.png
#	Resources/Textures/Objects/Storage/boxes.rsi/nitrile.png
#	Resources/Textures/Objects/Storage/boxes.rsi/omegacart.png
#	Resources/Textures/Objects/Storage/boxes.rsi/pda.png
#	Resources/Textures/Objects/Storage/boxes.rsi/pillbox.png
#	Resources/Textures/Objects/Storage/boxes.rsi/sechud.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shellbeanbag.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shellflare.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shellflash.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shellincendiary.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shelllethal.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shellpractice.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shellslug.png
#	Resources/Textures/Objects/Storage/boxes.rsi/shelltoy.png
#	Resources/Textures/Objects/Storage/boxes.rsi/solution_trays.png
#	Resources/Textures/Objects/Storage/boxes.rsi/sterile.png
#	Resources/Textures/Objects/Storage/boxes.rsi/swab.png
#	Resources/Textures/Objects/Storage/boxes.rsi/syringe.png
#	Resources/Textures/Objects/Storage/boxes.rsi/trashbag.png
#	Resources/Textures/Objects/Storage/boxes.rsi/vials.png
#	Resources/Textures/Objects/Storage/boxes.rsi/writing.png
#	Resources/Textures/Objects/Storage/boxes.rsi/writing_of_doom.png
#	Resources/Textures/Objects/Storage/boxes.rsi/ziptie.png
#	Resources/Textures/Objects/Tiles/tile.rsi/meta.json
#	Resources/Textures/Objects/Weapons/Grenades/empgrenade.rsi/icon.png
#	Resources/Textures/Objects/Weapons/Grenades/empgrenade.rsi/meta.json
#	Resources/Textures/Objects/Weapons/Grenades/empgrenade.rsi/primed.png
#	Resources/Textures/Objects/Weapons/Grenades/flashbang.rsi/icon.png
#	Resources/Textures/Objects/Weapons/Grenades/flashbang.rsi/meta.json
#	Resources/Textures/Objects/Weapons/Grenades/flashbang.rsi/primed.png
#	Resources/Textures/Objects/Weapons/Grenades/stingergrenade.rsi/icon.png
#	Resources/Textures/Objects/Weapons/Grenades/stingergrenade.rsi/meta.json
#	Resources/Textures/Objects/Weapons/Grenades/stingergrenade.rsi/primed.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/base.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/icon.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-1.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-2.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-3.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/mag-unshaded-4.png
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json
#	Resources/Textures/Objects/Weapons/Guns/Rifles/lecter.rsi/equipped-BACKPACK.png
#	Resources/Textures/Objects/Weapons/Guns/SMGs/vector.rsi/equipped-BACKPACK.png
#	Resources/Textures/Objects/Weapons/Guns/Shotguns/pump.rsi/equipped-BACKPACK.png
2025-02-19 03:00:13 +01:00
metalgearsloth
15b28936df
Add loadout names (#31303)
* Add loadout names

Did it for AI, breaking change for pgsql + migrations in general. Nothing atm uses it.

* the box

* Spawning cherry pick

* Fix nit

* revert

* Final cleanup

* Real

* Name UI fix

* Migrations

* a

* Review

* Re-run migrations

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2025-02-11 18:30:24 +01:00
Morb0
996b761d80 Merge remote-tracking branch 'wizards/master' into upstream-sync
# Conflicts:
#	Content.Packaging/ClientPackaging.cs
#	Content.Server/Administration/Systems/AdminSystem.cs
#	Content.Server/GameTicking/GameTicker.StatusShell.cs
#	Content.Shared/Preferences/HumanoidCharacterProfile.cs
#	Resources/Prototypes/Entities/Stations/base.yml
#	Resources/Prototypes/Entities/Structures/Machines/lathe.yml
#	Resources/Textures/Interface/Misc/job_icons.rsi/meta.json
#	Resources/Textures/Structures/Power/Generation/Singularity/singularity_1.rsi/meta.json
#	Resources/Textures/Structures/Power/Generation/Singularity/singularity_2.rsi/meta.json
#	Resources/Textures/Structures/Power/Generation/Singularity/singularity_3.rsi/meta.json
#	Resources/Textures/Structures/Power/Generation/Singularity/singularity_4.rsi/meta.json
#	Resources/Textures/Structures/Power/Generation/Singularity/singularity_5.rsi/meta.json
#	Resources/Textures/Structures/Power/Generation/Singularity/singularity_6.rsi/meta.json
2025-01-16 13:37:26 +03:00
Pieter-Jan Briers
c2e050ced0
Persist deadmin to database, add admin suspension system (#34048) 2025-01-15 00:46:45 +01:00
Morb0
f8f0dcb59e Merge remote-tracking branch 'wizards/master' into upstream-sync
# Conflicts:
#	Content.Server/Connection/ConnectionManager.cs
2025-01-12 23:13:13 +03:00
Myra
96d913b147
Add IPIntel API support. (#33339)
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
2025-01-12 20:41:26 +01:00
Morb0
e76bb1fa57 Merge remote-tracking branch 'wizards/master' into upstream-sync
# Conflicts:
#	Resources/Prototypes/Datasets/Names/borer.yml
#	Resources/Prototypes/Datasets/Names/diona.yml
#	Resources/Textures/Structures/Wallmounts/posters.rsi/meta.json
#	Resources/Textures/Tiles/plating_burnt.png
2024-12-05 01:22:35 +03:00
Pieter-Jan Briers
4f3db43696
Integrate Modern HWID into content
This should be the primary changes for the future-proof "Modern HWID" system implemented into Robust and the auth server.

HWIDs in the database have been given an additional column representing their version, legacy or modern. This is implemented via an EF Core owned entity. By manually setting the column name of the main value column, we can keep DB compatibility and the migration is just adding some type columns.

This new HWID type has to be plumbed through everywhere, resulting in some breaking changes for the DB layer and such.

New bans and player records are placed with the new modern HWID. Old bans are still checked against legacy HWIDs.

Modern HWIDs are presented with a "V2-" prefix to admins, to allow distinguishing them. This is also integrated into the parsing logic for placing new bans.

There's also some code cleanup to reduce copy pasting around the place from my changes.

Requires latest engine to support ImmutableArray<byte> in NetSerializer.
2024-11-12 01:51:54 +01:00
Morb0
721f7bfecf Merge remote-tracking branch 'refs/remotes/wizards/master' into upstream-sync
# Conflicts:
#	Content.Server/Connection/ConnectionManager.cs
#	Resources/Prototypes/Datasets/Names/ai.yml
#	Resources/Prototypes/Datasets/adjectives.yml
#	Resources/Prototypes/Datasets/verbs.yml
#	Resources/Prototypes/Entities/Clothing/Shoes/specific.yml
#	Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml
#	Resources/Prototypes/Entities/Mobs/base.yml
#	Resources/Prototypes/Maps/bagel.yml
#	Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml
#	Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/equipped-HELMET.png
#	Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/icon.png
#	Resources/Textures/Clothing/Head/Helmets/light_riot.rsi/meta.json
#	Resources/Textures/Interface/Misc/job_icons.rsi/meta.json
#	Resources/Textures/Objects/Misc/bureaucracy.rsi/meta.json
#	Resources/Textures/Structures/Wallmounts/barsign.rsi/officerbeersky.png
#	Resources/Textures/Structures/Wallmounts/signs.rsi/anomaly.png
#	SpaceStation14.sln
2024-08-28 16:40:36 +03:00
Simon
f92ef41538
Automated whitelists (#23985)
* Beginnings of making the breadmemes jobs easier

* stuff

* stuff pt. 2

* Stuff pt.3

* Stuff I forgot last time

* Basic whitelist

Only people that are added to the whitelist with the addwhitelist command will be able to join. I call this the "legacy" whitelist

* Remove always deny condition in favor of just breaking if playtime check fails

* Change default whitelist

Default whitelist is now the "legacy" whitelist.

* localization

* Admin check

* minor spelling change

* Fix build

* Whitelist message

* Fix vars not being datafield and spelling mistakes

* Minor spelling mistake

* Change config for salamander

* Reviews and stuff

* Add summaries

* Fix whitelists

* Forgot to add a datafield

* Fixing stuff I guess

* Reuse admin remarks to reduce load when connecting.

* Update log messages to be verbose instead of debug

* Reviews

* whoops

* Explain a bit more how whitelist checking works

* Apply CE's review

* Append Membership to Blacklist and Whitelist conditions

* Fix review comments

* Uncapitalize playerConnectionWhitelist, add to ignored client prototypes

* Make note count field work

* Fix cvar for thingy

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2024-08-27 18:01:17 +02:00
Morb0
da333a1972 Merge remote-tracking branch 'refs/remotes/upstream/master' into master-syndie
# Conflicts:
#	.github/CODEOWNERS
#	Content.Client/Options/UI/Tabs/AudioTab.xaml
#	Content.Client/Options/UI/Tabs/AudioTab.xaml.cs
#	Content.Server/Connection/ConnectionManager.cs
#	Content.Shared/Preferences/Loadouts/RoleLoadout.cs
#	Resources/Prototypes/Loadouts/role_loadouts.yml
#	Resources/Prototypes/SoundCollections/NukeMusic.yml
#	Resources/Textures/Clothing/Belt/securitywebbing.rsi/equipped-BELT.png
#	Resources/Textures/Clothing/Belt/securitywebbing.rsi/icon.png
#	Resources/Textures/Clothing/Belt/securitywebbing.rsi/inhand-left.png
#	Resources/Textures/Clothing/Belt/securitywebbing.rsi/inhand-right.png
#	Resources/Textures/Clothing/Belt/securitywebbing.rsi/meta.json
#	Resources/Textures/Objects/Devices/nuke.rsi/nuclearbomb_gay.png
2024-06-27 13:40:52 +03:00
Pieter-Jan Briers
0c34eb6138
Ban template system (#29365)
To help out admins, so they can easily fill out datacenter bans and stuff. Supports ban exemption flags and everything.

This is for use with SS14.Admin so it's just DB models here.
2024-06-23 17:33:54 +02:00
Pieter-Jan Briers
f041f58a6d
Add time index to connection log (#29281)
* Add time index to connection log

Queries go nyoom.

* Don't let me code shit at 5 AM
2024-06-21 15:29:10 +02:00
AJCM-git
63e0ee08cb
Fixes client having authority over rules popup cvars (#28655)
* Fixes client having authority over rules popup cvars

* Delete duplicate migration

* Pre-update

* Post-update
2024-06-07 21:53:20 +02:00
Nemanja
1333b48747
Convert rules to use guidebook parsing (#28647) 2024-06-06 03:11:26 -04:00
Morb0
28edee0fe2 Merge remote-tracking branch 'refs/remotes/upstream/master' into upstream-sync
# Conflicts:
#	Content.Server/Administration/Commands/AdminWhoCommand.cs
#	Content.Server/Administration/Commands/PlayTimeCommands.cs
#	Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs
#	Content.Server/Preferences/Managers/ServerPreferencesManager.cs
#	Resources/Prototypes/Datasets/tips.yml
#	Resources/Prototypes/Entities/Mobs/Player/humanoid.yml
2024-06-01 23:06:19 +03:00
DrSmugleaf
19be94c9ea
Add job whitelist system (#28085)
* Add job whitelist system

* Address reviews

* Fix name

* Apply suggestions from code review

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* cancinium

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2024-06-01 05:08:31 -07:00
Arthur Asimov
0b621a7b7e Merge remote-tracking branch 'refs/remotes/wizards/master' into upstream-sync
# Conflicts:
#	Content.Client/Preferences/ClientPreferencesManager.cs
#	Content.Client/Preferences/UI/CharacterSetupGui.xaml.cs
#	Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs
#	Content.Server/Preferences/Managers/ServerPreferencesManager.cs
#	Content.Server/Station/Systems/StationSpawningSystem.cs
#	Content.Shared/Preferences/HumanoidCharacterProfile.cs
#	Content.Shared/Preferences/ICharacterProfile.cs
#	Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml
#	Resources/Prototypes/Roles/Jobs/Security/security_cadet.yml
#	Resources/Prototypes/Roles/Jobs/Security/security_officer.yml
#	Resources/Prototypes/Roles/Jobs/Security/warden.yml
#	Resources/Prototypes/Roles/Jobs/Wildcards/psychologist.yml
#	Resources/Textures/Clothing/Hands/Gloves/Color/blue.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/blue.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/brown.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/brown.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/brown.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/brown.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/color.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/gray.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/gray.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/gray.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/gray.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/green.rsi/equipped-HAND.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/green.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/green.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/lightbrown.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/lightbrown.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/lightbrown.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/lightbrown.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/orange.rsi/equipped-HAND.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/orange.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/orange.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/orange.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/orange.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/purple.rsi/equipped-HAND.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/purple.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/purple.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/purple.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/purple.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/red.rsi/equipped-HAND.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/red.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/red.rsi/inhand-left.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/red.rsi/inhand-right.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/red.rsi/meta.json
#	Resources/Textures/Clothing/Hands/Gloves/Color/white.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/Color/white.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/black.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/blue.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/brown.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/green.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/orange.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/purple.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/red.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/white.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Color/yellow.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/color.rsi/equipped-INNERCLOTHING-reptilian.png
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/color.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/black.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/blue.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/brown.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/darkblue.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/darkgreen.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/green.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/lightbrown.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/lightpurple.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/maroon.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/orange.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/pink.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/red.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/teal.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/white.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/Color/yellow.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/prisoner.rsi/meta.json
2024-04-17 11:57:44 +03:00
metalgearsloth
12766fe6e3
Loadouts redux (#25715)
* Loadouts redux

* Loadout window mockup

* More workout

* rent

* validation

* Developments

* bcs

* More cleanup

* Rebuild working

* Fix model and loading

* obsession

* efcore

* We got a stew goin

* Cleanup

* Optional + SeniorEngineering fix

* Fixes

* Update science.yml

* add

add

* Automatic naming

* Update nukeops

* Coming together

* Right now

* stargate

* rejig the UI

* weh

* Loadouts tweaks

* Merge conflicts + ordering fix

* yerba mate

* chocolat

* More updates

* Add multi-selection support

* test

h

* fikss

* a

* add tech assistant and hazard suit

* huh

* Latest changes

* add medical loadouts

* and science

* finish security loadouts

* cargo

* service done

* added wildcards

* add command

* Move restrictions

* Finalising

* Fix existing work

* Localise next batch

* clothing fix

* Fix storage names

* review

* the scooping room

* Test fixes

* Xamlify

* Xamlify this too

* Update Resources/Prototypes/Loadouts/Jobs/Medical/paramedic.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Civilian/clown.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Civilian/clown.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Security/detective.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* ben

* Margins

---------

Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: Mr. 27 <koolthunder019@gmail.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
2024-04-16 22:57:43 +10:00
Pieter-Jan Briers
d3ac3d06bb
Fix database round start date issues (#26838)
How can ONE DATABASE COLUMN have so many cursed issues I don't know, but it certainly pissed off the devil in its previous life.

The start_date column on round entities in the database was added by https://github.com/space-wizards/space-station-14/pull/21153. For some reason, this PR gave the column a nonsensical default value instead of making it nullable. This default value causes the code from #25280 to break. It actually trips an assert though that's not what the original issue report ran into.

This didn't get noticed on wizden servers because we at some point backfilled the start_date column based on the stored admin logs.

So I change the database model to make this column nullable, updated the C# code to match, and made the existing migration set the invalid values to be NULL instead. Cool.

Wait how's SQLite handle in this scenario anyways? Well actually turns out the column was *completely broken* in the first place!

The code for inserting into the round table was copy pasted between SQLite and PostgreSQL, with the only difference being that the SQLite key manually assigned the primary key instead of letting SQLite AUTOINCREMENT it. And then the code to give a start_date value was only added to the PostgreSQL version (which is actually in the base class already). So for SQLite that column's been filled up with the same invalid default the whole time.

Why was the code manually assigning a PK? I checked the SQLite docs for AUTOINCREMENT[1], and the behavior seems appropriate.

I removed the SQLite-specific code path and it just seems to work regardless. The migration just sets the old values to NULL too.

BUT WAIT, THERE'S MORE!

Turns out just doing the migration on SQLite is a pain in the ass! EF Core has to create a new table to apply the nullability change, because SQLite doesn't support proper ALTER COLUMN. This causes the generated SQL commands to be weird and the UPDATE for the migration goes BEFORE the nullability change... I ended up having to make TWO migrations for SQLite. Yay.

Fixes #26800

[1]: https://www.sqlite.org/autoinc.html
2024-04-14 07:39:43 +02:00
Morb0
6fc8c1cd54 Merge remote-tracking branch 'upstream/master' into master-syndicate
# Conflicts:
#	Content.Packaging/ServerPackaging.cs
#	Resources/Prototypes/Accents/word_replacements.yml
#	Resources/Prototypes/Entities/Clothing/Neck/mantles.yml
#	Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml
#	Resources/Prototypes/Maps/marathon.yml
#	Resources/Prototypes/Maps/packed.yml
#	Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml
#	Resources/Prototypes/Roles/Jobs/Security/detective.yml
#	Resources/Textures/Clothing/Head/Hardsuits/cybersun.rsi/meta.json
#	Resources/Textures/Clothing/Head/Hardsuits/spatiohelm.rsi/meta.json
#	Resources/Textures/Clothing/Head/Hardsuits/syndiecommander.rsi/meta.json
#	Resources/Textures/Clothing/Head/Hardsuits/syndieelite.rsi/meta.json
#	Resources/Textures/Clothing/Head/Helmets/atmos_firehelmet.rsi/meta.json
#	Resources/Textures/Clothing/Head/Helmets/paramedhelm.rsi/meta.json
#	Resources/Textures/Clothing/Mask/plaguedoctormask.rsi/meta.json
#	Resources/Textures/Clothing/Neck/Cloaks/capcloakformal.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/capmantle.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/cemantle.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/cmomantle.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/hopmantle.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/hosmantle.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/rdmantle.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Armor/lingarmor.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/icon-open.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/inhand-left.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/open-equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/open-inhand-left.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat.rsi/open-inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/icon-open.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/inhand-left.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/open-equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/open-inhand-left.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_chem.rsi/open-inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/icon-open.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/inhand-left.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_cmo.rsi/open-equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_gene.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_robo.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_robo.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_robo.rsi/inhand-left.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_robo.rsi/inhand-right.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_robo.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_sci.rsi/equipped-OUTERCLOTHING-reptilian.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_sci.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_sci.rsi/open-equipped-OUTERCLOTHING-reptilian.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Coats/labcoat_viro.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Coats/rndcoat.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coat.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatatmos.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcargo.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatce.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcentcom.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatchem.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcmo.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatengi.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatgen.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coathop.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coathos.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coathydro.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatjani.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmed.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatmime.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatminer.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatparamed.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatqm.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatrd.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatrobo.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsci.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatsec.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatviro.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Boots/combatboots.rsi/meta.json
#	Resources/Textures/Clothing/Shoes/Specific/bling.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/atmosf.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/capformaldress.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/operative_s.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/atmos.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/capformal.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/centcom_officer.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/centcomformal.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/hosformal.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/journalist.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/operative.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/psychologist.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/reporter.rsi/meta.json
#	Resources/Textures/Mobs/Animals/regalrat.rsi/meta.json
#	Resources/Textures/Objects/Storage/boxes.rsi/meta.json
#	Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json
#	Resources/Textures/Structures/Doors/Airlocks/Glass/atmospherics.rsi/meta.json
#	Resources/Textures/Structures/Doors/Airlocks/Standard/atmospherics.rsi/meta.json
#	Resources/Textures/Structures/Doors/Airlocks/highsec/highsec.rsi/meta.json
#	Resources/Textures/Structures/Furniture/chairs.rsi/meta.json
#	Resources/Textures/Structures/Holo/holofan.rsi/meta.json
#	Resources/Textures/Structures/Holo/wetfloor.rsi/meta.json
2024-03-27 01:12:55 +03:00
Pieter-Jan Briers
d776c4b392
Improve admin message seen/dismiss state. (#26223)
Fixes #26211

Admin messages now have separate "seen" and "dismissed" fields. The idea is that an admin should be able to tell whether a user pressed the "dismiss for now" button. Instead of using "seen" as "show this message to players when they join", "dismissed" is now used for this.

Existing notes in the database will automatically be marked as dismissed on migration. A note cannot be dismissed without being seen (enforced via constraint in the database too, aren't I fancy).

As part of this, it has become impossible for a player to play without dismissing the message in some form. Instead of a shitty popup window, the popup is now a fullscreen overlay that blocks clicks behind it, making the game unplayable. Also, if a user somehow has multiple messages they will be combined into one popup.

Also I had enough respect for the codebase to make it look better and clean up the code somewhat. Yippee.
2024-03-21 16:15:46 +01:00
Morb0
32a8d1a21e Merge remote-tracking branch 'upstream/master' into upstream-sync
# Conflicts:
#	Content.Client/Preferences/UI/HumanoidProfileEditor.xaml
#	Content.Server/Power/Generator/GeneratorSystem.cs
#	Content.Shared/Preferences/HumanoidCharacterProfile.cs
#	Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
#	Resources/Prototypes/Entities/Objects/Misc/paper.yml
#	Resources/Prototypes/Voice/speech_emotes.yml
#	Resources/Textures/Effects/speech.rsi/meta.json
#	Resources/Textures/Structures/Doors/Airlocks/Glass/centcomm.rsi/assembly.png
#	Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/assembly.png
#	Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/assembly.png
#	Resources/Textures/Structures/Doors/Airlocks/Glass/syndicate.rsi/assembly.png
#	Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/assembly.png
#	Resources/Textures/Structures/Doors/Airlocks/Standard/syndicate.rsi/assembly.png
2024-02-03 03:38:29 +03:00
Krunklehorn
ed0f2aa221
Client customization late-join spawner priority for arrivals/cryostorage (#24586)
* Initial commit, requires server restart to take effect

* Exposes callbacks directly instead, takes effect immediately

* Cleaned up control flow, swapped cvar for client customization

* Switched to int, dictionary of callbacks, migration

* Update Content.Shared/Preferences/SpawnPriorityPreference.cs

* krunkle stan

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-02-01 21:12:09 +11:00
Morb0
37dc87ad6f Merge remote-tracking branch 'upstream/master' into upstream-sync
# Conflicts:
#	Content.Client/MassMedia/Ui/NewsWriteBoundUserInterface.cs
#	Content.Server/Connection/ConnectionManager.cs
#	Content.Server/MassMedia/Systems/NewsSystem.cs
#	Resources/Prototypes/Catalog/Cargo/cargo_vending.yml
#	Resources/Prototypes/Datasets/tips.yml
#	Resources/Prototypes/Entities/Stations/base.yml
#	Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
#	Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/equipped-HELMET.png
#	Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/icon.png
#	Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/qm.rsi/equipped-INNERCLOTHING.png
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/qm.rsi/icon.png
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/qm.rsi/equipped-INNERCLOTHING.png
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/qm.rsi/icon.png
#	Resources/Textures/Objects/Misc/stock_parts.rsi/capacitor.png
#	Resources/Textures/Objects/Misc/stock_parts.rsi/matter_bin.png
#	Resources/Textures/Objects/Misc/stock_parts.rsi/meta.json
#	Resources/Textures/Objects/Misc/stock_parts.rsi/micro_mani.png
#	Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/open.png
#	Resources/Textures/Structures/Wallmounts/posters.rsi/poster29_legit.png
#	SpaceStation14.sln
#	Tools/actions_changelogs_since_last_run.py
#	Tools/package_client_build.py
#	Tools/package_server_build.py
2024-01-15 01:56:14 +03:00
Pieter-Jan Briers
a39999fb9c
Fix admin log key order. (#23052)
The keys for admin logs were set as (log_id, round_id). This made no sense because logs are usually accessed per round.
2024-01-11 01:03:25 +01:00
Morb0
caf8ac8005 Merge remote-tracking branch 'upstream/master' into upstream-sync
# Conflicts:
#	Content.Server/Connection/ConnectionManager.cs
#	Resources/Prototypes/Entities/Clothing/Shoes/boots.yml
#	Resources/Textures/Objects/Tools/crowbar.rsi/meta.json
#	Resources/Textures/Objects/Tools/wrench.rsi/meta.json
2023-12-08 13:54:31 +03:00
Pieter-Jan Briers
b4f8393f42
Log server ID in connection logs table (#21911) 2023-12-07 09:48:56 +11:00
Morb0
681762aca7 Merge remote-tracking branch 'upstream/master' into upstream-sync
# Conflicts:
#	Content.Server/GameTicking/GameTicker.Player.cs
#	Content.Server/GameTicking/GameTicker.RoundFlow.cs
#	Content.Server/Preferences/Managers/ServerPreferencesManager.cs
#	Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs
#	Resources/Prototypes/Objectives/objectiveGroups.yml
2023-10-28 14:14:36 +03:00
DrSmugleaf
0e0ac5fcc5
Drop admin log entity db table (#21216) 2023-10-23 22:08:20 -07:00
DrSmugleaf
43d5c00648
Store round start date in the database (#21153) 2023-10-22 21:01:48 -07:00
Morb0
0cffa43345 Merge remote-tracking branch 'upstream/master' into upstream-sync
# Conflicts:
#	.github/CODEOWNERS
#	Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
#	Resources/Prototypes/Maps/core.yml
#	Resources/Prototypes/Roles/Jobs/Cargo/salvage_specialist.yml
#	Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml
#	Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml
#	Resources/Prototypes/Roles/Jobs/Civilian/musician.yml
#	Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml
#	Resources/Textures/Clothing/Hands/Gloves/captain.rsi/equipped-HAND.png
#	Resources/Textures/Clothing/Hands/Gloves/captain.rsi/icon.png
#	Resources/Textures/Clothing/Hands/Gloves/captain.rsi/meta.json
#	Resources/Textures/Clothing/Head/Hats/capcap.rsi/equipped-HELMET.png
#	Resources/Textures/Clothing/Head/Hats/capcap.rsi/icon.png
#	Resources/Textures/Clothing/Head/Hats/capcap.rsi/meta.json
#	Resources/Textures/Clothing/Head/Hats/captain.rsi/equipped-HELMET.png
#	Resources/Textures/Clothing/Head/Hats/captain.rsi/icon.png
#	Resources/Textures/Clothing/Head/Hats/captain.rsi/meta.json
#	Resources/Textures/Clothing/Neck/Cloaks/cap.rsi/equipped-NECK.png
#	Resources/Textures/Clothing/Neck/Cloaks/cap.rsi/icon.png
#	Resources/Textures/Clothing/Neck/Cloaks/cap.rsi/inhand-left.png
#	Resources/Textures/Clothing/Neck/Cloaks/cap.rsi/inhand-right.png
#	Resources/Textures/Clothing/Neck/Cloaks/cap.rsi/meta.json
#	Resources/Textures/Clothing/Neck/Cloaks/capcloakformal.rsi/equipped-NECK.png
#	Resources/Textures/Clothing/Neck/Cloaks/capcloakformal.rsi/icon.png
#	Resources/Textures/Clothing/Neck/Cloaks/capcloakformal.rsi/meta.json
#	Resources/Textures/Clothing/Neck/mantles/capmantle.rsi/equipped-NECK.png
#	Resources/Textures/Clothing/Neck/mantles/capmantle.rsi/icon.png
#	Resources/Textures/Clothing/Neck/mantles/capmantle.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/Armor/captain_carapace.rsi/meta.json
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/equipped-OUTERCLOTHING.png
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/icon.png
#	Resources/Textures/Clothing/OuterClothing/WinterCoats/coatcap.rsi/meta.json
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/captain.rsi/equipped-INNERCLOTHING.png
#	Resources/Textures/Clothing/Uniforms/Jumpskirt/captain.rsi/icon.png
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/captain.rsi/equipped-INNERCLOTHING.png
#	Resources/Textures/Clothing/Uniforms/Jumpsuit/captain.rsi/icon.png
#	Resources/Textures/Decals/bricktile.rsi/dark_box.png
#	Resources/Textures/Decals/bricktile.rsi/dark_corner_ne.png
#	Resources/Textures/Decals/bricktile.rsi/dark_corner_nw.png
#	Resources/Textures/Decals/bricktile.rsi/dark_corner_se.png
#	Resources/Textures/Decals/bricktile.rsi/dark_corner_sw.png
#	Resources/Textures/Decals/bricktile.rsi/dark_end_e.png
#	Resources/Textures/Decals/bricktile.rsi/dark_end_n.png
#	Resources/Textures/Decals/bricktile.rsi/dark_end_s.png
#	Resources/Textures/Decals/bricktile.rsi/dark_end_w.png
#	Resources/Textures/Decals/bricktile.rsi/dark_inner_ne.png
#	Resources/Textures/Decals/bricktile.rsi/dark_inner_nw.png
#	Resources/Textures/Decals/bricktile.rsi/dark_inner_se.png
#	Resources/Textures/Decals/bricktile.rsi/dark_inner_sw.png
#	Resources/Textures/Decals/bricktile.rsi/dark_line_e.png
#	Resources/Textures/Decals/bricktile.rsi/dark_line_n.png
#	Resources/Textures/Decals/bricktile.rsi/dark_line_s.png
#	Resources/Textures/Decals/bricktile.rsi/dark_line_w.png
#	Resources/Textures/Decals/bricktile.rsi/meta.json
#	Resources/Textures/Decals/bricktile.rsi/steel_box.png
#	Resources/Textures/Decals/bricktile.rsi/steel_corner_ne.png
#	Resources/Textures/Decals/bricktile.rsi/steel_corner_nw.png
#	Resources/Textures/Decals/bricktile.rsi/steel_corner_se.png
#	Resources/Textures/Decals/bricktile.rsi/steel_corner_sw.png
#	Resources/Textures/Decals/bricktile.rsi/steel_end_e.png
#	Resources/Textures/Decals/bricktile.rsi/steel_end_n.png
#	Resources/Textures/Decals/bricktile.rsi/steel_end_s.png
#	Resources/Textures/Decals/bricktile.rsi/steel_end_w.png
#	Resources/Textures/Decals/bricktile.rsi/steel_inner_ne.png
#	Resources/Textures/Decals/bricktile.rsi/steel_inner_nw.png
#	Resources/Textures/Decals/bricktile.rsi/steel_inner_se.png
#	Resources/Textures/Decals/bricktile.rsi/steel_inner_sw.png
#	Resources/Textures/Decals/bricktile.rsi/steel_line_e.png
#	Resources/Textures/Decals/bricktile.rsi/steel_line_n.png
#	Resources/Textures/Decals/bricktile.rsi/steel_line_w.png
#	Resources/Textures/Decals/bricktile.rsi/white_box.png
#	Resources/Textures/Decals/bricktile.rsi/white_corner_ne.png
#	Resources/Textures/Decals/bricktile.rsi/white_corner_nw.png
#	Resources/Textures/Decals/bricktile.rsi/white_corner_se.png
#	Resources/Textures/Decals/bricktile.rsi/white_corner_sw.png
#	Resources/Textures/Decals/bricktile.rsi/white_end_e.png
#	Resources/Textures/Decals/bricktile.rsi/white_end_n.png
#	Resources/Textures/Decals/bricktile.rsi/white_end_s.png
#	Resources/Textures/Decals/bricktile.rsi/white_end_w.png
#	Resources/Textures/Decals/bricktile.rsi/white_inner_ne.png
#	Resources/Textures/Decals/bricktile.rsi/white_inner_nw.png
#	Resources/Textures/Decals/bricktile.rsi/white_inner_se.png
#	Resources/Textures/Decals/bricktile.rsi/white_inner_sw.png
#	Resources/Textures/Decals/bricktile.rsi/white_line_e.png
#	Resources/Textures/Decals/bricktile.rsi/white_line_n.png
#	Resources/Textures/Decals/bricktile.rsi/white_line_s.png
#	Resources/Textures/Decals/bricktile.rsi/white_line_w.png
#	Resources/Textures/Decals/minitile.rsi/dark_box.png
#	Resources/Textures/Decals/minitile.rsi/dark_corner_ne.png
#	Resources/Textures/Decals/minitile.rsi/dark_corner_nw.png
#	Resources/Textures/Decals/minitile.rsi/dark_corner_se.png
#	Resources/Textures/Decals/minitile.rsi/dark_corner_sw.png
#	Resources/Textures/Decals/minitile.rsi/dark_end_e.png
#	Resources/Textures/Decals/minitile.rsi/dark_end_n.png
#	Resources/Textures/Decals/minitile.rsi/dark_end_s.png
#	Resources/Textures/Decals/minitile.rsi/dark_end_w.png
#	Resources/Textures/Decals/minitile.rsi/dark_inner_ne.png
#	Resources/Textures/Decals/minitile.rsi/dark_inner_nw.png
#	Resources/Textures/Decals/minitile.rsi/dark_inner_se.png
#	Resources/Textures/Decals/minitile.rsi/dark_inner_sw.png
#	Resources/Textures/Decals/minitile.rsi/dark_line_e.png
#	Resources/Textures/Decals/minitile.rsi/dark_line_n.png
#	Resources/Textures/Decals/minitile.rsi/dark_line_s.png
#	Resources/Textures/Decals/minitile.rsi/dark_line_w.png
#	Resources/Textures/Decals/minitile.rsi/meta.json
#	Resources/Textures/Decals/minitile.rsi/steel_corner_ne.png
#	Resources/Textures/Decals/minitile.rsi/steel_corner_nw.png
#	Resources/Textures/Decals/minitile.rsi/steel_corner_se.png
#	Resources/Textures/Decals/minitile.rsi/steel_corner_sw.png
#	Resources/Textures/Decals/minitile.rsi/steel_end_e.png
#	Resources/Textures/Decals/minitile.rsi/steel_end_n.png
#	Resources/Textures/Decals/minitile.rsi/steel_end_s.png
#	Resources/Textures/Decals/minitile.rsi/steel_end_w.png
#	Resources/Textures/Decals/minitile.rsi/steel_inner_ne.png
#	Resources/Textures/Decals/minitile.rsi/steel_inner_nw.png
#	Resources/Textures/Decals/minitile.rsi/steel_inner_se.png
#	Resources/Textures/Decals/minitile.rsi/steel_inner_sw.png
#	Resources/Textures/Decals/minitile.rsi/steel_line_e.png
#	Resources/Textures/Decals/minitile.rsi/steel_line_n.png
#	Resources/Textures/Decals/minitile.rsi/steel_line_s.png
#	Resources/Textures/Decals/minitile.rsi/steel_line_w.png
#	Resources/Textures/Decals/minitile.rsi/white_box.png
#	Resources/Textures/Decals/minitile.rsi/white_corner_ne.png
#	Resources/Textures/Decals/minitile.rsi/white_corner_nw.png
#	Resources/Textures/Decals/minitile.rsi/white_corner_se.png
#	Resources/Textures/Decals/minitile.rsi/white_corner_sw.png
#	Resources/Textures/Decals/minitile.rsi/white_end_e.png
#	Resources/Textures/Decals/minitile.rsi/white_end_n.png
#	Resources/Textures/Decals/minitile.rsi/white_end_s.png
#	Resources/Textures/Decals/minitile.rsi/white_end_w.png
#	Resources/Textures/Decals/minitile.rsi/white_inner_ne.png
#	Resources/Textures/Decals/minitile.rsi/white_inner_nw.png
#	Resources/Textures/Decals/minitile.rsi/white_inner_se.png
#	Resources/Textures/Decals/minitile.rsi/white_inner_sw.png
#	Resources/Textures/Decals/minitile.rsi/white_line_w.png
#	Resources/Textures/Tiles/attributions.yml
#	Resources/Textures/Tiles/bar.png
#	Resources/Textures/Tiles/clown.png
#	Resources/Textures/Tiles/dark.png
#	Resources/Textures/Tiles/dark_diagonal.png
#	Resources/Textures/Tiles/dark_diagonal_mini.png
#	Resources/Textures/Tiles/dark_herringbone.png
#	Resources/Textures/Tiles/dark_mini.png
#	Resources/Textures/Tiles/dark_mono.png
#	Resources/Textures/Tiles/dark_offset.png
#	Resources/Textures/Tiles/dark_pavement.png
#	Resources/Textures/Tiles/dark_pavement_vertical.png
#	Resources/Textures/Tiles/hydro.png
#	Resources/Textures/Tiles/kitchen.png
#	Resources/Textures/Tiles/laundry.png
#	Resources/Textures/Tiles/steel.png
#	Resources/Textures/Tiles/steel_diagonal.png
#	Resources/Textures/Tiles/steel_diagonal_mini.png
#	Resources/Textures/Tiles/steel_herringbone.png
#	Resources/Textures/Tiles/steel_mini.png
#	Resources/Textures/Tiles/steel_mono.png
#	Resources/Textures/Tiles/steel_offset.png
#	Resources/Textures/Tiles/steel_pavement.png
#	Resources/Textures/Tiles/steel_pavement_vertical.png
#	Resources/Textures/Tiles/white.png
#	Resources/Textures/Tiles/white_diagonal.png
#	Resources/Textures/Tiles/white_diagonal_mini.png
#	Resources/Textures/Tiles/white_herringbone.png
#	Resources/Textures/Tiles/white_mini.png
#	Resources/Textures/Tiles/white_mono.png
#	Resources/Textures/Tiles/white_offset.png
#	Resources/Textures/Tiles/white_pavement.png
#	Resources/Textures/Tiles/white_pavement_vertical.png
2023-08-02 15:13:51 +03:00
Pieter-Jan Briers
7c9d7423d2
Remove autogenerated from admin log key. (#18377) 2023-07-29 16:44:28 +10:00
Morb0
23eef7660d Merge remote-tracking branch 'upstream/master' into upstream-sync 2023-07-28 01:02:37 +03:00