Added /invite Command, removed some unnecessary debug lines

This commit is contained in:
hydrant
2018-10-15 23:26:56 +02:00
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)
{
@@ -243,7 +244,7 @@ namespace reallife_gamemode.Server.Commands
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -297,7 +298,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -326,7 +327,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -347,7 +348,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -368,7 +369,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -410,7 +411,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -435,7 +436,7 @@ namespace reallife_gamemode.Server.Commands
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -457,6 +458,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.");
}
@@ -475,6 +477,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.");
}
@@ -526,6 +529,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.");
}
@@ -561,7 +565,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -576,7 +580,7 @@ namespace reallife_gamemode.Server.Commands
return;
}
User u = target.GetUser(dbContext);
Entities.User u = target.GetUser(dbContext);
if (faction != 0)
{
@@ -612,7 +616,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -627,7 +631,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.
@@ -653,7 +657,7 @@ namespace reallife_gamemode.Server.Commands
Client target = ClientService.GetClientByName(user);
if(target == null)
if(target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(admin);
return;
@@ -746,7 +750,7 @@ namespace reallife_gamemode.Server.Commands
return;
}
User user;
Entities.User user;
using (var dbContext = new DatabaseContext())
{
@@ -827,12 +831,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)
@@ -881,17 +883,9 @@ 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)
{
@@ -963,7 +957,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(targetname);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -982,7 +976,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(targetname);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -1001,7 +995,7 @@ namespace reallife_gamemode.Server.Commands
}
Client target = ClientService.GetClientByName(targetname);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -1145,7 +1139,7 @@ namespace reallife_gamemode.Server.Commands
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
@@ -1181,7 +1175,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]);
}
}