Hey,
das hier ist meine User Klasse:
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[StringLength(32)]
public string Name { get; set; }
[StringLength(32)]
public string SocialClubName { get; set; }
[StringLength(64)]
public string Password { get; set; }
[Timestamp]
public byte[] RegistrationDate { get; set; }
[EmailAddress]
[StringLength(64)]
public string Email { get; set; }
public AdminLevel AdminLevel { get; set; }
public Faction Faction { get; set; }
}
Alles anzeigen
Faction Klasse:
public class Faction
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[StringLength(32)]
public string Name { get; set; }
public int BankAccount { get; set; }
public bool StateOwned { get; set; }
}
Beim Starten ist der Wert der Fraktion gesetzt:
[ServerEvent(Event.ResourceStart)]
public void OnResourceStart()
{
using (var context = new DatabaseContext())
{
foreach (Faction f in context.Factions)
{
NAPI.Util.ConsoleOutput(f.Name);
}
foreach(User u in context.Users.Include(x => x.Faction))
{
Faction f = u.Faction;
NAPI.Util.ConsoleOutput("User: " + u.Name + " | Faction: " + (f == null ? "null" : f.Name));
}
}
}
Alles anzeigen
Im Command ist die Fraktion null:
[Command("f", "~m~Benutzung: ~s~/f [Nachricht]", GreedyArg = true)]
public void CmdFactionF(Client player, string message)
{
User u = player.GetUser();
if(u.Faction == null)
{
ChatService.NotAuthorized(player);
return;
}
string broadcastMessage = "** " + player.Name + ": " + message + " )) **";
ChatService.BroadcastFaction(broadcastMessage, u.Faction);
}
Alles anzeigen
Habe jetzt auch einen Befehl, um dem Spieler eine Fraktion zu setzen. Die Fraktion ist danach immer noch null.
[Command("ainvite", "~m~Benutzung: ~s~/ainvite [Name] [Fraktion]")]
public void CmdAdminAinvite(Client player, string name, int faction)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(player);
return;
}
using (var dbContext = new DatabaseContext())
{
Entities.Faction f = dbContext.Factions.FirstOrDefault(x => x.Id == faction);
if(f == null)
{
player.SendChatMessage("~r~[FEHLER]~s~ Diese Fraktion existiert nicht (Liste: ~m~/factionlist).");
return;
}
target.GetUser(dbContext).Faction = f;
dbContext.SaveChanges();
player.SendChatMessage("~b~[ADMIN]~y~ " + player.Name + "~s~ hat den Spieler ~y~" + target.Name + "~s~ administrativ in die Fraktion ~o~" + f.Name + "~s~ eingeladen.");
target.SendChatMessage("~b~[ADMIN]~y~ Du wurdest von ~y~" + player.Name + "~s~ administrativ in die Fraktion ~o~" + f.Name + "~s~ eingeladen.");
}
}
Alles anzeigen