Я работаю над Discord Bot, который позволит модераторам отзывать юзабилити функции (бросок костей). Моя цель состояла в том, чтобы иметь это, где, если bool a = true; roll the dice
. bool a = false; deny
. Модераторы могут изменить bool с помощью отдельной функции, в которой они могут изменить логическое значение a и оставить его таким.
Я пытался присвоить логическое значение отдельному классу и использовать get и set, но значение либо не меняется, либо сразу возвращается обратно.
[Command("diceRoll")]
[Summary("Turns on/off the ability to use the Dice Roll function")]
public async Task DiceRoll(string toggle)
{
switch (toggle)
{
case "on":
case "On":
case "ON":
diceToggle.DiceBool = true;
await Context.Channel.SendMessageAsync("Dice Roll Function: ON");
break;
case "off":
case "Off":
case "OFF":
diceToggle.DiceBool = false;
await Context.Channel.SendMessageAsync("Dice Roll Function: OFF");
break;
default:
await Context.Channel.SendMessageAsync("Dice Roll Function: ERROR");
break;
}
}
[Command("roll")]
[Summary("Dice Roll")]
public async Task Dice(int number)
{
if (diceToggle.DiceBool == true)
{
int randNumber = rand.Next(1, number);
if (randNumber == 8 || randNumber == 11 || randNumber == 18)
{ await Context.Channel.SendMessageAsync("You rolled an " + randNumber + "."); }
else
{ await Context.Channel.SendMessageAsync("You rolled a " + randNumber + "."); }
}
else if (diceToggle.DiceBool == false)
{
await Context.Channel.SendMessageAsync("This feature has been disabled.");
}
else
{
await Context.Channel.SendMessageAsync("Something broke, please fix.");
}
}
}
public class Game
{
private bool diceBool;
public bool DiceBool
{
get { return diceBool; }
set
{
if (diceBool != value)
{
diceBool = value;
}
}
}
}
Я ожидаю, что при вызове команды "diceRoll on / off" команда "roll" перестанет работать или снова заработает. В настоящее время команда вызывается, но логическое значение не изменяется или не изменяется.