diff --git a/Minecraft-Realms-Emulator/Controllers/InvitesController.cs b/Minecraft-Realms-Emulator/Controllers/InvitesController.cs index 3fafc6e..38320e9 100644 --- a/Minecraft-Realms-Emulator/Controllers/InvitesController.cs +++ b/Minecraft-Realms-Emulator/Controllers/InvitesController.cs @@ -2,7 +2,6 @@ using Microsoft.EntityFrameworkCore; using Minecraft_Realms_Emulator.Data; using Minecraft_Realms_Emulator.Entities; -using Minecraft_Realms_Emulator.Migrations; using Minecraft_Realms_Emulator.Responses; namespace Minecraft_Realms_Emulator.Controllers diff --git a/Minecraft-Realms-Emulator/Controllers/OpsController.cs b/Minecraft-Realms-Emulator/Controllers/OpsController.cs new file mode 100644 index 0000000..6d56073 --- /dev/null +++ b/Minecraft-Realms-Emulator/Controllers/OpsController.cs @@ -0,0 +1,75 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Minecraft_Realms_Emulator.Data; +using Minecraft_Realms_Emulator.Responses; + +namespace Minecraft_Realms_Emulator.Controllers +{ + [Route("[controller]")] + [ApiController] + public class OpsController : ControllerBase + { + private readonly DataContext _context; + + public OpsController(DataContext context) + { + _context = context; + } + + [HttpPost("{wId}/{uuid}")] + public ActionResult OpPlayer(int wId, string uuid) + { + var ops = _context.Players.Where(p => p.World.Id == wId && p.Operator == true).ToList(); + var player = _context.Players.Where(p => p.World.Id == wId).FirstOrDefault(p => p.Uuid == uuid); + + List opNames = []; + + foreach (var op in ops) + { + opNames.Add(op.Name); + } + + player.Permission = "OPERATOR"; + player.Operator = true; + + _context.SaveChanges(); + + opNames.Add(player.Name); + + var opsResponse = new OpsResponse + { + Ops = opNames + }; + + return Ok(opsResponse); + } + + [HttpDelete("{wId}/{uuid}")] + public ActionResult DeopPlayer(int wId, string uuid) + { + var ops = _context.Players.Where(p => p.World.Id == wId && p.Operator == true).ToList(); + var player = _context.Players.Where(p => p.World.Id == wId).FirstOrDefault(p => p.Uuid == uuid); + + List opNames = []; + + foreach (var op in ops) + { + opNames.Add(op.Name); + } + + player.Permission = "MEMBER"; + player.Operator = false; + + _context.SaveChanges(); + + opNames.Remove(player.Name); + + var opsResponse = new OpsResponse + { + Ops = opNames + }; + + return Ok(opsResponse); + } + } +} diff --git a/Minecraft-Realms-Emulator/Responses/OpsResponse.cs b/Minecraft-Realms-Emulator/Responses/OpsResponse.cs new file mode 100644 index 0000000..48e5827 --- /dev/null +++ b/Minecraft-Realms-Emulator/Responses/OpsResponse.cs @@ -0,0 +1,7 @@ +namespace Minecraft_Realms_Emulator.Responses +{ + public class OpsResponse + { + public List Ops { get; set; } + } +}