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

View File

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