Для правильной системы битовых флагов любая маска корректна. Неиспользуемые биты просто игнорируются.ок, допустим у нас есть флаги дающие корректную битовую маску: a =2, b=4, c=8 как проверить на основании этих флагов корретна ли маска? 6(да - a|b), 5(нет)
/**
* @param int[] $flags ['a' => 1, 'b' => 2, 'c' => 6]
* @param int $flagSum верные суммы: 7(a+c), 3(a+b), 2(b), не верные: 0, 4, 5
*/
function validate(array $flags, int $flagSum): bool
{
$flagSums = [1, 2, 6, ..., 9]; // все возможные суммы флагов которые надо как-то получить
return in_array($flagSum, $flagSums);
}
отличить c от b|c невозможно
/**
* @param int[] $flags ['a' => 1, 'b' => 2, 'c' => 6]
* @param int $flagSum верные суммы: 7(a+c), 3(a+b), 2(b), не верные: 0, 4, 5
*/
function validate(array $flags, int $flagSum): bool
{
$flagSums = [1, 2, 6, ..., 9]; // все возможные суммы флагов которые надо как-то получить
return in_array($flagSum, $flagSums);
}
Возможно это изза моего говно-кодаскорее всего
Discord API состоит из двух отдельных частей: API WebSocket и REST. Вообще говоря, WebSocket API используется для получения событий из Discord в реальном времени, а REST API используется для выполнения действий внутри Discord.т.е. не заточен WebSocket API под отправку сообщений
Через WorkManager время показа уведомления может сдвигаться.c этого момента подробнее