mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-07-25 06:31:30 +00:00
Implement in-game and website notifications (#932)
* Implement notifications logic, basic calls, and admin command * Remove unnecessary code * Add ability to stack notifications and return manually created XML * Remove test that is no longer needed and is causing failures * Apply suggestions from code review * Merge notifications with existing announcements page * Order notifications by descending ID instead of ascending ID * Move notification send task to moderation options under user Also restyles the buttons to line up next to each other like in the slot pages. * Style/position fixes with granted slots/notification partials * Fix incorrect form POST route * Prevent notification text area from breaking out of container * Actually use builder result for notification text * Minor restructuring of the notifications page * Add notifications for team picks, publish issues, and moderation * Mark notifications as dismissed instead of deleting them * Add XMLdoc to SendNotification method * Fix incorrect URL in announcements webhook * Remove unnecessary inline style from granted slots partial * Apply suggestions from code review * Apply first batch of suggestions from code review * Apply second batch of suggestions from code review * Change notification icon depending on if user has unread notifications * Show unread notification icon if there is an announcement posted * Remove "potential" wording from definitive fixes in error docs * Remove "Error code:" from publish notifications * Send notification if user tries to unlock a mod-locked level * Change notification timestamp format to include date * Add clarification to level mod-lock notification message * Change team pick notifications to moderation notifications Apparently the MMPick type doesn't show a visual notification. * Apply suggestions from code review * Add obsolete to notification types that display nothing in-game * Remove unused imports and remove icon switch case in favor of bell icon * Last minute fixes * Send notification upon earth wipe and clarify moderation case notifications * Add check for empty/too long notification text
This commit is contained in:
parent
98b370b106
commit
aea66b4a74
33 changed files with 712 additions and 199 deletions
|
@ -32,7 +32,7 @@ public class AdminUserController : ControllerBase
|
|||
|
||||
UserEntity? targetedUser = await this.database.Users.FirstOrDefaultAsync(u => u.UserId == id);
|
||||
if (targetedUser == null) return this.NotFound();
|
||||
|
||||
|
||||
string[] hashes = {
|
||||
targetedUser.PlanetHashLBP2,
|
||||
targetedUser.PlanetHashLBP3,
|
||||
|
@ -44,7 +44,7 @@ public class AdminUserController : ControllerBase
|
|||
{
|
||||
// Don't try to remove empty hashes. That's a horrible idea.
|
||||
if (string.IsNullOrWhiteSpace(hash)) continue;
|
||||
|
||||
|
||||
// Find users with a matching hash
|
||||
List<UserEntity> users = await this.database.Users
|
||||
.Where(u => u.PlanetHashLBP2 == hash ||
|
||||
|
@ -54,7 +54,7 @@ public class AdminUserController : ControllerBase
|
|||
|
||||
// We should match at least the targeted user...
|
||||
System.Diagnostics.Debug.Assert(users.Count != 0);
|
||||
|
||||
|
||||
// Reset each users' hash.
|
||||
foreach (UserEntity userWithPlanet in users)
|
||||
{
|
||||
|
@ -63,7 +63,7 @@ public class AdminUserController : ControllerBase
|
|||
userWithPlanet.PlanetHashLBPVita = "";
|
||||
Logger.Success($"Deleted planets for {userWithPlanet.Username} (id:{userWithPlanet.UserId})", LogArea.Admin);
|
||||
}
|
||||
|
||||
|
||||
// And finally, attempt to remove the resource from the filesystem. We don't want that taking up space.
|
||||
try
|
||||
{
|
||||
|
@ -82,7 +82,10 @@ public class AdminUserController : ControllerBase
|
|||
Logger.Error($"Failed to delete planet resource {hash}\n{e}", LogArea.Admin);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
await this.database.SendNotification(targetedUser.UserId,
|
||||
"Your earth decorations have been reset by a moderator.");
|
||||
|
||||
await this.database.SaveChangesAsync();
|
||||
|
||||
return this.Redirect($"/user/{targetedUser.UserId}");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue