Added /invite Command, removed some unnecessary debug lines
This commit is contained in:
@@ -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,16 +883,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)
|
||||
@@ -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;
|
||||
|
||||
@@ -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
52
Server/Commands/User.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user