Added /invite, removed some unneccessary debug lines

This commit is contained in:
hydrant
2018-10-15 23:25:53 +02:00
parent 9872e38c75
commit a839f1a974
4 changed files with 107 additions and 34 deletions

View File

@@ -166,7 +166,7 @@ namespace reallife_gamemode.Server.Commands
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -187,6 +187,7 @@ namespace reallife_gamemode.Server.Commands
player.SendChatMessage("Position: X Y Z: " + player.Position); player.SendChatMessage("Position: X Y Z: " + player.Position);
} }
[Command("goto", "~m~Benutzung: ~s~/goto [Ort]")] [Command("goto", "~m~Benutzung: ~s~/goto [Ort]")]
public void CmdAdminGotoPoint(Client player, string location) public void CmdAdminGotoPoint(Client player, string location)
{ {
@@ -225,7 +226,7 @@ namespace reallife_gamemode.Server.Commands
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -279,7 +280,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -308,7 +309,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -329,7 +330,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -350,7 +351,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -392,7 +393,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -417,7 +418,7 @@ namespace reallife_gamemode.Server.Commands
return; return;
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -439,6 +440,7 @@ namespace reallife_gamemode.Server.Commands
foreach (var managedClient in peopleInRange) foreach (var managedClient in peopleInRange)
{ {
if (!managedClient.IsLoggedIn()) return;
managedClient.Health = hp; managedClient.Health = hp;
managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt."); managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt.");
} }
@@ -457,6 +459,7 @@ namespace reallife_gamemode.Server.Commands
foreach (var managedClient in peopleInRange) foreach (var managedClient in peopleInRange)
{ {
if (!managedClient.IsLoggedIn()) return;
managedClient.Armor = Armor; managedClient.Armor = Armor;
managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die Rüstung auf " + Armor + " gesetzt."); managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die Rüstung auf " + Armor + " gesetzt.");
} }
@@ -508,6 +511,7 @@ namespace reallife_gamemode.Server.Commands
foreach (var managedClient in peopleInRange) foreach (var managedClient in peopleInRange)
{ {
if (!managedClient.IsLoggedIn()) return;
managedClient.GiveWeapon(wHash, munition); managedClient.GiveWeapon(wHash, munition);
managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " eine/n " + weapon + " mit " + munition + " Munition vergeben."); managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " eine/n " + weapon + " mit " + munition + " Munition vergeben.");
} }
@@ -543,7 +547,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -558,7 +562,7 @@ namespace reallife_gamemode.Server.Commands
return; return;
} }
User u = target.GetUser(dbContext); Entities.User u = target.GetUser(dbContext);
if (faction != 0) if (faction != 0)
{ {
@@ -594,7 +598,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -609,7 +613,7 @@ namespace reallife_gamemode.Server.Commands
return; return;
} }
User u = target.GetUser(dbContext); Entities.User u = target.GetUser(dbContext);
u.FactionId = f.Id; u.FactionId = f.Id;
u.FactionRankId = dbContext.FactionRanks. u.FactionRankId = dbContext.FactionRanks.
@@ -635,7 +639,7 @@ namespace reallife_gamemode.Server.Commands
Client target = ClientService.GetClientByName(user); Client target = ClientService.GetClientByName(user);
if(target == null) if(target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(admin); ChatService.PlayerNotFound(admin);
return; return;
@@ -728,7 +732,7 @@ namespace reallife_gamemode.Server.Commands
return; return;
} }
User user; Entities.User user;
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
@@ -809,12 +813,10 @@ namespace reallife_gamemode.Server.Commands
}; };
string json = JsonConvert.SerializeObject(helper, Formatting.None); string json = JsonConvert.SerializeObject(helper, Formatting.None);
Console.WriteLine(json);
player.TriggerEvent("manageFactionRanks", json); player.TriggerEvent("manageFactionRanks", json);
} }
} }
//TEST COMMAND //TEST COMMAND
[Command("own")] [Command("own")]
public void CmdAdminOwn(Client player) public void CmdAdminOwn(Client player)
@@ -863,17 +865,9 @@ namespace reallife_gamemode.Server.Commands
return; return;
} }
List<Client> playerlist = NAPI.Pools.GetAllPlayers(); ChatService.BroadcastAdmin("~r~Admin " + player.Name + "~w~: " + message, AdminLevel.ADMIN);
foreach (Client currentPlayer in playerlist)
{
if (currentPlayer.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? false)
{
NAPI.Chat.SendChatMessageToPlayer(currentPlayer, "~r~Admin " + NAPI.Player.GetPlayerName(player) + "~w~: " + message);
}
}
} }
[Command("team", "~m~Benutzung: ~s~/team")] [Command("team", "~m~Benutzung: ~s~/team")]
public void CmdAdminTeam(Client player) public void CmdAdminTeam(Client player)
{ {
@@ -945,7 +939,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(targetname); Client target = ClientService.GetClientByName(targetname);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -964,7 +958,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(targetname); Client target = ClientService.GetClientByName(targetname);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -983,7 +977,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(targetname); Client target = ClientService.GetClientByName(targetname);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -1127,7 +1121,7 @@ namespace reallife_gamemode.Server.Commands
return; return;
} }
Client target = ClientService.GetClientByName(name); Client target = ClientService.GetClientByName(name);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
@@ -1163,7 +1157,7 @@ namespace reallife_gamemode.Server.Commands
} }
Client target = ClientService.GetClientByName(targetname); Client target = ClientService.GetClientByName(targetname);
if (target == null) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;

