Skip to content

Commit e2e15d3

Browse files
committed
fixed some bugs
1 parent 1f9d909 commit e2e15d3

File tree

3 files changed

+44
-13
lines changed

3 files changed

+44
-13
lines changed

PvPArena/PvpArenaAddon.cs

+22-8
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,37 @@ public class PvpArenaAddon : IHubAddon
88
[AddonConfig("PvPArena")]
99
public HubAddonConfig Config { get; set; }
1010

11+
public void Reload() { }
12+
1113
public void Load()
1214
{
13-
Server.Get.Events.Player.PlayerItemUseEvent += ItemUse;
15+
Server.Get.Events.Player.PlayerShootEvent += Shoot;
16+
Server.Get.Events.Player.PlayerThrowGrenadeEvent += Throw;
17+
Server.Get.Events.Player.PlayerUseMicroEvent += Micro;
1418
}
1519

16-
public void NewRound()
20+
private void Micro(Synapse.Api.Events.SynapseEventArguments.PlayerUseMicroEventArgs ev)
1721
{
18-
foreach (var holder in Config.ItemHolders)
19-
new ItemHolder(holder.Item, holder.Teleporter);
22+
if (!Config.PvpRooms.Contains(ev.Player.Room.RoomType))
23+
ev.State = MicroHID.MicroHidState.Idle;
2024
}
2125

22-
public void Reload() { }
26+
private void Throw(Synapse.Api.Events.SynapseEventArguments.PlayerThrowGrenadeEventArgs ev)
27+
{
28+
if (!Config.PvpRooms.Contains(ev.Player.Room.RoomType))
29+
ev.Allow = false;
30+
}
2331

24-
private void ItemUse(Synapse.Api.Events.SynapseEventArguments.PlayerItemInteractEventArgs ev)
32+
private void Shoot(Synapse.Api.Events.SynapseEventArguments.PlayerShootEventArgs ev)
2533
{
26-
if (Config.PvpRooms.Contains(ev.Player.Room.RoomType))
27-
ev.Allow = true;
34+
if (!Config.PvpRooms.Contains(ev.Player.Room.RoomType))
35+
ev.Allow = false;
36+
}
37+
38+
public void NewRound()
39+
{
40+
foreach (var holder in Config.ItemHolders)
41+
new ItemHolder(holder.Item, holder.Teleporter);
2842
}
2943
}
3044
}

SLHub/CustomPluginConfig.cs

+5-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ public class CustomPluginConfig : IConfigSection
1919
[Description("If players can drop Items")]
2020
public bool AllowDrop { get; set; } = false;
2121

22-
[Description("If players can shoot other players")]
23-
public bool AllowItemUsage { get; set; } = false;
22+
[Description("If Players can Escape")]
23+
public bool AllowEscape { get; set; } = false;
24+
25+
[Description("If Roles should spawn with they Items")]
26+
public bool SpawnWithItems { get; set; } = false;
2427

2528
[Description("If all Doors should be locked")]
2629
public bool LockAllDoors { get; set; } = false;

SLHub/EventHandlers.cs

+17-3
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,18 @@ public EventHandlers(PluginClass pluginClass)
2222

2323
Server.Get.Events.Round.WaitingForPlayersEvent += Waiting;
2424
Server.Get.Events.Player.PlayerDropItemEvent += Drop;
25-
Server.Get.Events.Player.PlayerItemUseEvent += UseItem;
2625
Server.Get.Events.Round.RoundRestartEvent += Restart;
2726
Server.Get.Events.Player.PlayerLeaveEvent += Leave;
2827
Server.Get.Events.Player.PlayerDeathEvent += Death;
28+
Server.Get.Events.Player.PlayerEscapesEvent += Escape;
29+
Server.Get.Events.Player.PlayerSetClassEvent += SetClass;
30+
Server.Get.Events.Player.PlayerDropAmmoEvent += DropAmmo;
31+
}
32+
33+
private void SetClass(Synapse.Api.Events.SynapseEventArguments.PlayerSetClassEventArgs ev)
34+
{
35+
if (!Config.SpawnWithItems)
36+
ev.Items.Clear();
2937
}
3038

3139
public void Reload() => Config = Plugin.SYML.GetOrSetDefault("LobbyConfigs", new CustomPluginConfig());
@@ -45,6 +53,12 @@ private IEnumerator<float> Lobby()
4553
}
4654
}
4755

56+
private void Escape(Synapse.Api.Events.SynapseEventArguments.PlayerEscapeEventArgs ev)
57+
{
58+
if (!Config.AllowEscape)
59+
ev.Allow = false;
60+
}
61+
4862
private void Waiting()
4963
{
5064
Map.Get.Round.RoundLock = true;
@@ -75,9 +89,9 @@ private void Drop(Synapse.Api.Events.SynapseEventArguments.PlayerDropItemEventAr
7589
}
7690
}
7791

78-
private void UseItem(Synapse.Api.Events.SynapseEventArguments.PlayerItemInteractEventArgs ev)
92+
private void DropAmmo(Synapse.Api.Events.SynapseEventArguments.PlayerDropAmmoEventArgs ev)
7993
{
80-
if (!Config.AllowItemUsage)
94+
if (!Config.AllowDrop)
8195
ev.Allow = false;
8296
}
8397

0 commit comments

Comments
 (0)