Host can ban lobby players from ingame
New menu looks really ugly but it works
This commit is contained in:
@@ -7,7 +7,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
class GameSession
|
class GameSession
|
||||||
{
|
{
|
||||||
public enum InfoFrameTab { Crew, Mission };
|
public enum InfoFrameTab { Crew, Mission, ManagePlayers };
|
||||||
|
|
||||||
public readonly TaskManager TaskManager;
|
public readonly TaskManager TaskManager;
|
||||||
|
|
||||||
@@ -244,6 +244,13 @@ namespace Barotrauma
|
|||||||
missionButton.UserData = InfoFrameTab.Mission;
|
missionButton.UserData = InfoFrameTab.Mission;
|
||||||
missionButton.OnClicked = SelectInfoFrameTab;
|
missionButton.OnClicked = SelectInfoFrameTab;
|
||||||
|
|
||||||
|
if (GameMain.Server != null)
|
||||||
|
{
|
||||||
|
var manageButton = new GUIButton(new Rectangle(200, -30, 100, 20), "Manage players", GUI.Style, infoFrame);
|
||||||
|
manageButton.UserData = InfoFrameTab.ManagePlayers;
|
||||||
|
manageButton.OnClicked = SelectInfoFrameTab;
|
||||||
|
}
|
||||||
|
|
||||||
var closeButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Close", Alignment.BottomCenter, GUI.Style, infoFrame);
|
var closeButton = new GUIButton(new Rectangle(0, 0, 80, 20), "Close", Alignment.BottomCenter, GUI.Style, infoFrame);
|
||||||
closeButton.OnClicked = ToggleInfoFrame;
|
closeButton.OnClicked = ToggleInfoFrame;
|
||||||
|
|
||||||
@@ -263,6 +270,9 @@ namespace Barotrauma
|
|||||||
case InfoFrameTab.Mission:
|
case InfoFrameTab.Mission:
|
||||||
CreateMissionInfo(infoFrame);
|
CreateMissionInfo(infoFrame);
|
||||||
break;
|
break;
|
||||||
|
case InfoFrameTab.ManagePlayers:
|
||||||
|
GameMain.Server.ManagePlayersFrame(infoFrame);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1732,7 +1732,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case NetworkEventType.DropItem:
|
case NetworkEventType.DropItem:
|
||||||
if (GameMain.Server != null)
|
if (GameMain.Server != null)
|
||||||
|
|||||||
@@ -646,5 +646,38 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ManagePlayersFrame(GUIFrame infoFrame)
|
||||||
|
{
|
||||||
|
GUIListBox cList = new GUIListBox(new Rectangle(0, 0, 280, 300), Color.White * 0.7f, GUI.Style, infoFrame);
|
||||||
|
cList.Padding = new Vector4(10.0f, 10.0f, 10.0f, 10.0f);
|
||||||
|
//crewList.OnSelected = SelectCrewCharacter;
|
||||||
|
|
||||||
|
foreach (Client c in ConnectedClients)
|
||||||
|
{
|
||||||
|
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 40), Color.Transparent, null, cList);
|
||||||
|
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
|
||||||
|
frame.Color = (c.inGame && c.Character!=null && !c.Character.IsDead) ? Color.Gold * 0.2f : Color.Transparent;
|
||||||
|
frame.HoverColor = Color.LightGray * 0.5f;
|
||||||
|
frame.SelectedColor = Color.Gold * 0.5f;
|
||||||
|
|
||||||
|
GUITextBlock textBlock = new GUITextBlock(
|
||||||
|
new Rectangle(40, 0, 0, 25),
|
||||||
|
c.name + " (" + c.Connection.RemoteEndPoint.Address.ToString() + ")",
|
||||||
|
Color.Transparent, Color.White,
|
||||||
|
Alignment.Left, Alignment.Left,
|
||||||
|
null, frame);
|
||||||
|
|
||||||
|
var banButton = new GUIButton(new Rectangle(220, 0, 100, 20), "Ban", Alignment.Right | Alignment.CenterY, GUI.Style, frame);
|
||||||
|
banButton.UserData = c.name;
|
||||||
|
banButton.OnClicked += GameMain.NetLobbyScreen.BanPlayer;
|
||||||
|
|
||||||
|
var kickButton = new GUIButton(new Rectangle(110, 0, 100, 20), "Kick", Alignment.Right | Alignment.CenterY, GUI.Style, frame);
|
||||||
|
kickButton.UserData = c.name;
|
||||||
|
kickButton.OnClicked += GameMain.NetLobbyScreen.KickPlayer;
|
||||||
|
|
||||||
|
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user