Admin menu: make admin / remove admin for players on dedicated servers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -561,6 +561,18 @@ namespace MSCO
|
|||||||
SendGame(MsgType.Chat, NetSession.Build(w => w.Write("* " + text)));
|
SendGame(MsgType.Chat, NetSession.Build(w => w.Write("* " + text)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Admin (dedizierter Server): einem Spieler Admin-Rechte geben (9) bzw. nehmen (10).</summary>
|
||||||
|
public void SetAdmin(int playerId, bool admin)
|
||||||
|
{
|
||||||
|
if (session == null || !dedicated) return;
|
||||||
|
session.SendTo(NetSession.HostId, MsgType.AdminAction, NetSession.Build(w =>
|
||||||
|
{
|
||||||
|
w.Write((byte)(admin ? 9 : 10));
|
||||||
|
w.Write(playerId);
|
||||||
|
w.Write("");
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
public void AdminAction(bool ban, int playerId, string reason)
|
public void AdminAction(bool ban, int playerId, string reason)
|
||||||
{
|
{
|
||||||
if (session == null) return;
|
if (session == null) return;
|
||||||
|
|||||||
@@ -355,6 +355,14 @@ namespace MSCO
|
|||||||
if (GUILayout.Button("BRING", secondary, GUILayout.Height(30), GUILayout.Width(70))) mp.BringPlayer(p.Id);
|
if (GUILayout.Button("BRING", secondary, GUILayout.Height(30), GUILayout.Width(70))) mp.BringPlayer(p.Id);
|
||||||
GUILayout.Space(12);
|
GUILayout.Space(12);
|
||||||
}
|
}
|
||||||
|
if (mp.IsDedicated)
|
||||||
|
{
|
||||||
|
// Admin geben/nehmen (braucht Steam; der Server meldet, wenn es nicht geht)
|
||||||
|
GUI.enabled = !self;
|
||||||
|
if (GUILayout.Button(p.IsAdmin ? "REMOVE ADMIN" : "MAKE ADMIN", secondary, GUILayout.Height(30), GUILayout.Width(120)))
|
||||||
|
mp.SetAdmin(p.Id, !p.IsAdmin);
|
||||||
|
GUILayout.Space(12);
|
||||||
|
}
|
||||||
GUI.enabled = !self && !p.IsAdmin;
|
GUI.enabled = !self && !p.IsAdmin;
|
||||||
if (GUILayout.Button("KICK", secondary, GUILayout.Height(30), GUILayout.Width(70)))
|
if (GUILayout.Button("KICK", secondary, GUILayout.Height(30), GUILayout.Width(70)))
|
||||||
mp.AdminAction(false, p.Id, adminReason);
|
mp.AdminAction(false, p.Id, adminReason);
|
||||||
|
|||||||
Reference in New Issue
Block a user