Add a notify websocket event
This commit is contained in:
parent
822094077b
commit
e06c500b5c
2 changed files with 58 additions and 0 deletions
|
|
@ -1,8 +1,10 @@
|
|||
import { localizer } from "../utils/Localizer.mjs";
|
||||
import { Logger } from "../utils/Logger.mjs";
|
||||
import { notify } from "./notify.mjs";
|
||||
import { updateSands } from "./updateSands.mjs";
|
||||
|
||||
const events = {
|
||||
notify,
|
||||
updateSands,
|
||||
};
|
||||
|
||||
|
|
|
|||
56
module/sockets/notify.mjs
Normal file
56
module/sockets/notify.mjs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
import { localizer } from "../utils/Localizer.mjs";
|
||||
|
||||
export function notify(payload) {
|
||||
// #region Payload Validity
|
||||
const {
|
||||
message,
|
||||
users = [],
|
||||
type = `info`,
|
||||
permanent = false,
|
||||
} = payload;
|
||||
|
||||
if (!message) {
|
||||
ui.notifications.error(localizer(
|
||||
`RipCrypt.notifs.error.malformed-socket-payload`,
|
||||
{
|
||||
event: `notify`,
|
||||
details: `A message must be provided`,
|
||||
},
|
||||
));
|
||||
return;
|
||||
};
|
||||
|
||||
if (users && !Array.isArray(users)) {
|
||||
ui.notifications.error(localizer(
|
||||
`RipCrypt.notifs.error.malformed-socket-payload`,
|
||||
{
|
||||
event: `notify`,
|
||||
details: `"users" must be an array of user IDs`,
|
||||
},
|
||||
));
|
||||
return;
|
||||
};
|
||||
|
||||
if (![`info`, `error`, `success`].includes(type)) {
|
||||
ui.notifications.error(localizer(
|
||||
`RipCrypt.notifs.error.malformed-socket-payload`,
|
||||
{
|
||||
event: `notify`,
|
||||
details: `An invalid notification type was provided.`,
|
||||
},
|
||||
));
|
||||
return;
|
||||
}
|
||||
// #endregion Payload Validity
|
||||
|
||||
// Act
|
||||
if (users.length === 0 || users.includes(game.user.id)) {
|
||||
ui.notifications[type]?.(
|
||||
localizer(message),
|
||||
{
|
||||
console: false,
|
||||
permanent,
|
||||
},
|
||||
);
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue