1
1
mirror of https://github.com/CyberL1/MyMcRealms.git synced 2025-04-10 18:08:36 -04:00
MyMcRealms/MyMcRealms/Controllers/OpsController.cs

74 lines
2.1 KiB
C#

using Microsoft.AspNetCore.Mvc;
using MyMcRealms.Responses;
using MyMcRealms.Attributes;
namespace MyMcRealms.Controllers
{
[Route("[controller]")]
[ApiController]
[RequireMinecraftCookie]
public class OpsController : ControllerBase
{
[HttpPost("{wId}/{uuid}")]
[CheckRealmOwner]
public async Task<ActionResult<OpsResponse>> OpPlayer(int wId, string uuid)
{
var _api = new MyMcAPI.Wrapper(Environment.GetEnvironmentVariable("MYMC_API_KEY"));
var world = (await _api.GetAllServers()).Servers[wId];
var api = new MyMcAPI.Wrapper(world.OwnersToken);
var whitelist = await api.GetWhitelist();
var ops = whitelist.Ops;
var player = whitelist.Result.Find(p => p.Uuid.Replace("-", "") == uuid);
List<string> opNames = [];
foreach (var op in ops)
{
opNames.Add(op.Name);
}
api.ExecuteCommand($"op {player.Name}");
opNames.Add(player.Name);
var opsResponse = new OpsResponse
{
Ops = opNames
};
return Ok(opsResponse);
}
[HttpDelete("{wId}/{uuid}")]
[CheckRealmOwner]
public async Task<ActionResult<OpsResponse>> DeopPlayerAsync(int wId, string uuid)
{
var _api = new MyMcAPI.Wrapper(Environment.GetEnvironmentVariable("MYMC_API_KEY"));
var world = (await _api.GetAllServers()).Servers[wId];
var api = new MyMcAPI.Wrapper(world.OwnersToken);
var whitelist = await api.GetWhitelist();
var ops = whitelist.Ops;
var player = whitelist.Result.Find(p => p.Uuid.Replace("-", "") == uuid);
List<string> opNames = [];
foreach (var op in ops)
{
opNames.Add(op.Name);
}
api.ExecuteCommand($"deop {player.Name}");
opNames.Remove(player.Name);
var opsResponse = new OpsResponse
{
Ops = opNames
};
return Ok(opsResponse);
}
}
}