View File

@@ -64,5 +64,36 @@ namespace reallife_gamemode.Server.Commands
ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.StateOwned)); ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.StateOwned));
} }
} }
[Command("invite", "~m~Benutzung: ~s~/invite [Name]")]
public void CmdFactionInvite(Client player, string name)
{
if(player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
if(target.GetUser()?.FactionId != null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist schon in einer Fraktion.");
return;
}
target.SetData("accept_invite", player.Handle);
player.SendChatMessage("!{02FCFF}Du hast dem Spieler " + target.Name + " eine Einladung in deine Fraktion gesendet.");
target.SendChatMessage("!{02FCFF}Du hast von " + player.Name + " eine Einladung in die Fraktion \"" + player.GetUser().GetFaction().Name + "\" erhalten.");
target.SendChatMessage("!{02FCFF}Benutze '/accept invite', um die Einladung anzunehmen");
return;
}
} }
} }

52
Server/Commands/User.cs Normal file
View File

@@ -0,0 +1,52 @@
using GTANetworkAPI;
using reallife_gamemode.Model;
using reallife_gamemode.Server.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace reallife_gamemode.Server.Commands
{
class User : Script
{
[Command("accept", "~m~Benutzung: ~s~/accept [invite]")]
public void CmdUserAccept(Client player, string option)
{
if (!player.IsLoggedIn()) return;
option = option.ToLower();
switch(option)
{
case "invite":
{
if(!player.HasData("accept_invite"))
{
player.SendChatMessage("~r~[FEHLER]~s~ Du hast keine Einladung in eine Fraktion erhalten.");
return;
}
using(var dbContext = new DatabaseContext())
{
Client leader = NAPI.Player.GetPlayerFromHandle((NetHandle)player.GetData("accept_invite"));
Entities.User u = leader.GetUser(dbContext);
Entities.User own = player.GetUser(dbContext);
own.FactionId = u.FactionId;
own.FactionLeader = false;
own.FactionRankId = dbContext.FactionRanks.
OrderBy(x => x.Order)
.FirstOrDefault(r => r.FactionId == own.FactionId)?.Id ?? null;
leader.SendChatMessage("!{02FCFF}" + player.Name + " hat die Einladung angenommen.");
player.SendChatMessage("!{02FCFF}Du hast die Einladung angenommen.");
dbContext.SaveChanges();
}
break;
}
}
}
}
}

View File

@@ -15,7 +15,6 @@ namespace reallife_gamemode.Server.Events
[RemoteEvent("OnFactionRanksEdit")] [RemoteEvent("OnFactionRanksEdit")]
public void OnFactionRanksEdit(Client player, string jsonData) public void OnFactionRanksEdit(Client player, string jsonData)
{ {
Console.WriteLine(jsonData);
FactionRankHelper helper = JsonConvert.DeserializeObject<FactionRankHelper>(jsonData); FactionRankHelper helper = JsonConvert.DeserializeObject<FactionRankHelper>(jsonData);
using(var context = new DatabaseContext()) using(var context = new DatabaseContext())
{ {
@@ -38,7 +37,6 @@ namespace reallife_gamemode.Server.Events
Rank newRank = ranks[i]; Rank newRank = ranks[i];
if(newRank.Id == 0) if(newRank.Id == 0)
{ {
Console.WriteLine("Neuer Rang: " + newRank.Name);
context.FactionRanks.Add(new FactionRank context.FactionRanks.Add(new FactionRank
{ {
RankName = newRank.Name, RankName = newRank.Name,
@@ -49,7 +47,6 @@ namespace reallife_gamemode.Server.Events
else else
{ {
FactionRank factionRank = factionRanks.Find(r => r.Id == newRank.Id); FactionRank factionRank = factionRanks.Find(r => r.Id == newRank.Id);
Console.WriteLine($"Edited Rang: {factionRank.RankName} -> {newRank.Name}");
factionRank.RankName = newRank.Name; factionRank.RankName = newRank.Name;
factionRank.Order = length - i; factionRank.Order = length - i;
found.Add(factionRank.Id); found.Add(factionRank.Id);
@@ -60,7 +57,6 @@ namespace reallife_gamemode.Server.Events
{ {
if(!found.Contains(factionRanks[i].Id)) if(!found.Contains(factionRanks[i].Id))
{ {
Console.WriteLine("removed: " + factionRanks[i].RankName);
context.FactionRanks.Remove(factionRanks[i]); context.FactionRanks.Remove(factionRanks[i]);
} }
} }