Fixed Gruppensystem / immer noch ohne Memberliste
This commit is contained in:
@@ -335,19 +335,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("CLIENT:InteractionMenu_MakeLeader")]
|
||||
public void InteractionMenuGroupMakeLeader(Player player, string type, string name)
|
||||
{
|
||||
Player target = PlayerService.GetPlayerByNameOrId(name);
|
||||
User targetUser = target.GetUser();
|
||||
User playerUser = player.GetUser();
|
||||
|
||||
if (type == "Gruppe")
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User targetUser = dbContext.Users.FirstOrDefault(u => u.Name == name);
|
||||
User playerUser = player.GetUser();
|
||||
|
||||
if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetUser?.Group.Id != playerUser?.Group.Id)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Dieser Spieler ist nicht in deiner Gruppe");
|
||||
@@ -356,12 +351,12 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
if (player.Name == name)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Du bist schon Leader! Was willst du noch?");
|
||||
ChatService.ErrorMessage(player, "Du bist schon Leader");
|
||||
return;
|
||||
}
|
||||
|
||||
ChatService.BroadcastGroup("~y~" + targetUser.Name + " ~s~ist jetzt neuer Gruppen-Manager.", playerUser.Group);
|
||||
ChatService.SendMessage(targetUser.Player, "~y~Du bist jetzt Manager deiner Gruppe.");
|
||||
ChatService.BroadcastGroup("~y~" + targetUser.Name + " ~s~ist jetzt neuer Gruppen-Manager", playerUser.Group);
|
||||
ChatService.SendMessage(targetUser.Player, "~y~Du bist jetzt Manager deiner Gruppe");
|
||||
targetUser.GroupRank = GroupRank.MANAGER;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
@@ -372,11 +367,12 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("CLIENT:InteractionMenu_LeaveGroup")]
|
||||
public void InteractionMenuGroupLeageGroup(Player player, string type)
|
||||
{
|
||||
|
||||
if (type == "Gruppe")
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User playerUser = player.GetUser();
|
||||
User playerUser = player.GetUser(dbContext);
|
||||
|
||||
if (playerUser?.Group == null)
|
||||
{
|
||||
@@ -390,17 +386,20 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
var group = player.GetUser().Group;
|
||||
|
||||
if(playerUser.GroupRank == GroupRank.OWNER)
|
||||
{
|
||||
var memberList = dbContext.Users.ToList().Where(u => u.Group == playerUser.Group && u.GroupRank < GroupRank.OWNER);
|
||||
var newOwner = dbContext.Users.GroupBy(x => x.GroupRank).Select(g => g.OrderByDescending(x => x.GroupRank).FirstOrDefault());
|
||||
var memberList = dbContext.Users.Where(u => u.Group == playerUser.Group && u.GroupRank < GroupRank.OWNER).ToList();
|
||||
var newOwner = memberList.OrderByDescending(c => c.GroupRank).First();
|
||||
|
||||
newOwner.FirstOrDefault().GroupRank = GroupRank.OWNER;
|
||||
ChatService.BroadcastGroup("~y~" + player.Name + "~s~ wurde zum neuen Owner ernannt.", playerUser.Group);
|
||||
newOwner.GroupRank = GroupRank.OWNER;
|
||||
ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Owner ernannt", playerUser.Group);
|
||||
}
|
||||
ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen.",playerUser.Group);
|
||||
playerUser.Group = null;
|
||||
|
||||
playerUser.GroupRank = GroupRank.NONE;
|
||||
playerUser.Group = null;
|
||||
ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen", group);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -409,28 +408,25 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("CLIENT:InteractionMenu_DeleteGroup")]
|
||||
public void InteractionMenuGroupDeleteGroup(Player player, string type)
|
||||
{
|
||||
User playerUser = player.GetUser();
|
||||
if (type == "Gruppe")
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User playerUser = player.GetUser();
|
||||
|
||||
{
|
||||
if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
var memberList = dbContext.Users.ToList().Where(u => u.Group == playerUser.Group);
|
||||
|
||||
var deletedGroup = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id);
|
||||
foreach (var user in memberList)
|
||||
|
||||
foreach (var user in dbContext.Users.Where(u => u.Group == playerUser.Group).ToList())
|
||||
{
|
||||
var groupName = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id);
|
||||
user.Group = null;
|
||||
user.GroupRank = GroupRank.NONE;
|
||||
ChatService.SendMessage(user.Player, "Die Gruppe ~y~" + groupName + "~s~ wurde aufgelöst");
|
||||
ChatService.SendMessage(PlayerService.GetPlayerByNameOrId(user.Name), "Die Gruppe ~y~" + deletedGroup.Name + "~s~ wurde aufgelöst");
|
||||
}
|
||||
|
||||
dbContext.Remove(deletedGroup);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user