Skip to content

Latest commit

 

History

History
160 lines (156 loc) · 16.6 KB

Changelog.md

File metadata and controls

160 lines (156 loc) · 16.6 KB

Fixes:

  • [All] A lot of documentation has been updated.
  • [Exiled.API] Fixed a bug that would sometimes cause Room.FlickerableLightController to be null. [#975]
  • [Exiled.API] Fixed a bug that would cause the Room.Doors property to not always contain all the doors connecting to the room. [#975]
  • [Exiled.API] The Player.Hurt methods will now cause cassie to use the DamageHandlerBase.CassieDeathAnnouncement property or the cassieAnnouncement argument if the damage will kill a non-SCP player. [#989]
  • [Exiled.API] The Player.ArtificialHealth and Player.MaxArtificialHealth properties should now function properly. [#1008]
  • [Exiled.API] The Map.Lockers property should no longer fail to contain all lockers on the map. [#1030]
  • [Exiled.API] Fixed Room.TeslaGate being null in rooms it shouldn't be null in. [#1122]
  • [Exiled.API] Fixed the Script property in SCP-related Features.Roles classes sometimes being null. Added the peoperty to SCP classes it was missing from. [#1126]
  • [Exiled.API] Fixed API.Features.TeslaGate.Position always being Vector3.zero. [#1128]
  • [Exiled.API] Room.Players should no longer throw a nullref when a player is not in a room. [#1146]
  • [Exiled.API] Player.Get(string) documentation updated to reflect it can accept the string version of an int to match with player IDs. [#1147]
  • [Exiled.CreditTags] Changed the default value of the ignore_dnt_flag config value to reflect it's documentation. [#1116]
  • [Exiled.CustomRoles] The CustomRole.CustomAbilities property is now checked for null before accessed. [#994]
  • [Exiled.CustomRoles] The CustomRole.CustomAbilities property will now deserialize abilities inheriting the CustomAbility class correctly using the default config deserializer. [#1018]
  • [Exiled.CustomRoles] Fixed the Player.InfoArea.Role value not being set back to visible when removing a CustomRole. [#1117]
  • [Exiled.CustomItems] + [Exiled.CustomRoles] The CustomItem, CustomRole and CustomAbility types can now be registered from existing objects for the purpose of configs. [#1143]
  • [Exiled.CustomItems] + [Exiled.CustomRoles] The CustomWeapon, CustomGrenade, ActiveAbility and PassiveAbility sub-types should now serialize as the correct types. [#1143 & 1142]
  • [Exiled.Example] Fixed all null reference exceptions caused by the bad usage of ?. operator inside all the events. [#815]
  • [Exiled.Events] The Warhead.Starting event will no longer fire twice when triggered by a player. [#1009]
  • [Exiled.Events] The Warhead.Starting event will now correctly include the player causing it when triggered by a command. [#1009]
  • [Exiled.Events] The Warhead commands that can start the warhead will now return Action prevented by a plugin when the Warhead.Starting event is denied via a plugin. [#1009]
  • [Exiled.Events] The server's max respawn wave settings will now be respected by the Server.RespawningTeam event. [#1013]
  • [Exiled.Events] The RemovingHandcuffsEventArgs.Player will now correctly be the player removing the handcuffs. [#1024]
  • [Exiled.Events] Tesla gates will now exit the Idle animation properly. [#1026]
  • [Exiled.Events] Pickups should no longer remain locked indefinitely when PickingUpItemEventArgs.IsAllowed is set to false. [#1029]
  • [Exiled.Events] The EXILED Anti-Backdoor feature will no longer print messages about Exiled.Events changing values if those values were not actually changed by a plugin. [#1050]
  • [Exiled.Events] Added a check to the PlayerHasHint patch to prevent unnecessary nullrefs in the console. [#1055]
  • [Exiled.Events] Fixed the logic check for the InteractingScp330EventArgs.ShouldSever property's value. [#1066]
  • [Exiled.Events] Fixed a player disconnection bug when shooting a Shooting Target in sync mode. [#1077]
  • [Exiled.Events] Fixed improper documentation on several event methods. [#1118, #1120, #1123]
  • [Exiled.Events] Fixed an issue with shotguns not firing the Player.Shot event. [#1131]
  • [Exiled.Events] Corrected an issue with RA command logs being spammed when someone has the RA panel open. [#1133]
  • [Exiled.Events] Fixed an issue that would cause more than the configured max of players to respawn during NTF or CI waves. [#1140]
  • [Exiled.Loader] Fixed the chance of seeing the 'sexiled' message upon server loading. [#1129]

Additions:

  • [Exiled.API] Added the AttachmentIdentifier struct to avoid using the FirearmAttachment class from the base-game API. [#815]
  • [Exiled.API] Added the ItemExtensions::GetAttachments(ItemType, uint) method. [#815]
  • [Exiled.API] Added the ItemExtensions::TryGetAttachments(ItemType, uint, out IEnumerable<AttachmentIdentifier>) method. [#815]
  • [Exiled.API] Added the ItemExtensions::GetAttachmentsCode(IEnumerable<AttachmentIdentifier>) method. [#815]
  • [Exiled.API] Added the ItemExtensions::GetBaseCode(ItemType) method. [#815]
  • [Exiled.API] Added the Firearm::AttachmentIdentifiers property. [#1025]
  • [Exiled.API] Added the Firearm::AddAttachment method. [#815]
  • [Exiled.API] Added the Firearm::RemoveAttachment method. [#815]
  • [Exiled.API] Added the Firearm::ClearAttachments method. [#815]
  • [Exiled.API] Added the Firearm::GetAttachment method. [#815]
  • [Exiled.API] Added the Firearm::TryGetAttachment method. [#815]
  • [Exiled.API] Added the Firearm::AddPreference method. [#815]
  • [Exiled.API] Added the Firearm::RemovePreference method. [#815]
  • [Exiled.API] Added the Firearm::ClearPreferences method. [#815]
  • [Exiled.API] Added the Firearm::AvailableAttachments static property. [#815]
  • [Exiled.API] Added the Firearm::PlayerPreferences static property. [#815]
  • [Exiled.API] Added the Firearm::BaseCode property. [#815]
  • [Exiled.API] Added the Player::Preferences property. [#815]
  • [Exiled.API] Added an overload to Item::Spawn method. [#815]
  • [Exiled.API] Added an overload to Player::AddItem method. [#815]
  • [Exiled.API] Added the Ammo.AmmoLimit property. [#979]
  • [Exiled.API] Added the Item.Category, Item.IsAmmo, Item.IsArmor, Item.IsKeycard, Item.IsMedical, Item.IsScp, Item.IsThrowable, Item.IsUtility and Item.IsWeapon properties. [#979]
  • [Exiled.API] Added the CameraType.Lcz330Hall, CameraType.Lcz330Chamber, DoorType.Scp330, DoorType.Scp330Chamber and RoomType.Lcz330 enum values. [#982]
  • [Exiled.API] Added the Player.TryAddCandy(CandyKindID) method. [#986]
  • [Exiled.API] Added the Player.GetCategoryLimit(ItemCategory) property. [#979]
  • [Exiled.API] Added the Map.GetCameraType(string) method. [#991]
  • [Exiled.API] Added the `Map.GetCameraByName(string) method. [#991]
  • [Exiled.API] Added the Door.Unlock(float, DoorLockType) method. [#1001]
  • [Exiled.API] Added the Door.Lock(float, DoorLockType) method. [#1001]
  • [Exiled.API] Added the Room.RoomIdentifier property. [#1003]
  • [Exiled.API] Added the Room.TeslaGate property. This can be null. [#1003]
  • [Exiled.API] Added the Player.GetModule<T> method. [#1003]
  • [Exiled.API] Added the Log.DebugObject<T>(T, bool) method. [#1003]
  • [Exiled.API] Added the Player.IsInventoryFull property. [#1004]
  • [Exiled.API] Added the Player.AddAhp(float, float, float, float, float, bool) method. [#1010]
  • [Exiled.API] Added the DamageType.IsWeapon(bool), DamageType.IsScp(bool) and DamageType.IsStatusEffect extension methods. [#1011]
  • [Exiled.API] Added the Item.Create(ItemType) method, which always creates and returns the correct subclass type for the given item type. [#1012]
  • [Exiled.API] Added the Player.MakeNoise method. [#1019]
  • [Exiled.API] Added the Cassie.VoiceLines property. [#1020]
  • [Exiled.API] Added the Cassie.IsValid(string) method. [#1020]
  • [Exiled.API] Added an API class for SCP-244, Lifts, Elevators, Tesla Gates, Cameras and Generators. [#1031 & 1038 & 1042 & 1045]
  • [Exiled.API] Added the Player.Reconnect(ushort, float, bool, RoundRestartType) method. [#1056]
  • [Exiled.API] Added the Player.Role property, which is an object unique to each player representing their class. [#1058]
  • [Exiled.API] Added various GameObject properties to API classes, such as Door, Generator, Armor and more. [#1062]
  • [Exiled.API] Added overloads to Log.Info, Log.Warn, Log.Error and Log.Debug that accept a string instead of an object for efficiency. [#1070]
  • [Exiled.API] Added the Log.Assert(bool, object) method. This method can be used to assert that a certain condition MUST be met, and if it is not, it will print a Log.Error message and throw an exception. [#1082]
  • [Exiled.API] Added the Player.Teleport(Vector3), Player.Teleport(object), Player.RandomTeleport(IEnumerable<Type>) and Player.RandomTeleport(Type) methods. [#1125] Read more below
  • [Exiled.API] Added the API.Features.Intercom class. [#1127]
  • [Exiled.API] Added the Server.TPS property. [#1130]
  • [Exiled.API] Added the API.Features.Scp106Container class. [#1135]
  • [Exiled.API] Added the DoorLockType.Lockdown2176 enum, Ragdoll.CreationTime property, Recontainer.BreakGlass() method, Room.GameObject property, Round.AliveSides property, Scp914.GameObject property, Server.LaterJoinEnabled, Server.LaterJoinTime and Server.SpawnProtectTime properties. [#1141]
  • [Exiled.API] Added the Player.Mute, Player.IntercomMute, Player.Unmute and Player.IntercomUnmute methods. The Player.Muted and Player.Unmuted properties are no longer persistant through rounds. [#1144]
  • [Exiled.CustomItems] Added the CustomItem.OnAcquired(Player) method, which is called anytime a player gains the item via any means, which is more reliable than just using CustomItem.OnPickup. [#988]
  • [Exiled.CustomItems] Added the CustomItem.RegisterItems and Customitem.UnregisterItems methods. These will use the new ExiledSerializableAttribute to register/unregister all items in the calling plugin automatically. [#998]
  • [Exiled.CustomItems] Added the CustomItem.Check(Player) overload to check the given player's current item.
  • [Exiled.CustomRoles] Added the CustomRole.CustomInfo property which will be used instead of CustomRole.Name (Custom Role) in the player's custom info. [#966]
  • [Exiled.CustomRoles] Added the CustomRole.RegisterRoles and CustomRole.UnregisterRoles methods. These will use the new ExiledSerializableAttribute to register/unregister all roles in the calling plugin automatically. [#998]
  • [Exiled.CustomRoles] Added the CustomRole.Scale property that will be used to automatically change a player's size when they gain the role. [#1005]
  • [Exiled.Events] Added the Item.ReceivingPreference event. [#815]
  • [Exiled.Events] Added the TriggeringTeslaEventArgs.Tesla and TriggeringTeslaEventArgs.IsInIdleRange properties. [#973]
  • [Exiled.Events] Added the Ragdoll property to both Scp049.StartingRecall and Scp049.FinishingRecall events. [#992]
  • [Exiled.Events] Added the Player.Landing event. [#997]
  • [Exiled.Events] Added the DiedEventArgs.TargetOldRole property. [#1039]
  • [Exiled.Events] Added the Map.BreakingScp2176 event. [#1051]
  • [Exiled.Events] Added the TogglingNoClipEventArgs.IsEnabled property. [#1054]
  • [Exiled.Events] Added the DamagingWindowEventArgs.IsAllowed property. [#1055]
  • [Exiled.Events] The Warhead.ActivatingWarheadPanel event will now fire regardless of the keycard being held by the player. IsAllowed will default to false if they are not using a keycard that can normally activate the panel. [#1115]
  • [Exiled.Example] Added the Attachments property to configs. [#815]
  • [Exiled.Loader] Added the AttachmentIdentifiersConverter class to make the AttachmentIdentifier struct serializable. [#815]

Changes (non-breaking):

  • [Exiled.API] Increased the efficiency of finding doors, cameras and the light controller of rooms when they are cached. [#975]
  • [Exiled.API] The Respawn.NtfTickets and Respawn.ChaosTickets values can now be changed. [#1067]
  • [Exiled.API] Made several optimizations to the Attachments API to reduce server lag. [#1139]
  • [Exiled.Events] The Player.TriggeringTesla event patch is now a transpiler. [#987]
  • [Exiled.Events] The Player.ActivatingWarheadPanel event will now fire even when the player's current keycard does not have permission to unlock it. In this case, ev.IsAllowed will default to false, but can be changed to true to allow access. [#1115]
  • [Exiled.Events] Made several improvements to patches that may help reduce server lag. [#1131]

Changes (breaking):

  • [Exiled.API] Removed the Player.ShotHitMarker method in favor of using Player.ShotHitMarker(float).
  • [Exiled.API] Removed the BarrelType enum. [#815]
  • [Exiled.API] Removed the SightType enum. [#815]
  • [Exiled.API] Removed the OtherType enum. [#815]
  • [Exiled.API] Removed the Modifiers struct. [#815]
  • [Exiled.API] Removed the Player.AddItem(List<T>) method in favor of using Player.AddItem(IEnumerable<T>). [#815]
  • [Exiled.API] Removed the Player.ResetInventory(List<T>) method in favor of using Player.ResetInventory(IEnumerable<T>). [#815]
  • [Exiled.API] Changed the Scp330.AddCandy(CandyKindID) method to Scp330.AddCandy(CandyKindID, out bool). [#979]
  • [Exiled.API] Changed the Scp330.RemoveCandy(CandyKindID, bool) method to Scp330.RemoveCandy(CandyKindID, out int, bool) [#979]
  • [Exiled.API] Changed the order of values and names of many values in Enums.CameraType [#991]
  • [Exiled.API] Removed all Item subclass constructors in favor of using the new Item.Create(ItemType) method. [#1012]
  • [Exiled.API] Changed Cassie.CustomSCPTermination(string, DamageHandlerBase) to Cassie.CustomScpTermination(string, DamageHandler) [#1020]
  • [Exiled.API] Removed all extension classes related to Lifts, Elevators, Tesla Gates, Cameras and Generators. [#1031 & 1038 & 1042]
  • [Exiled.API] Changed the return type of ItemExtensions.GetItemTypes() from a List<ItemType> to IEnumerable<ItemType>. [#1062]
  • [Exiled.API] Changed the Cassie.Message, Cassie.DelayedMessage, MirrorExtensions.PlayCassieAnnouncement methods to include a isSubtitles value. [#1063]
  • [Exiled.API] Changed Player.GetAmmoLimit(ItemType) to Player.GetAmmoLimit(AmmoType). [#1059]
  • [Exiled.API] Many Player properties such as Team, RoleType, Abilities, Speaker, SpectatedPlayer and more have been moved to be contained inside the Player.Role object. [#1058]
  • [Exiled.API] The Room.LightsOff property is now Room.LightsOn and has a setter. [#1106]
  • [Exiled.API] The Player.IsDead property will no longer return true if their role type is None instead of Spectator. [#1134]
  • [Exiled.API] Renamed Round.ForceEnd() to Round.EndRound(bool) [#1136]
  • [Exiled.API] Renamed Round.IsEnding to Round.IsEnded. [#1138]
  • [Exiled.API] Player.Rotations has been removed. The value type of Player.Rotation has been changed to Vector2. [#1165]
  • [Exiled.API] All uses of Scp079Generator in EXILED has been replaced with Exiled.API.Features.Generator.
  • [Exiled.CustomItems] Removed the Modifiers property in favor of using an array of AttachmentNameTranslation. [#815]
  • [Exiled.CustomItems] Removed the CustomItem.TryRegister and CustomItem.TryUnregister methods. [#998]
  • [Exiled.CustomRole] The following properties have been made public, instead of protected, so they can be used as config values: [#994]
    • CustomRole.Inventory
    • CustomRole.SpawnProperties
    • CustomRole.KeepInventoryOnSpawn
    • CustomRole.RemovalKillsPlayer
    • CustomRole.KeepRoleOnDeath
  • [Exiled.CustomRoles] Removed the CustomRole.TryRegister and `CustomRole.TryUnregister methods. [#998]
  • [Exiled.CustomRoles] Renamed the CustomRole.UnSubscribeEvents method to CustomRole.UnsubscribeEvents. [#998]
  • [Exiled.Events] Removed the HurtingEventArgs.DamageHandler property.
  • [Exiled.Events] Removed the DiedEventArgs.DamageHandler property.
  • [Exiled.Events] Removed the DyingEventArgs.DamageHandler property.
  • [Exiled.Events] Removed the AnnouncingScpTerminationEventArgs.DamageHandler property.
  • [Exiled.Events] Removed the ExplodingGrenadeEventArgs.IsFrag property.
  • [Exiled.Events] Removed the Item.ChangingAttributes event. [#815]
  • [Exiled.Events] Re-implemented the Item.ChangingDurability event with new parameters. [#815]
  • [Exiled.Events] Re-implemented the Item.ChangingAttachments event with new parameters. [#815]
  • [Exiled.Events] All events interacting with Lifts, Elevators, Tesla Gates, Cameras and Generators now use the Exiled.API objects in the event, instead of the base-game ones. [#1031 & 1038 & 1042]
  • [Exiled.Events] Removed the Player.SyncingData event. [#1054]