Skip to content

Commit 597cef6

Browse files
authored
fix: Custom Scp127 clipsizes causing desyncs (#599)
* Fix nullability and use proper methods * Made more methods use wrappers
1 parent 9e87dcd commit 597cef6

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

EXILED/Exiled.CustomItems/API/Features/CustomWeapon.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ namespace Exiled.CustomItems.API.Features
1717
using Exiled.API.Features.Items;
1818
using Exiled.API.Features.Pickups;
1919
using Exiled.Events.EventArgs.Player;
20-
using InventorySystem;
2120
using InventorySystem.Items.Firearms.Attachments;
2221
using InventorySystem.Items.Firearms.Attachments.Components;
2322
using InventorySystem.Items.Firearms.Modules;
@@ -214,7 +213,7 @@ private void OnInternalReloading(ReloadingWeaponEventArgs ev)
214213
if (!Check(ev.Player.CurrentItem))
215214
return;
216215

217-
if (ClipSize > 0 && ev.Firearm.Base.GetTotalStoredAmmo() >= ClipSize)
216+
if (ClipSize > 0 && ev.Firearm.TotalAmmo >= ClipSize)
218217
{
219218
ev.IsAllowed = false;
220219
return;
@@ -230,7 +229,7 @@ private void OnInternalReloaded(ReloadedWeaponEventArgs ev)
230229

231230
if (ClipSize > 0)
232231
{
233-
int ammoChambered = ((AutomaticActionModule)ev.Firearm.Base.Modules.FirstOrDefault(x => x is AutomaticActionModule))?.SyncAmmoChambered ?? 0;
232+
int ammoChambered = ((AutomaticActionModule?)ev.Firearm.Base.Modules.FirstOrDefault(x => x is AutomaticActionModule))?.SyncAmmoChambered ?? 0;
234233
int ammoToGive = ClipSize - ammoChambered;
235234

236235
AmmoType ammoType = ev.Firearm.AmmoType;
@@ -241,13 +240,13 @@ private void OnInternalReloaded(ReloadedWeaponEventArgs ev)
241240
if (ammoToGive < ammoInInventory)
242241
{
243242
ev.Firearm.MagazineAmmo = ammoToGive;
244-
int newAmmo = ev.Player.Inventory.GetCurAmmo(ammoType.GetItemType()) + ammoDrop;
245-
ev.Player.Inventory.ServerSetAmmo(ammoType.GetItemType(), newAmmo);
243+
int newAmmo = ev.Player.GetAmmo(ammoType) + ammoDrop;
244+
ev.Player.SetAmmo(ammoType, (ushort)newAmmo);
246245
}
247246
else
248247
{
249248
ev.Firearm.MagazineAmmo = ammoInInventory;
250-
ev.Player.Inventory.ServerSetAmmo(ammoType.GetItemType(), 0);
249+
ev.Player.SetAmmo(ammoType, 0);
251250
}
252251
}
253252

0 commit comments

Comments
 (0)