MCPcopy Index your code
hub / github.com/codebymitch/TitanBot / sendLevelUpAnnouncement

Function sendLevelUpAnnouncement

src/services/xpSystem.js:112–140  ·  view source on GitHub ↗
(guild, member, levelData, config)

Source from the content-addressed store, hash-verified

110}
111
112async function sendLevelUpAnnouncement(guild, member, levelData, config) {
113 try {
114 const levelUpChannel = config.levelUpChannel
115 ? guild.channels.cache.get(config.levelUpChannel)
116 : guild.systemChannel;
117
118 if (!levelUpChannel || !levelUpChannel.isTextBased()) {
119 return;
120 }
121
122 const permissions = levelUpChannel.permissionsFor(guild.members.me);
123 if (!permissions || !permissions.has(['SendMessages', 'EmbedLinks'])) {
124 logger.warn(`Missing permissions to send levelup message in ${levelUpChannel.id}`);
125 return;
126 }
127
128 const message = config.levelUpMessage
129 .replace(/{user}/g, member.toString())
130 .replace(/{level}/g, levelData.level)
131 .replace(/{xp}/g, levelData.xp)
132 .replace(/{xpNeeded}/g, getXpForLevel(levelData.level + 1));
133
134 await levelUpChannel.send(message).catch(error => {
135 logger.error(`Failed to send level up message in channel ${levelUpChannel.id}:`, error);
136 });
137 } catch (error) {
138 logger.error('Error sending level up announcement:', error);
139 }
140}

Callers 1

addXpFunction · 0.85

Calls 2

getXpForLevelFunction · 0.90
getMethod · 0.45

Tested by

no test coverage detected