Skip to content

Commit

Permalink
Merge dev Into Master (#2567)
Browse files Browse the repository at this point in the history
* Fix CI

* Added PrimitiveSettings + 3 overloads to Primitive::Create method

* Light::Create overload + Signature fix

* Ops

* Make `Server.RunCommand` return response (#2105)

* Make `Server.RunCommand` return response

* Make obsolute

* Fix

* Update Exiled.API/Features/Toys/Light.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Exiled.API/Features/Toys/Primitive.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Primitive.cs

* Changes for Shooting and Shot events (#2101)

* fixed event for buckshot and railgun and added firearm in args

* Added firearm

* Update Shot.cs

* Use .Cast<Firearm>() in Shot.cs

* ShotEventArgs extends IFirearmEvent, added Item and changed order of properties

* Changed order of CanHurt in ShotEventArgs

* Make ShootingEventArgs extends IFirearmEvent instead of IItemEvent

* Fix Nao Skill Issue (#2112)

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* AnimationCurve (#2098)

* AnimationCurve

* Bad documentation

* Removing     'Exiled.Updater',

* Revert "Removing     'Exiled.Updater',"

This reverts commit b8d4e7c.

* Fix dumb door (#2111)

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* SpawningTeamVehicle event addition (#2108)

* Ability use hint changes (#2113)

* Make these better.

* Remove this

* Fix dev build errors

* Make it non-breaking

* Mark obsolete

* Smol fucky wucky

* yes

* Erm, Am I dumb?

* Better responses

* Exiled Component System Overhaul, DynamicEvents & StateMachine APIs, `Exiled::Updater` rework. (#2085)

* `Exiled.Updater` rework

* Removed old `Exiled.Updater`

* Fix `nuspec` build

* Prevent Exiled from being loaded if out to date and no releases are available yet.

* Added `StateMachine` API.
Added `DynamicEvents` API.
Added `EBehaviour` component.
Fixed docs in `ManagedObjectTypeAttribute`.
Fixed typos in `CustomRoles::API::Extensions`.

* Fix typo

* Not finish

* Some fixes to `Exiled::Updater`.
Now it actually runs on a different thread without blocking the normal server exec/startup.

* Don't care

* Updater's logs are now debugs

* Fix typo

Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>

* Fix Exiled.nuspec

* use ternary op

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Fix Yamato's commit

* Fixed `StaticActor` structure

---------

Co-authored-by: Nao <nao@teslaitstudios.com>
Co-authored-by: louis1706 <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>

* Fix Error GetBefore() (#2121)

* Fix MessageTranslated (#2122)

* Keep dev branch up to date (#2125)

* Add ChangeLightsColor and ResetLightsColor  (#2126)

* ChangeLightsColor and ResetLightsColor addition.

* Fix for player being null (skipping this null check causes Npc.Destroy() to throw exceptions) (#2129)

* Someone didn't know how unity works. (#2132)

* Small change to CustomRole.KeepInventoryOnSpawn (#2130)

* Yes

* Yamato fix

* There

* Switches are better

* Add RotationTime, DoorOpenTime, DoorCloseTime and MoveTime to Lift.cs (#2117)

* Add RotationTime, DoorOpenTime, DoorCloseTime and MoveTime

* Update Lift.cs

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Fixed crashing issue caused by changing appearance of a disconnected … (#2139)

* Fixed crashing issue caused by changing appearance of a disconnected player

* Update MirrorExtensions.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Fix SetAmmo(AmmoType.None) crash (#2138)

* Fix SetAmmo(AmmoType.None) crash

* 100% sure no error with this

* EventList (#2137)

* EventList

* Update Event.cs

* FixPickupPreviousOwner (#2141)

* Deprecated the setter of ItemsToDrop (#2144)

* EndRoundTranspiler (#2120)

* EndRoundTranspiler

* not needed

* SCPSL-experimental Update (#2152)

* experimental

* Prevent breakingChange

* Error

* last fix

* Update Doc

* Haven't found a better way to make it

* FUCK Version

* StaminaUsage Patch now use Postfix instead of Transpiler & KickingEvent Transpiler (#2143)

* StaminaUsage

* Kicking Patch

* Fix error

* Fix for Experymental

* Fix stupidity

* Optimise

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Respawn::TimeUntilNextPhase (#2150)

* Respawn::TimeUntilNextPhase

* .

* is or

* Update dependencies URL

* Unnecessary set accessor

* Update dep link

* Fix UserId (#2158)

* Fix IL ERROR (#2166)

* Fix ILError

* Fix Skill Issue from someone else

- /* */ will need to be removed when the other method will be deleted

* Fix round end transpiler (#2167)

* Update RoundEnd.cs

* Update RoundEnd.cs

* Update RoundEnd.cs

* Full Fix

* Fix UsedItem event not being called (#2163)

* UsedItemFixNotCall

* In case it's don't work

* Update UsedItemFixNotCall.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Fix `Scp0492.ConsumingCorpse` event was called with `Scp049` (#2142)

* bruh

* better patch method

* L bracing

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Fix SpawingEventArgs::HorizontalRotation (#2162)

* Fix Crash null string (#2161)

* Add Whitelist && update ReservedSlot extensions (#2160)

* Make `Server.RunCommand` return response

* Make obsolute

* Fix

* Add WhiteList extension

* Add `isPermanent` argument

* Update `ReservedSlot`

* Update docs

* Fixes

* Make better

* Always true

* SendingAdminChatMessageEvent (#2159)

* SendingAdminChatMessage

* oh 'lol

Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>

* Update SendingAdminChatMessageEventsArgs.cs

---------

Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Fix ClearInventory (#2140)

* Fix ClearInventory

* Update Exiled.API/Features/Player.cs

Co-authored-by: IRacle <79921583+IRacle1@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Thunder <thundermaker300@gmail.com>

---------

Co-authored-by: IRacle <79921583+IRacle1@users.noreply.github.com>
Co-authored-by: Thunder <thundermaker300@gmail.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* We are not going to miss this (Remove Old Exiled.Updater) (#2151)

* We are not going to miss this

* Update Loader.cs

* Fix Yamato's skill issue

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* ModifyToken (#2148)

* ModifyToken

* PreventException

* New

* modify

* Tickets

* Some Scp914 QoL additions (#2149)

* Scp914

* Update Exiled.API/Features/Scp914.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Exiled.API/Features/Scp914.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Exiled.API/Features/Scp914.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Scp914.cs

* Update Scp914.cs

---------

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update dev.yml workflow (#2170)

* Update main.yml (#2169)

* GetAmmoLimitFix (#2157)

* GetAmmoLimitFix

* look nicer

* .

* Update GetAmmoLimitFix.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Add Player.AdminChatAccess

* Revert "Fix UsedItem event not being called (#2163)" (#2173)

This reverts commit 58007bc.

* `Scp173::BlinkingRequest` event (#2077)

* test

* у

* e

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* NullCheck (#2175)

* SCP:SL 13.3 (#2178)

Co-authored-by: Thunder <thundermaker300@gmail.com>

* ChaosTargetCounter (#2179)

* ChaosTargetCounter

* Network_chaosTargetCount

---------

Co-authored-by: Thunder <thundermaker300@gmail.com>

* merge Master To Dev (#2203)

* Fix CI

* Added ChaosTargetCount (#2106)

* Added ChaosTargetCount

* a

* Updated

* Fix build errors

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Revert "Added ChaosTargetCount (#2106)" (#2110)

This reverts commit c3612c9.

* Woah more proper English (#2196)

Grammar fixes. This includes fixing multiple it's to its, removal of unnecessary commas, and removal of redundancies.

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: Nameless <85962933+Misfiy@users.noreply.github.com>
Co-authored-by: Thunder <thundermaker300@gmail.com>
Co-authored-by: Snivy FIlms <120346554+NikkiGardiner1@users.noreply.github.com>

* Update RoundEnd.cs (#2193)

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Fix Rpc and WriterExtensions dict (#2198)

* Fix Rpc and WriterExtensions dict

* stylecop

* Intercom.DisplayText fix (#2209)

* Update CommentsObjectGraphVisitor.cs (#2210)

* EnableEffect should have intensity argument (#2134)

* EnableEffect should have intensity argument

* Preventing Error + add a new ctor for Effect class

* Fix NW

* FUCK that so dumb

* Fix typos

* Fix doc

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Add two item props: IsLightEmitter, IsDisarmer

* DecontaminationFeatures (#2145)

* DecontaminationFeatures

* it's also global when final

* Fix

* Update DecontaminationState.cs

* .

* Add Warhead.Kills

* same to dev (#2206)

* fix `IAcquisitionConfirmationTrigger` logic

* final 330 fix

* Stupid manual bool fix (#2211)

* all candies (#2214)

* Add Broadcast.Show check to CustomItems (#2212)

* Add Broadcast.Show check to CustomItems

* Random optimization

* Revert "Random optimization"

This reverts commit 6c7f910.

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Rework EffectType (#2190)

* Rework

* Update EffectTypeExtension.cs

* Update EffectTypeExtension.cs

* Update dev.yml (#2227)

* Updating EXILED to 13.3.1 (#2223)

* Item fix (#2228)

* Fix doc version (#2230)

* Simplification

* Patch fix (#2229)

* Update ChangingGroup.cs (#2232)

* Fix transpiler (#2234)

* Fix CancelledItemUse::Item always being null (#2174)

* Fix Item always being null

* .

* Is it a flashlight? (#2225)

* is it a flashlight?

* new logic

* edit xml

* another xml update

* no more breaking changes

* huh

* get and create methods fix

* fuux

* New Hurt Event (#2176)

Co-authored-by: IRacle <79921583+IRacle1@users.noreply.github.com>

* Reworking Scp079Transpiller (#2017)

* Scp106ReworkTranspiller (#1984)

* Rework Scp049 Event (#1978)

* Send staff message (#2172)

* SendStaffMessage

* Idk if this is needed

* .

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Scp079Role method fix (#1983)

* Fix Bug than Grenade do not make damage correctly (#2119)

* Fix Various Transpiler and Update StatModule (#2171)

* Big PickupAPI changes (Breaking) (#2147)

* Updated a LOT of summaries. (#2231)

* Added proper grammar or some more details P1 (Contains Exiled.API to Exiled.CustomRoles

* Up to Exiled Events Patches for working on the summaries

* The last of the summary fixes and modifications

* Reverted the /// <inheritdoc/> changes

* Im not perfect with grammar

* Added Thundermaker's suggested changes

* Part 2

* Part 3

* Said hasta la pasta to a comment

---------

Co-authored-by: Nikki Gardiner <mill385@yahoo.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* stylecop some women

* oh good heavens

* New effects (#2224)

* new effect

* same as flashlight?

* Revert "same as flashlight?"

This reverts commit ffa76c7.

* new effects

* typo fix

* xml update

* fix

* forgor

* Update Exiled.API/Enums/EffectType.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Exiled.API/Extensions/EffectTypeExtension.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* Update Exiled.API/Enums/EffectType.cs

Co-authored-by: Thunder <thundermaker300@gmail.com>

* basically what Yamato is saying is

* Update Exiled.API/Enums/EffectType.cs

* Update Exiled.API/Enums/EffectType.cs

* Add using statement

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Thunder <thundermaker300@gmail.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* stop complaining

* the skeleton lives on (#2233)

* Add 3114

* Add 3114

* Add 3114

* Squashed commit of the following:

commit ef803b0
Author: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Date:   Mon Nov 13 05:57:25 2023 +0300

    New effects (#2224)

    * new effect

    * same as flashlight?

    * Revert "same as flashlight?"

    This reverts commit ffa76c7.

    * new effects

    * typo fix

    * xml update

    * fix

    * forgor

    * Update Exiled.API/Enums/EffectType.cs

    Co-authored-by: Thunder <thundermaker300@gmail.com>

    * Update Exiled.API/Extensions/EffectTypeExtension.cs

    Co-authored-by: Thunder <thundermaker300@gmail.com>

    * Update Exiled.API/Enums/EffectType.cs

    Co-authored-by: Thunder <thundermaker300@gmail.com>

    * basically what Yamato is saying is

    * Update Exiled.API/Enums/EffectType.cs

    * Update Exiled.API/Enums/EffectType.cs

    * Add using statement

    ---------

    Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
    Co-authored-by: Thunder <thundermaker300@gmail.com>
    Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Squashed commit of the following:

commit f35fdf9
Author: Thunder <thundermaker300@gmail.com>
Date:   Sun Nov 12 22:00:20 2023 -0500

    stop complaining

commit ef803b0
Author: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Date:   Mon Nov 13 05:57:25 2023 +0300

    New effects (#2224)

    * new effect

    * same as flashlight?

    * Revert "same as flashlight?"

    This reverts commit ffa76c7.

    * new effects

    * typo fix

    * xml update

    * fix

    * forgor

    * Update Exiled.API/Enums/EffectType.cs

    Co-authored-by: Thunder <thundermaker300@gmail.com>

    * Update Exiled.API/Extensions/EffectTypeExtension.cs

    Co-authored-by: Thunder <thundermaker300@gmail.com>

    * Update Exiled.API/Enums/EffectType.cs

    Co-authored-by: Thunder <thundermaker300@gmail.com>

    * basically what Yamato is saying is

    * Update Exiled.API/Enums/EffectType.cs

    * Update Exiled.API/Enums/EffectType.cs

    * Add using statement

    ---------

    Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
    Co-authored-by: Thunder <thundermaker300@gmail.com>
    Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Fixes

* Add 3114

* Fixed Event StartingRecallEventArgs's IsAllowed issue. (#2235)

* Fix Ctor (#2240)

* Lazy fix (#2146)

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* More Fix (#2244)

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Version bump to 8.4.0

* FastFix (#2251)

* Update push_nuget.yml

* FixInfiniteSprint (#2255)

* Version bump to 8.4.1

* Workflow (#2258)

* Create moveFile.ps1

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Update moveFile.ps1

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Update dev.yml

* Rename moveFile.ps1 to packaging.ps1

* Update dev.yml

* Update dev.yml

* Revert "Workflow (#2258)"

This reverts commit d757764.

* Change default value of flashbang affect thrower

* Better workflow (#2259)

* Create moveFile.ps1

* Update dev.yml

* Update moveFile.ps1

* Update dev.yml

* Rename moveFile.ps1 to packaging.ps1

* Update dev.yml

* fix (#2262)

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Improved Stamina API (#2237)

Co-authored-by: Thunder <thundermaker300@gmail.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Update DestroyingEventArgs.cs (#2272)

* FixRoundEnd (#2278)

* Remove Breaking Change from #2237 (#2283)

* MaxAmmo Setter && NightVision should also be true when NightVision (#2164)

Co-authored-by: Thunder <thundermaker300@gmail.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Ending round event fix (#2280)

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* CanScp049SenseTutorial Fix bool logic (#2275)

Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>

* Version bump to 8.4.2

* Fix TogglingFlashlightEventArgs Cast (#2295)

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Fix Player.Get(ServerHostPlayer) (#1863)

* Added ItemRemoved Event (#2263)

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* who wrote this? (#2298)

* Fix MaxAmmo and CustomItem Weapon (#2302)

* Update EXILED.props

* Update EXILED.props

* SpawningTeamVehicle Transpiler (#2265)

* Spawning transpiler (#2241)

* Add to DropItem(Item item, bool isThrown) (#2268)

* Bump to 8.4.3-rc.2

* Revert "Spawning transpiler (#2241)" (#2306)

This reverts commit caaa732.

* EffectType.None + More TryGet method for EffectType extension (#2292)

* Rework and Fix Shooting Transpiler (#2309)

* is that a new ev of 87? (#2308)

* Inroducing... "Async" events (#2303)

* huh?

* oops

* another one

* Revert "another one"

This reverts commit 0bae3ad.

* y've never seen last commit

* Update Exiled.Events/Features/Event{T}.cs

* fux

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* ValidatingVisibility Event (#2299)

* ValidatingVisibility Event

* text

* fix again

* build error fixes

* docs fix

* Update Exiled.Events/EventArgs/Scp939/ValidatingVisibilityEventArgs.cs

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Update Exiled.Events/Handlers/Scp939.cs

* Update Exiled.Events/Handlers/Scp939.cs

* Update Exiled.Events/EventArgs/Scp939/ValidatingVisibilityEventArgs.cs

* Update Exiled.Events/EventArgs/Scp939/ValidatingVisibilityEventArgs.cs

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Patch Rework DoorList (#2270)

* Patch Rework

* Update Exiled.Events/Patches/Generic/DoorList.cs

* uhmmmm

* Add voicelines SCP-3114 (#2269)

* Add Door EVent

* Add to DropItem isThrown

* Door

* Add voicelines SCP-3114

* Update Player.cs

* Oops

* Oops v3

* Convert bool Prefix to Transpiler

* Update Exiled.Events/Handlers/Scp3114.cs

* Update Exiled.Events/Handlers/Scp3114.cs

---------

Co-authored-by: BoltonII <boltonii.mc@gmail.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Add ```ChangeItemOwner``` (#2249)

* Add files via upload

Added a public method for change item's owner.
By encapsulating ChangeOwner method.

* Fixed issue about extra tab

* Fixed reference issue.

* Update Exiled.API/Features/Items/Item.cs

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Fixing up spelling errors and XML formatting. (#2317)

* v8.4.3 (#2305)

* Fixed SCP-3114 spelling errors and stylecop XML formatting.

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: Nao <nao@teslaitstudios.com>

* rawr (#2322)

* Fixed Room.Blackout not turning off lights (#2319)

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Some Scp914 changes (#2290)

* Documentation about async events (#2332)

* Update Events.md

* Update Events.md

* Update docs/docs/Plugins/Events.md

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Update docs/docs/Plugins/Events.md

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Scp244MoreAPI (#2323)

* Scp244MoreAPI

* Apply suggestions from code review

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>

* Fix UsingBreakneckSpeeds not being call (#2318)

* Round.IgnoredPlayers  fix (#2307)

* Round.IgnoredPlayers  fix

* Update Exiled.Events/Patches/Events/Server/RoundEnd.cs

* Update Exiled.Events/Patches/Events/Server/RoundEnd.cs

* Update Exiled.Events/Patches/Events/Server/RoundEnd.cs

* Update Exiled.Events/Patches/Events/Server/RoundEnd.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* SelectingRespawnTeamEventArgs (#2315)

* SelectingRespawnTeamEventArgs

* Apply suggestions from code review

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Update Exiled.Events/Patches/Events/Server/SelectingRespawnTeam.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Landing Fix + few doc change (#2314)

* Update Documentation (#2336)

* Update Documentation

* Spacing

* Scp3114 Transpiler (#2266)

* TryUseBody Transpiler + fix

* Disguising Transpiler

* Revealing + RevealingKey Transpiler

* Fix

* Edit doc

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Fix Transmitting event (#2273)

* Fix TransmittingEvent

* :)

* Prevent breaking plugin

* :)

* Remove warning

* I'm dumb

* Fixing up XML Formatting

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Scp173BeingLooked Transpiler (#2276)

* Scp173BeingLooked Transpiler

* Fix

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* Scp3114AttackAhpFix (#2320)

* Scp3114AttackAhpFix

* Update Scp3114AttackAhpFix.cs

* Update Scp3114AttackAhpFix.cs

* Adding event TogglingRadio(Player, RadioItem, bool, bool) (#2329)

* Add Door EVent

* Add Door Event

* Add Door Event

* Fix

* Oops

* Oops v2

* Oops

* Delete Door Event

* Create DamagingDoorEventArgs.cs

* Create DamagingDoor.cs

* Adding event Toggling Radio

* Delete DamagingDoorEventArgs.cs

* Create DamagingDoorEventArgs.cs

* Convert prefix to transpiler + fix docs

* Update TogglingRadio.cs

* Update TogglingRadioEventArgs.cs

* Update Exiled.Events/Patches/Events/Player/TogglingRadio.cs

Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: BoltonDev <boltonii.mc@gmail.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>

* Fix Gate IsFullyOpen and IsFullyClosed (#2337)

* Update Player.cs (#2347)

* Update for PostXMAS (#2383)

* Update for PostXMAS

* WeaponFixFromXMAS

* remove var

* Fix RegisteringEvent

* more var remove

* 8.7.0

* 8.7.1

* Fix build errors

* Update doc and SL version

* Fix spawning ragdoll event args (#2396)

* Update for PostXMAS (#2383)

* Update for PostXMAS

* WeaponFixFromXMAS

* remove var

* Fix RegisteringEvent

* more var remove

* 8.7.0

* Fix SpawningRagdoll

- not tested

* Not needed Change

* Revert useless change

* Fixed a bug with `SearchingPickup` event caused by NWAPI  (#2311)

* .

* Last

* Fully modify transpiler

* miss retLabel

* MoreInfo

* .

* Update for PostXMAS (#2383)

* Update for PostXMAS

* WeaponFixFromXMAS

* remove var

* Fix RegisteringEvent

* more var remove

* 8.7.0

* Fix

* Dumb

* Update SearchingPickupEvent.cs

* Update SearchingPickupEvent.cs

* 8.7.3

* Fix SpawningRagdoll Transpiler

* Add `respawn_target_multiplier` field to base game configs. (#2421)

* AddRespawnTargetMultiplierConfig

* Fix

* Fixed open doors getting easily broke by Scp096. (#2422)

* NWFixScp096BreakingDoor

* Update Exiled.Events/Patches/Fixes/NWFixScp096BreakingDoor.cs

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Fixed `team_respawn_queue` field config not behaving as expected. (#2423)

* NW FIX team_respawn_queue

* Better ChaosRoleType

* Fix Scp049RespawningOverwatch (#2424)

* FixPrimitive (#2426)

* [NW Bug] Sync lights after player rejoin (#2413)

* Defined new API structure.

* Changed `CustomRoles` to `CustomModules`.

* A few more adjustments

* Implemented `Additive Properties`.

* Docs

* Docs and typos

* Added generic `CustomEscape` and `CustomRole`

* Added `CustomTeam` and `CollectionExtensions`.
Made some methods obsolete on `CommonExtensions`.

* Fixed build errors

* Removed parsers, added namespaces.
Added `ITypeCast<T>` interface.
Added `NullableObject` class.
Added `TypeCastMono<T>` component.
Removed all custom `implicit operator bool` implementations in favor of using `NullableObject`.
Made some adjustments to `CustomRoles`.

* Changes to `Exiled::API::Features::Core`.
Added `GameEntity`.
Removed `EBehaviour`.
Made some changes and additions to custom APIs.
Added a new `CustomAbility` API draft.
Made some optimizations.

* Add doc, Fix bug, code simplification (#2335)

* Add doc, Fix bug, code simplification

* TypeCastObject & TypeCastMono rewrite Cast

* `GameEntity` is dominating

* Update APIs to latest SL version (#2353)

* Update halloween.yml

* Rename halloween.yml to xmas.yml

* Xmas update (#2339)

* Update RoundEnd.cs (#2341)

* Lots of new API (#2342)

* lots of new

new effects
956
559

* final

* fix

* idk

* Scp956Target

* Snowed

* doc

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>

* DamageHandler and Flamingo (#2343)

* DamageHandler and Flamingo

* Update ItemExtension

* Missing Scp1507Damage

* Missing Item API

* Snow pile (#2346)

* snow pile

* list fix

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* SCP-1507 (#2340)

* scp-1507

* minor changes

* added role

* new

* IHumeShieldRole

* .

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* CustomWeaponFix (#2349)

* CustomWeaponFix

* Fix

* More features and events for SCP-1507 (#2348)

* scp-1507

* minor changes

* added role

* new

* IHumeShieldRole

* .

* lots of new

* still something new

* Update Scp1507Role.cs

* Update Scp1507Role.cs

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* SCP-2536 (#2344)

* base 2536

* ev

* trying fix

* fix + new ev

* WhitelistedTeams

* doc change

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* 8.4.4-beta.1

* Fix nuget deps

* ooops (#2351)

* Fix CustomItem

* Fixing scp that can attack each other (#2352)

* Fixing scp that can attack each other

* Update IndividualFriendlyFire.cs

* bump

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>
Co-authored-by: Nao <github@naoudnerscore.dev>

* Updated to latest SL version.
Added `CustomAbility<T>`, `CustomPlayerAbility`, `CustomItemAbility` and `CustomPickupAbility` API.
Fixed namespaces.
Fixed `CustomAbility<T>` not able to find any abilities due to faulty type check.
Various changes to docs, mainly fixed and improvements.

* Docs fixes

* `using` statements cleanup

* Removed unused files and configs

* Fetch upstream (#2357)

* Update halloween.yml

* Rename halloween.yml to xmas.yml

* Xmas update (#2339)

* Update RoundEnd.cs (#2341)

* Lots of new API (#2342)

* lots of new

new effects
956
559

* final

* fix

* idk

* Scp956Target

* Snowed

* doc

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>

* DamageHandler and Flamingo (#2343)

* DamageHandler and Flamingo

* Update ItemExtension

* Missing Scp1507Damage

* Missing Item API

* Snow pile (#2346)

* snow pile

* list fix

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* SCP-1507 (#2340)

* scp-1507

* minor changes

* added role

* new

* IHumeShieldRole

* .

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* CustomWeaponFix (#2349)

* CustomWeaponFix

* Fix

* More features and events for SCP-1507 (#2348)

* scp-1507

* minor changes

* added role

* new

* IHumeShieldRole

* .

* lots of new

* still something new

* Update Scp1507Role.cs

* Update Scp1507Role.cs

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* SCP-2536 (#2344)

* base 2536

* ev

* trying fix

* fix + new ev

* WhitelistedTeams

* doc change

---------

Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* 8.4.4-beta.1

* Fix nuget deps

* ooops (#2351)

* Fix CustomItem

* Fixing scp that can attack each other (#2352)

* Fixing scp that can attack each other

* Update IndividualFriendlyFire.cs

* bump

* SpawnReason::ItemUsage

* Fix CustomItem::OnReloading(ev)

* - (#2354)

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* SpawnReasons::Vocalize (#2355)

* Update SpawnReason.cs

Added new SpawnReason for SCP-1507

* Update SpawnReason.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Removed SpawnReason::Vocalize (#2356)

They pointed out to me that nw doesn't use "Vocalize" but uses "Revived"

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>
Co-authored-by: Nao <github@naoudnerscore.dev>
Co-authored-by: INZI <98975836+InziDeveloperMode@users.noreply.github.com>

* Re-organized namespaces.
Updated to latest xmas-2023 version.
Fixed `Disguising` patch.
Added `AbilityBehaviourBase<T1, T2>`, `LevelAbilityBehaviour<T1, T2>` and `UnlockableAbilityBehaviour<T1, T2>`.

* Fixed design issues.

* fix typo

* Finalized `CustomModules.API.Features.CustomAbilities`.
Finalized `CustomModules.API.Features.PlayerAbilities`.

* Useless multicasts

* quicc fix

* Design changes.
Added `ActiveAbility` and `PassiveAbility`.

* Made some changes to naming style

* Added `OnReady` method.
Made some minor changes to logs.

* Added a draft for item abilities.
Pickup abilities WIP.
Added a few more `GetComponent` methods to `IEntity`.
Made some docs fixes.

* Added two more overloads to `CollectionExtensions::AddRange<T>` methods.

Added two more overloads to `IEntity::AddComponent` methods.

Added `IEntity::AddComponents` method and 4 more overloads.

Renamed `ItemTrackerActor` to `ItemTracker` and moved it to `CustomModules::Features` namespace.

Finalized custom item and pickup abilities.

* Added some `ItemTracker` events and re-organized the already existing ones.

* Custom item draft, small change (#2366)

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Added `CustomItem` API draft.
Made some docs fixes and changes.
Made some critical fixes.

* Made `UUEscapeScenarioType` unique.

* Added `Updates.md`

* Added `Pawn::TryGetCustomRole<T>`.
Added `Pawn::TryGetCustomItem<T>`.
Added `Pawn::TryGetCustomAbility<T>`.

Added `CustomAbility<T>::Equals` and relative compare operators.

Minor docs fixes.

* Moved all `object` params to `uint` for `Get` and `TryGet` methods for all custom modules.

Added  `CustomTeamAttribute(uint, params Type[])`.

Various docs fixes.

* Fixed critical bugs on `CustomRole` API.
Added fast iteration and cached values to speed up the process of retrieving custom roles from those values.

* Added fast iteration and cached values to speed up the process of retrieving custom escapes from those values.

Added `CollectionExtensions::TryAdd` method with two overloads.

* - Added `EObject::IsDestroying`.
- Added all references on behaviours classes to their main custom module class.
- Implemented fast iteration and cached values to optimize the process of retrieving custom abilities and teams from those values.
- Introduced `CustomEscape::Attach` and `CustomEscape::Detach` static methods with four overloads each, relying on instance methods.
- Redesigned the behavior of `OnEndPlay` when a behavior gets destroyed, without exposing any fields from their main class.

* - Introduced the `ICustomAbility` interface.
- Added the `RoleBehaviour::CustomTeam` property.
- Implemented custom ability events (`Adding`, `Added`, `Removing`, and `Removed`) in the `CustomAbility` class.
- Redesigned and optimized the `Pawn::CustomAbilities` and `Pawn::AbilityBehaviours`.
- Transformed `EscapingEventArgs` into interfaces, specifically `IPlayerEvent` and `IDeniableEvent`.
- Optimized and enhanced the `IEntity::GetComponents` methods.

* Some fixes and fast iteration on `CustomItem`.

* Made some fixes to configs and pipes.

* ## Added
- `TextDisplay` class.
- `CustomItem` class.
- `ItemBehaviour` class.
- `ItemSettings` class.
- `ItemTracker` class.
- `FirearmBehaviour` class.
- `FirearmSettings` class.
- `SemiAutomaticFirearmBehaviour` class.
- `RepNotify<TRep>` class.
- `ReplicatedRef<TRef>` class.
- `ReplicatedProperty<TOwner, TValue>` class.
- `TrackerBase<T>` class.

- `ITrackableInterface` interface.
- `IRepNotify<TRep>` interface.
- `IItemBehaviour` interface.

- `TextChannelType` enum.
- `FiringMode` enum.

- `ICustomItemEvent` interface.
- `ICustomPickupEvent` interface.

- `Pawn::HasCustomItem<T>` method.
- `Pawn::HasCustomAbility<T>` method.

- `Pawn::CurrentCustomItem` property.

- `ReplicatingReferenceEventArgs<T>` event.

- A bool parameter to `Log::Debug` named "traceMethod" to log the method from which it has been called.

- Some custom item events.
- A transpiler to support `PlayerInventoryCommand` using custom items.

## Fixed
- Some bugs from the old `CustomItem` API.

## Removed
- Setter for `Firearm::FireRate` property.
- Old `CustomItem` API.

* Re-added ` EObject::CreateDefaultSubobject<T>(Type, GameObject, string)`

* Fixed `ReplicatingReferenceDispatcher` being null.

* MInor spelling mistake

* Re-worked `KeypressActivator`.
Removed `KeypressActivator`.
Added `ProcessingActionEventArgs` event.
Added `InputBinding` class.
Added `KeypressInputComponent` class.
Moved it to `Exiled::API`.

* Style

* Renamed `KeypressInputComponent` to `InputActionComponent`.
Added `KeypressInputComponent` class.
Made some changes to accessors on `InputActionComponent`'s members.
Added an implicit conversion from `Action` to `DynamicDelegate`.
Changed `DynamicDelegate InputBinding::Action` to  `Action InputBinding::Action`.

* Added custom armors and grenades.
Renamed `CollisionHandler` to `EffectGrenadeCollision`.

* Added custom pickups.
Added custom ammos.
Added custom grenades.
Added custom ammos.
Added custom armors.
Added `Settings` class.
Added `PickupTracker` class.
Added `Pawn::AddAmmo(uint, ushort)` method.

* Added support for `ItemType` and custom ammo behaviours for custom firearms.
Added `Player::RemoveItem(ItemType, bool, bool)` overload.
Added `Player::RemoveAmmo(AmmoType, ushort)` method.
Added `Pawn::GetAmmo(uint)` method.
Added `Pawn::RemoveAmmo(uint, ushort)` method.
Added `Pawn::SetAmmo(uint, ushort)` method.

* Added `AddingItem` and `RemovingItem` events.

* Docs fix

* Added `AbilityInputComponent`.
Converted all hints and broadcasts to `TextDisplay`.
Made some changes and fixes to `CustomAbility` API.
Changed some namespaces.
Split `AbilitySettings` into four (4) different configs:
`AbilitySetting`, `ActiveAbilitySettings`, `LevelAbilitySettings`, `UnlockableAbilitySettings`.
Added `ISelectableAbility` interface.
`ISelectableAbility` has been implemented on all player abilities.
It adds two methods: `Select` and `Unselect`, allowing the `Pawn` to mark and store a selected ability using `Pawn::SelectedAbilityBehaviour` added property.
It also adds two properties: `IsSelectable` and `IsSelected`.
Where `IsSelected` is `only-get`, `IsSelectable` is `get-set` instead, and it can define whether the ability should be treated as an ability handled by `AbilityInputComponent`, if present.

* Custom configs and moved serialization to API

* Added `VirtualAssemblies`.
Renamed `Exiled::API::Features::Config` to ``Exiled::API::Features::EConfig`.
Added three (3) events for `Virtual Plugins`:
`Disabling`, `Enabling`, `Reloading`.

* Revert "Fetch upstream (#2357)"

This reverts commit 33edca9.

* Push Revert XMAS

* Made some additions, changes, fixed and adjustments to custom firearms.
Added `FirearmSettings::` `OverrideReload`, `MaxAmmo` and `ChamberSize` properties.
Added `ChangingAttachment` event handler to `FirearmBehaviour`.
Added `FirearmBehaviour::ReplicatedClip` replicated property.
Added `FirearmBehaviour::ReplicatedMaxAmmo` replicated property.
Fixed a `Reloading` bug which doesn't allow to reload in case of non-custom ammo types.
`OverrideReload` will now state whether the firearm should use a custom logic to reload, including shooting and how it behaves in case of other events such as `ChangingAttachments` or `UnloadingWeapon`.
`OverrideReload` may be an `unsafe` option which does allow to have full control over the firearm's behaviour, leading to some issues if not used correctly.

* Added `OnUnloading` and `OnChangingAttachments` exposed events to `FirearmBehaviour`.

* Typo

* Fixed `GrenadeBehaviour` build errors.
Added support for `Pawn` class as base `Player` class.

* `[Exiled::API]` (Addition) New `Firearm` properties: `BaseDamage`, `MaxRange`, `Stats`. Added `Firearm::GetDamageAtDistance(float distance)` method. (#2385)

* new firearm features

* Update Exiled.API/Features/Items/Firearm.cs

* Update Exiled.API/Features/Items/Firearm.cs

* Update Exiled.API/Features/Items/Firearm.cs

* Update Exiled.API/Features/Items/Firearm.cs

* Update Exiled.API/Features/Items/Firearm.cs

* Update Exiled.API/Features/Items/Firearm.cs

* Update Exiled.API/Features/Items/Firearm.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* feat(events): implement EventExceptionLogger to capture event exceptions (#2207)

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>

* NPCs fixes by Joker

* Added `Strangling` event by Joker

* Added `ItemExtensions::GetPickupBase(ItemType)` method by Joker

* Removed `MirrorExtensions::SetRoomLightIntensityForTargetOnly` method

* No more `var`

* Fixed `Generator::set_IsOpen` by Joker

* Fixed `Scp244` by Joker

* Typo and NPCs fixes by Joker

* Fixed `Pickup::IsSpawned` and some `Player` methods.

* Re-added `Scp3114Ragdoll` and fixed `Ragdoll` by Joker

* Design choices I guess?

* `Verified` patch to transpiler by Joker

* Fixed `DroppingCandy` event

* Fixed `Pickup::IsSpawned`

* `[Exiled::Events]` Added `Server::RespawnedTeam` event (#2386)

* new ev

* Update Exiled.Events/EventArgs/Server/RespawnedTeamEventArgs.cs

* Update Exiled.Events/EventArgs/Server/RespawnedTeamEventArgs.cs

* Update Exiled.Events/Handlers/Server.cs

* Update Exiled.Events/Handlers/Server.cs

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Added `CustomGameModes` draft.
Added `GameState` and `PlayerState` classes.
Added `IAdditiveBehaviours` interface.
Added `CustomModule`, now all custom modules inherit from `CustomModule`.
Some docs fixes.

* Added `World` `StaticActor<T>`.
Added `GameState` and `PlayerState` drafts.
`Round::IgnoredPlayers` is now a `HashSet<Player>`.
Removed obsolete method `Server::RunCommand(string, CommandSender)`.

* [Exiled.API] (Change) Modify Door.DoorLockType setter (#2392)

* i hate this method

* DoorLockType

* Added `DefaultPlayerClassAttribute`.
Now `Player` derived classes will be automatically used as base `Player` class if marked with `DefaultPlayerClassAttribute` enforcing the type authority, or just by inheriting from `Player` class.

* Fix Doc (#2271)

* Revert "API Enhancements and Refinements: `Exiled.CustomModules`" (#2405)

* Merge master to dev? (#2408)

* v8.4.3 (#2305)

* TR Localization (#2388)

Added Turkish Support for README Localizations

* forgor to translate MEC (#2391)

yes

* Update README.md

* Update README-Русский.md

* Update README-中文.md

* Update README-ES.md

* Update README-PL.md

* Update README-BR.md

* Update README-IT.md

* Update README-CS.md

* Update README-DK.md

* Update README-TR.md

* better turkish (#2393)

updated

---------

Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: 1EnesBaturKaza <156574288+1EnesBaturKaza@users.noreply.github.com>
Co-authored-by: Dogy <157377508+RealDogy@users.noreply.github.com>

* Revert "Merge master to dev?" (#2411)

* Update with SL 13.3

* 8.7.1

* [NW Bug] Sync lights after player rejoin

* Update Round.cs

---------

Co-authored-by: Nao <github@naoudnerscore.dev>
Co-authored-by: Valentin Arthur Thomas <64769541+warquys@users.noreply.github.com>
Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Co-authored-by: Yamato <louismonneyron5@yahoo.com>
Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>
Co-authored-by: INZI <98975836+InziDeveloperMode@users.noreply.github.com>
Co-authored-by: Leonard Timofeev <nekonyx@proton.me>
Co-authored-by: Nameless <85962933+Misfiy@users.noreply.github.com>
Co-authored-by: Naounderscore <github@naounderscore.dev>
Co-authored-by: 1EnesBaturKaza <156574288+1EnesBaturKaza@users.noreply.github.com>
Co-authored-by: Dogy <157377508+RealDogy@users.noreply.github.com>

* Player::GetProcessed (#2382)

* ye

* docs

* remove this

* index param change

* 2nd method

* Update Exiled.API/Features/Player.cs

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Update Exiled.API/Features/Player.cs

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* fix that

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>

* Update Doc File && RequiredSCPSLVersion

* 8.8.0

* [Exiled.Events & Exiled.API] Role Spawn Fix (#2474)

- Fix spawning in wrong location
- Add TryGetRoleBase by Yamato

* EventNotCorrectlyRegister (#2455)

* `[Exiled::Events]` (`Bug fix`) Scp173Gate can't be closed when using InteractingDoor event `[Exiled::API]` (`Bug fix`) Fix Scp173Gate IsFullyOpen always return false (#2492)

* fix: InteractingDoorPatch

* fix: IsFullyOpen 173Gate

* fix

* Fix Hurting And Separated Recontain Event (#2476)

* ChangeAppearance Fix (#2486)

* Fix Map Explode (#2482)

* 8.8.1

* FixStupid

* Fix Player::Inventory & Fix a NW Bug where OnAdded get call after OnRemoved (#2458)

* Fix

* Fix 2

* Fix 3

* Revert "Fix Player::Inventory & Fix a NW Bug where OnAdded get call after OnR…" (#2505)

This reverts commit c189dfc.

* Fix (#2504)

* Reapply "Fix Player::Inventory & Fix a NW Bug where OnAdded get call after OnR…" (#2505)

This reverts commit 9f40692.

* Fix Map.Explode

* 8.8.2

* Fix FlashBang Showing hitmarker with flash when it's should not (#2526)

* Fix

* Fix index

* doc

* fix: crash on blinking request event (#2522)

* 13.5.0

* Oups

* Oups2

* Documentation & SCP:SL version file

* Adding NetworkPrimitiveFlags support

* 8.9.0

* FogControl

* SetFog

* Fix IL ERROR

* FollowNWNaming

* 8.9.1

* Fix NW moment

* 8.9.2

---------

Co-authored-by: Nao <60253860+NaoUnderscore@users.noreply.github.com>
Co-authored-by: SmusiJarviss <84509587+SmusiJarviss@users.noreply.github.com>
Co-authored-by: Artem Košilinskis <46756889+ITeMbI4@users.noreply.github.com>
Co-authored-by: Thunder <thundermaker300@gmail.com>
Co-authored-by: Ika <36999341+SiphoxR@users.noreply.github.com>
Co-authored-by: warden161 <118567564+warden161@users.noreply.github.com>
Co-authored-by: joker-119 <joker119@exiled.host>
Co-authored-by: Nao <nao@teslaitstudios.com>
Co-authored-by: VALERA771 <72030575+VALERA771@users.noreply.github.com>
Co-authored-by: Bolton <48883340+BoltonDev@users.noreply.github.com>
Co-authored-by: Claudio <72409092+ClaudioPanConQueso@users.noreply.github.com>
Co-authored-by: TtroubleTT <121741230+TtroubleTT@users.noreply.github.com>
Co-authored-by: Misaka-ZeroTwo <45165615+Misaka-ZeroTwo@users.noreply.github.com>
Co-authored-by: IRacle <79921583+IRacle1@users.noreply.github.com>
Co-authored-by: Nameless <85962933+Misfiy@users.noreply.github.com>
Co-authored-by: Snivy FIlms <120346554+NikkiGardiner1@users.noreply.github.com>
Co-authored-by: sanyae2439 <30918724+sanyae2439@users.noreply.github.com>
Co-authored-by: FUTURE <69786695+FUTURE-SL@users.noreply.github.com>
Co-authored-by: Rue <135553058+Ruemena@users.noreply.github.com>
Co-authored-by: NotIntense <mbro8210@gmail.com>
Co-authored-by: Nikki Gardiner <mill385@yahoo.com>
Co-authored-by: 白泽 <96401952+XKaguya@users.noreply.github.com>
Co-authored-by: BoltonII <boltonii.mc@gmail.com>
Co-authored-by: Artyomus1337 <92204916+Artyomus1337@users.noreply.github.com>
Co-authored-by: Rysik5318 <72207886+Rysik5318@users.noreply.github.com>
Co-authored-by: 白泽 <rx700@vip.qq.com>
Co-authored-by: Miki_hero <100715076+Mikihero@users.noreply.github.com>
Co-authored-by: NaoUnderscore <info@naounderscore.dev>
Co-authored-by: Nao <github@naoudnerscore.dev>
Co-authored-by: Valentin Arthur Thomas <64769541+warquys@users.noreply.github.com>
Co-authored-by: INZI <98975836+InziDeveloperMode@users.noreply.github.com>
Co-authored-by: Leonard Timofeev <nekonyx@proton.me>
Co-authored-by: Naounderscore <github@naounderscore.dev>
Co-authored-by: 1EnesBaturKaza <156574288+1EnesBaturKaza@users.noreply.github.com>
Co-authored-by: Dogy <157377508+RealDogy@users.noreply.github.com>
Co-authored-by: Vladislav-CS <vladislavcs@proton.me>
Co-authored-by: VALERA771 <val.germanov@gmail.com>
  • Loading branch information
1 parent 5db27d8 commit bacfde4
Show file tree
Hide file tree
Showing 42 changed files with 621 additions and 437 deletions.
2 changes: 1 addition & 1 deletion EXILED.props
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<PropertyGroup>
<!-- This is the global version and is used for all projects that don't have a version -->
<Version Condition="$(Version) == ''">8.7.1</Version>
<Version Condition="$(Version) == ''">8.9.2</Version>
<!-- Enables public beta warning via the PUBLIC_BETA constant -->
<PublicBeta>false</PublicBeta>

Expand Down
6 changes: 6 additions & 0 deletions Exiled.API/Enums/EffectType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -228,5 +228,11 @@ public enum EffectType
/// Makes the player nearly invisible, and allows them to pass through doors.
/// </summary>
Ghostly,

/// <summary>
/// Manipulate wish Fog player will have.
/// <remarks>You can choose fog with <see cref="CustomRendering.FogType"/> and putting it on intensity.</remarks>
/// </summary>
FogControl,
}
}
9 changes: 9 additions & 0 deletions Exiled.API/Extensions/EffectTypeExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ namespace Exiled.API.Extensions
using System.Linq;

using CustomPlayerEffects;
using CustomRendering;
using Enums;
using InventorySystem.Items.MarshmallowMan;
using InventorySystem.Items.Usables.Scp244.Hypothermia;
Expand Down Expand Up @@ -70,6 +71,7 @@ public static class EffectTypeExtension
#pragma warning restore CS0618
{ EffectType.Strangled, typeof(Strangled) },
{ EffectType.Ghostly, typeof(Ghostly) },
{ EffectType.FogControl, typeof(FogControl) },
};

/// <summary>
Expand Down Expand Up @@ -119,6 +121,13 @@ public static bool TryGetEffectType(this StatusEffectBase statusEffectBase, out
return true;
}

/// <summary>
/// Sets the <see cref="FogType"/> of the specified <see cref="FogControl"/>.
/// </summary>
/// <param name="fogControl">The <see cref="FogControl"/> effect.</param>
/// <param name="fogType">The <see cref="FogType"/> applied.</param>
public static void SetFogType(this FogControl fogControl, FogType fogType) => fogControl.Intensity = (byte)(fogType + 1);

/// <summary>
/// Returns whether or not the provided <paramref name="effect"/> drains health over time.
/// </summary>
Expand Down
3 changes: 2 additions & 1 deletion Exiled.API/Extensions/MirrorExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,8 @@ public static void ChangeAppearance(this Player player, RoleTypeId type, IEnumer
else
fpc = playerfpc;

fpc.FpcModule.MouseLook.GetSyncValues(0, out ushort value, out ushort _);
ushort value = 0;
fpc?.FpcModule.MouseLook.GetSyncValues(0, out value, out ushort _);
writer.WriteRelativePosition(player.RelativePosition);
writer.WriteUShort(value);
}
Expand Down
14 changes: 12 additions & 2 deletions Exiled.API/Extensions/RoleExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,16 @@ public static class RoleExtensions
/// <returns>The <see cref="PlayerRoleBase"/>.</returns>
public static bool TryGetRoleBase(this RoleTypeId roleType, out PlayerRoleBase roleBase) => PlayerRoleLoader.TryGetRoleTemplate(roleType, out roleBase);

/// <summary>
/// Tries to get the base <see cref="PlayerRoleBase"/> of the given <see cref="RoleTypeId"/>.
/// </summary>
/// <param name="roleType">The <see cref="RoleTypeId"/>.</param>
/// <param name="roleBase">The <see cref="PlayerRoleBase"/> to return.</param>
/// <typeparam name="T">The type to cast the <see cref="PlayerRoleBase"/> to.</typeparam>
/// <returns>The <see cref="PlayerRoleBase"/>.</returns>
public static bool TryGetRoleBase<T>(this RoleTypeId roleType, out T roleBase)
where T : PlayerRoleBase => PlayerRoleLoader.TryGetRoleTemplate(roleType, out roleBase);

/// <summary>
/// Gets the <see cref="LeadingTeam"/>.
/// </summary>
Expand Down Expand Up @@ -120,11 +130,11 @@ public static class RoleExtensions
/// <returns>Returns a <see cref="SpawnLocation"/> representing the spawn, or <see langword="null"/> if no spawns were found.</returns>
public static SpawnLocation GetRandomSpawnLocation(this RoleTypeId roleType)
{
if (roleType.GetRoleBase() is IFpcRole fpcRole &&
if (roleType.TryGetRoleBase(out FpcStandardRoleBase fpcRole) &&
fpcRole.SpawnpointHandler != null &&
fpcRole.SpawnpointHandler.TryGetSpawnpoint(out Vector3 position, out float horizontalRotation))
{
return new SpawnLocation(roleType, position, horizontalRotation);
return new(roleType, position, horizontalRotation);
}

return null;
Expand Down
2 changes: 1 addition & 1 deletion Exiled.API/Features/Doors/Door.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ internal Door(DoorVariant door, List<Room> rooms)
/// <summary>
/// Gets a value indicating whether or not the door is currently moving.
/// </summary>
public virtual bool IsMoving => ExactState is not(0 or 1);
public virtual bool IsMoving => !(IsFullyOpen || IsFullyClosed);

/// <summary>
/// Gets a value indicating the precise state of the door, from <c>0-1</c>. A value of <c>0</c> indicates the door is fully closed, while a value of <c>1</c> indicates the door is fully open. Values in-between represent the door's animation progress.
Expand Down
2 changes: 1 addition & 1 deletion Exiled.API/Features/Doors/Gate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public Gate(PryableDoor door, List<Room> room)
/// <summary>
/// Gets a value indicating whether the door is fully open.
/// </summary>
public override bool IsFullyOpen => base.IsFullyOpen;
public override bool IsFullyOpen => base.IsFullyOpen || (Base is Timed173PryableDoor && ExactState is 0.5845918f);

/// <summary>
/// Gets a value indicating whether or not the door is currently moving.
Expand Down
14 changes: 11 additions & 3 deletions Exiled.API/Features/Map.cs
Original file line number Diff line number Diff line change
Expand Up @@ -369,10 +369,18 @@ public static void Explode(Vector3 position, ProjectileType projectileType, Play
attacker ??= Server.Host;
if (!InventoryItemLoader.TryGetItem(item, out ThrowableItem throwableItem))
return;
ExplosionUtils.ServerSpawnEffect(position, item);

if (throwableItem.Projectile is ExplosionGrenade explosionGrenade)
ExplosionGrenade.Explode(attacker.Footprint, position, explosionGrenade);
if (Object.Instantiate(throwableItem.Projectile) is not TimeGrenade timedGrenadePickup)
return;

if (timedGrenadePickup is Scp018Projectile scp018Projectile)
scp018Projectile.SetupModule();
else
ExplodeEffect(position, projectileType);

timedGrenadePickup.Position = position;
timedGrenadePickup.PreviousOwner = (attacker ?? Server.Host).Footprint;
timedGrenadePickup.ServerFuseEnd();
}

/// <summary>
Expand Down
23 changes: 20 additions & 3 deletions Exiled.API/Features/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1425,6 +1425,24 @@ public static Player Get(string args)
/// <returns>A boolean indicating whether or not a player was found.</returns>
public static bool TryGet(Collider collider, out Player player) => (player = Get(collider)) is not null;

/// <summary>
/// Gets an <see cref="IEnumerable{Player}"/> containing all players processed based on the arguments specified.
/// </summary>
/// <param name="args">The array segment of strings representing the input arguments to be processed.</param>
/// <param name="startIndex">The starting index within the array segment.</param>
/// <param name="newargs">Contains the updated arguments after processing.</param>
/// <param name="keepEmptyEntries">Determines whether empty entries should be kept in the result.</param>
/// <returns>An <see cref="IEnumerable{Player}"/> representing the processed players.</returns>
public static IEnumerable<Player> GetProcessedData(ArraySegment<string> args, int startIndex, out string[] newargs, bool keepEmptyEntries = false) => RAUtils.ProcessPlayerIdOrNamesList(args, startIndex, out newargs, keepEmptyEntries).Select(hub => Get(hub));

/// <summary>
/// Gets an <see cref="IEnumerable{Player}"/> containing all players processed based on the arguments specified.
/// </summary>
/// <param name="args">The array segment of strings representing the input arguments to be processed.</param>
/// <param name="startIndex">The starting index within the array segment.</param>
/// <returns>An <see cref="IEnumerable{Player}"/> representing the processed players.</returns>
public static IEnumerable<Player> GetProcessedData(ArraySegment<string> args, int startIndex = 0) => GetProcessedData(args, startIndex, out string[] _);

/// <summary>
/// Adds a player's UserId to the list of reserved slots.
/// </summary>
Expand Down Expand Up @@ -1947,7 +1965,8 @@ public bool RemoveItem(Item item, bool destroy = true)
Inventory.NetworkCurItem = ItemIdentifier.None;

Inventory.UserInventory.Items.Remove(item.Serial);
ItemsValue.Remove(item);
typeof(InventoryExtensions).InvokeStaticEvent(nameof(InventoryExtensions.OnItemRemoved), new object[] { ReferenceHub, item.Base, null });

Inventory.SendItemsNextFrame = true;
}

Expand Down Expand Up @@ -2572,8 +2591,6 @@ public Item AddItem(ItemBase itemBase, Item item = null)

typeof(InventoryExtensions).InvokeStaticEvent(nameof(InventoryExtensions.OnItemAdded), new object[] { ReferenceHub, itemBase, null });

ItemsValue.Add(item);

Inventory.SendItemsNextFrame = true;
return item;
}
Expand Down
14 changes: 9 additions & 5 deletions Exiled.API/Features/Roles/Scp106Role.cs
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,6 @@ public bool SinkholeState
/// </summary>
internal float VigorRegeneration { get; } = Scp106StalkAbility.VigorRegeneration;

/// <summary>
/// Gets or sets how mush damage Scp106 will dealt when attacking a player.
/// </summary>
internal float AttackDamage { get; } = Scp106Attack.AttackDamage;

/// <summary>
/// Gets or sets the duration of Corroding effect.
/// </summary>
Expand All @@ -231,6 +226,15 @@ public bool SinkholeState
internal float HuntersAtlasCostPerMeter { get; } = Scp106HuntersAtlasAbility.CostPerMeter;
#pragma warning restore SA1623 // Property summary documentation should match accessors

/// <summary>
/// Gets or sets how mush damage Scp106 will dealt when attacking a player.
/// </summary>
public int AttackDamage
{
get => Attack._damage;
set => Attack._damage = value;
}

/// <summary>
/// Gets or sets the amount of time in between player captures.
/// </summary>
Expand Down
80 changes: 54 additions & 26 deletions Exiled.API/Features/Toys/Primitive.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,12 @@ namespace Exiled.API.Features.Toys
/// </summary>
public class Primitive : AdminToy, IWrapper<PrimitiveObjectToy>
{
private bool collidable = true;

/// <summary>
/// Initializes a new instance of the <see cref="Primitive"/> class.
/// </summary>
/// <param name="toyAdminToyBase">The <see cref="PrimitiveObjectToy"/> of the toy.</param>
internal Primitive(PrimitiveObjectToy toyAdminToyBase)
: base(toyAdminToyBase, AdminToyType.PrimitiveObject)
{
Base = toyAdminToyBase;

Vector3 scale = Base.transform.localScale;
collidable = scale.x > 0f || scale.y > 0f || scale.z > 0f;
}
: base(toyAdminToyBase, AdminToyType.PrimitiveObject) => Base = toyAdminToyBase;

/// <summary>
/// Gets the base <see cref="PrimitiveObjectToy"/>.
Expand Down Expand Up @@ -67,13 +59,27 @@ public Color Color
/// </summary>
public bool Collidable
{
get => collidable;
set
{
collidable = value;
RefreshCollidable();
}
}
get => Flags.HasFlag(PrimitiveFlags.Collidable);
set => Flags = value ? (Flags | PrimitiveFlags.Collidable) : (Flags & ~PrimitiveFlags.Collidable);
}

/// <summary>
/// Gets or sets a value indicating whether the primitive is visible.
/// </summary>
public bool Visible
{
get => Flags.HasFlag(PrimitiveFlags.Visible);
set => Flags = value ? (Flags | PrimitiveFlags.Visible) : (Flags & ~PrimitiveFlags.Visible);
}

/// <summary>
/// Gets or sets the primitive flags.
/// </summary>
public PrimitiveFlags Flags
{
get => Base.NetworkPrimitiveFlags;
set => Base.NetworkPrimitiveFlags = value;
}

/// <summary>
/// Creates a new <see cref="Primitive"/>.
Expand Down Expand Up @@ -149,6 +155,36 @@ public static Primitive Create(PrimitiveType primitiveType /*= PrimitiveType.Sph
primitive.Base.NetworkPrimitiveType = primitiveType;
primitive.Color = color ?? Color.gray;

return primitive;
}

/// <summary>
/// Creates a new <see cref="Primitive"/>.
/// </summary>
/// <param name="primitiveType">The type of primitive to spawn.</param>
/// <param name="flags">The primitive flags.</param>
/// <param name="position">The position of the <see cref="Primitive"/>.</param>
/// <param name="rotation">The rotation of the <see cref="Primitive"/>.</param>
/// <param name="scale">The scale of the <see cref="Primitive"/>.</param>
/// <param name="spawn">Whether or not the <see cref="Primitive"/> should be initially spawned.</param>
/// <param name="color">The color of the <see cref="Primitive"/>.</param>
/// <returns>The new <see cref="Primitive"/>.</returns>
public static Primitive Create(PrimitiveType primitiveType /*= PrimitiveType.Sphere*/, PrimitiveFlags flags, Vector3? position /*= null*/, Vector3? rotation /*= null*/, Vector3? scale /*= null*/, bool spawn /*= true*/, Color? color /*= null*/)
{
Primitive primitive = new(Object.Instantiate(ToysHelper.PrimitiveBaseObject));

primitive.AdminToyBase.transform.position = position ?? Vector3.zero;
primitive.AdminToyBase.transform.eulerAngles = rotation ?? Vector3.zero;
primitive.AdminToyBase.transform.localScale = scale ?? Vector3.one;
primitive.Flags = flags;

if (spawn)
primitive.Spawn();

primitive.AdminToyBase.NetworkScale = primitive.AdminToyBase.transform.localScale;
primitive.Base.NetworkPrimitiveType = primitiveType;
primitive.Color = color ?? Color.gray;

return primitive;
}

Expand All @@ -164,13 +200,15 @@ public static Primitive Create(PrimitiveSettings primitiveSettings)
primitive.AdminToyBase.transform.position = primitiveSettings.Position;
primitive.AdminToyBase.transform.eulerAngles = primitiveSettings.Rotation;
primitive.AdminToyBase.transform.localScale = primitiveSettings.Scale;
primitive.Flags = primitiveSettings.Flags;

if (primitiveSettings.Spawn)
primitive.Spawn();

primitive.AdminToyBase.NetworkScale = primitive.AdminToyBase.transform.localScale;
primitive.Base.NetworkPrimitiveType = primitiveSettings.PrimitiveType;
primitive.Color = primitiveSettings.Color;
primitive.IsStatic = primitiveSettings.IsStatic;

return primitive;
}
Expand All @@ -185,15 +223,5 @@ public static Primitive Get(PrimitiveObjectToy primitiveObjectToy)
AdminToy adminToy = Map.Toys.FirstOrDefault(x => x.AdminToyBase == primitiveObjectToy);
return adminToy is not null ? adminToy as Primitive : new Primitive(primitiveObjectToy);
}

private void RefreshCollidable()
{
UnSpawn();

Vector3 scale = Scale;
Base.transform.localScale = Collidable ? new Vector3(Math.Abs(scale.x), Math.Abs(scale.y), Math.Abs(scale.z)) : new Vector3(-Math.Abs(scale.x), -Math.Abs(scale.y), -Math.Abs(scale.z));

Spawn();
}
}
}

0 comments on commit bacfde4

Please sign in to comment.