Skip to content
This repository was archived by the owner on Jan 7, 2025. It is now read-only.

Commit 1e28512

Browse files
committed
uhh, update
1 parent ca696b1 commit 1e28512

File tree

4 files changed

+26
-11
lines changed

4 files changed

+26
-11
lines changed

TestingDummies/Commands/RemoveDummy.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using CommandSystem;
22
using Exiled.API.Features;
3+
using Exiled.Events.EventArgs.Player;
34
using Mirror;
45
using System;
56

@@ -30,11 +31,14 @@ public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out s
3031
}
3132
if(Plugin.Instance.DumRef.Contains(Dummy.ReferenceHub))
3233
{
34+
LeftEventArgs newLeft = new(Dummy);
35+
Exiled.Events.Handlers.Player.OnLeft(newLeft);
3336
Dummy.Disconnect(null);
3437
Player.Dictionary.Remove(Plugin.Instance.spawning.PlayerPrefabs[Dummy]);
3538
Plugin.Instance.DumRef.Remove(Dummy.ReferenceHub);
3639
NetworkServer.DestroyPlayerForConnection(Plugin.Instance.spawning.PlayerConnIDs[Dummy]);
3740
NetworkServer.Destroy(Dummy.GameObject);
41+
3842
response = $"Removed {Dummy.Nickname}!";
3943
return true;
4044
}

TestingDummies/Commands/SpawnDummy.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out s
2626
}
2727
string name = arguments.At(0);
2828
string roleString = arguments.At(1);
29-
Player playerID = Player.Get(arguments.At(2));
29+
Player player = Player.Get(arguments.At(2));
3030
if (!Enum.TryParse(roleString, out RoleTypeId role))
3131
{
3232
response = $"Invalid role: {roleString}";
3333
return false;
3434
}
35-
if (playerID == null)
35+
if (player == null)
3636
{
3737
response = $"Invalid player with the specified ID OR Nickname: {arguments.At(2)}";
3838
return false;
3939
}
40-
MECExtensionMethods1.RunCoroutine(Plugin.Instance.spawning.SpawnDum(name, role, playerID));
41-
response = $"Spawned dummy with name '{name}', role '{role}', for player '{playerID.Nickname}'";
40+
MECExtensionMethods1.RunCoroutine(Plugin.Instance.spawning.SpawnDum(name, role, player));
41+
response = $"Spawned dummy with name '{name}', role '{role}', for player '{player.Nickname}'";
4242
return true;
4343
}
4444

TestingDummies/Plugin.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
using System.Collections.Generic;
55
using TestingDummies.SpawningHandler;
66
using HarmonyLib;
7+
using Exiled.Events.EventArgs.Player;
78

89
namespace TestingDummies
910
{
1011
public class Plugin : Plugin<Config>
1112
{
1213
public static Plugin Instance;
14+
15+
1316
public List<ReferenceHub> DumRef = new();
1417
public Spawn spawning;
1518

@@ -27,27 +30,33 @@ public override void OnEnabled()
2730

2831
Instance = this;
2932
spawning = new Spawn();
30-
3133
_harmony = new("DevDummies-Rotation-Patch");
3234
_harmony.PatchAll();
3335

36+
Exiled.Events.Handlers.Player.Left += Test;
37+
3438
base.OnEnabled();
3539
}
3640

3741
public override void OnDisabled()
3842
{
3943
_harmony.UnpatchAll();
4044
_harmony = null;
41-
4245
Instance = null;
4346
spawning = null;
47+
4448
base.OnDisabled();
4549
}
4650

4751
public static bool IsAI(ReferenceHub hub)
4852
{
4953
bool isDummy = Instance.DumRef.Contains(hub);
5054
return isDummy;
55+
}
56+
57+
public void Test(LeftEventArgs ev)
58+
{
59+
Log.Info($"{ev.Player.Nickname} left the server");
5160
}
5261
}
5362
}

TestingDummies/SpawningHandler/Spawn.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
using System.Collections.Generic;
66
using UnityEngine;
77
using MEC;
8-
using Exiled.API.Features.Pickups;
9-
using System.Linq;
8+
using Exiled.Events.EventArgs.Player;
109

1110
namespace TestingDummies.SpawningHandler
1211
{
@@ -15,13 +14,14 @@ public class Spawn : MonoBehaviour
1514
readonly int IDs = 1000;
1615
public Dictionary<Player, GameObject> PlayerPrefabs = new();
1716
public Dictionary<Player, FakeConnection> PlayerConnIDs = new();
17+
1818
public IEnumerator<float> SpawnDum(string Name, RoleTypeId Role, Player target)
1919
{
2020
GameObject newPlayer = Instantiate(NetworkManager.singleton.playerPrefab);
21-
Player NewPlayer = new(newPlayer);
21+
Player NewPlayer = new(newPlayer);
2222
PlayerPrefabs.Add(NewPlayer, newPlayer);
2323
var fakeConnection = new FakeConnection(IDs + Plugin.Instance.DumRef.Count);
24-
ReferenceHub hubPlayer = newPlayer.GetComponent<ReferenceHub>();
24+
ReferenceHub hubPlayer = NewPlayer.ReferenceHub;
2525
Plugin.Instance.DumRef.Add(hubPlayer);
2626
NetworkServer.AddPlayerForConnection(fakeConnection, newPlayer);
2727
PlayerConnIDs.Add(NewPlayer, fakeConnection);
@@ -33,8 +33,8 @@ public IEnumerator<float> SpawnDum(string Name, RoleTypeId Role, Player target)
3333
{
3434
Log.Debug(e);
3535
}
36-
hubPlayer.enabled = true;
3736
hubPlayer.nicknameSync.Network_myNickSync = $"{Name}-{Plugin.Instance.DumRef.Count}";
37+
hubPlayer.serverRoles.DoNotTrack = true;
3838
Player.Dictionary.Add(newPlayer, NewPlayer);
3939
if (Plugin.Instance.Config.NPCBadgeEnabled)
4040
{
@@ -47,6 +47,8 @@ public IEnumerator<float> SpawnDum(string Name, RoleTypeId Role, Player target)
4747
NewPlayer.Role.Set(Role, Exiled.API.Enums.SpawnReason.ForceClass);
4848
NewPlayer.Position = target.Position;
4949
NewPlayer.SessionVariables.Add("npc", true);
50+
VerifiedEventArgs newVerified = new(NewPlayer);
51+
Exiled.Events.Handlers.Player.OnVerified(newVerified);
5052
yield break;
5153
}
5254
}

0 commit comments

Comments
 (0)