Better handling of parameter casting
This commit is contained in:
parent
4e09fc1de0
commit
349382301e
|
@ -26,6 +26,11 @@ namespace DeukBot4.MessageHandlers.CommandHandler
|
||||||
|
|
||||||
// get the id of the user, this parses the string to an id
|
// get the id of the user, this parses the string to an id
|
||||||
var user = await request.Parameters[0].AsDiscordUser(channel.Guild);
|
var user = await request.Parameters[0].AsDiscordUser(channel.Guild);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
await request.SendMessageAsync("I can't find that user on the server");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// get the permissions of the user we want to kick
|
// get the permissions of the user we want to kick
|
||||||
var userPermissions =
|
var userPermissions =
|
||||||
|
@ -58,6 +63,11 @@ namespace DeukBot4.MessageHandlers.CommandHandler
|
||||||
|
|
||||||
// get the id of the user, this parses the string to an id
|
// get the id of the user, this parses the string to an id
|
||||||
var user = await request.Parameters[0].AsDiscordUser(channel.Guild);
|
var user = await request.Parameters[0].AsDiscordUser(channel.Guild);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
await request.SendMessageAsync("I can't find that user on the server");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// get the permissions of the user we want to kick
|
// get the permissions of the user we want to kick
|
||||||
var userPermissions =
|
var userPermissions =
|
||||||
|
|
|
@ -72,14 +72,15 @@ namespace DeukBot4.MessageHandlers.CommandHandler
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ulong.TryParse(request.Parameters[0].AsString(), out var roleId))
|
var roleId = request.Parameters[0].AsUlong();
|
||||||
|
if (!roleId.HasValue)
|
||||||
{
|
{
|
||||||
await request.SendMessageAsync(
|
await request.SendMessageAsync(
|
||||||
$"You did not give a valid role ID. Use ``!roles`` to list all current server roles, along with their ids");
|
$"You did not give a valid role ID. Use ``!roles`` to list all current server roles, along with their ids");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var role = serverChannel.Guild.GetRole(roleId);
|
var role = serverChannel.Guild.GetRole(roleId.Value);
|
||||||
if (role == null)
|
if (role == null)
|
||||||
{
|
{
|
||||||
await request.SendMessageAsync("No role with that id exists on this server");
|
await request.SendMessageAsync("No role with that id exists on this server");
|
||||||
|
@ -88,8 +89,8 @@ namespace DeukBot4.MessageHandlers.CommandHandler
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await DatabaseRolePermissions.SetRolePermission(serverChannel.GuildId, roleId, permissionLevel);
|
await DatabaseRolePermissions.SetRolePermission(serverChannel.GuildId, roleId.Value, permissionLevel);
|
||||||
PermissionValidator.UpdateCache(serverChannel.GuildId, roleId, permissionLevel);
|
PermissionValidator.UpdateCache(serverChannel.GuildId, roleId.Value, permissionLevel);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,13 +14,13 @@ namespace DeukBot4.MessageHandlers.CommandHandler.RequestStructure
|
||||||
_value = value;
|
_value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int AsInt()
|
public int? AsInt()
|
||||||
{
|
{
|
||||||
if (int.TryParse(_value, out var i))
|
if (int.TryParse(_value, out var i))
|
||||||
{
|
{
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
throw new ArgumentException();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string AsString()
|
public string AsString()
|
||||||
|
@ -28,13 +28,13 @@ namespace DeukBot4.MessageHandlers.CommandHandler.RequestStructure
|
||||||
return _value;
|
return _value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ulong AsUlong()
|
public ulong? AsUlong()
|
||||||
{
|
{
|
||||||
if (ulong.TryParse(_value, out var i))
|
if (ulong.TryParse(_value, out var i))
|
||||||
{
|
{
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
throw new ArgumentException();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IGuildUser> AsDiscordUser(IGuild guild)
|
public async Task<IGuildUser> AsDiscordUser(IGuild guild)
|
||||||
|
|
Loading…
Reference in New Issue