Releases: makigas/makibot
v6.0.0
Esta es la última actualización de este bot. El bot estaba siendo reescrito desde cero, pero había demasiado código que migrar, lo que provocaba que la migración se estuviese yendo de scope. Esta actualización elimina mucho código y funciones que ya no se usan para reducir la cantidad de historias de usuario que hay que adaptar. El servidor de Discord está obsoleto, pero sin embargo la reescritura continuará, ya que quitarse de encima el runtime de NodeJS supone una mejora ecológica.
Esta actualización introduce los siguientes cambios de QoL:
- Cambios en el sistema de moderación:
- El sistema de modlog ahora es pasivo. Eso significa que el bot ya no puede aplicar acciones de moderación. En su lugar, hay que usar las funciones de Expulsar, Banear y Limitar que ofrece Discord. El bot seguirá reaccionando a estos eventos para mostrar información sobre un baneo, expulsión o limitación en los modlogs.
- Se ha eliminado el comando /mod. En su lugar hay que usar los comandos nativos de Discord /ban, /timeout y /kick.
- Moderación ya no puede usar el menú "Aplicar o pedir moderación" para moderar un mensaje. En su lugar hay que usar los menús nativos de Discord para banear, expulsar o limitar. La interacción "Aplicar o pedir moderación" ahora se llama "Avisar a moderación" para reflejar que este menú ya solamente sirve para reportar de forma interna un mensaje.
- La interacción "Avisar a moderación" ahora utiliza un modal de texto libre, de modo que en vez de elegir el problema del mensaje de una lista, ahora se puede escribir qué problema tiene de forma precisa y enviar el reporte.
- Cambios en el sistema de interacciones:
- Se ha eliminado la capacidad del bot de responder a comandos o interacciones enviados por DM, debido a que Discord ya no permite estas interacciones por defecto.
- Se ha eliminado el comando /roles, puesto que Discord ya tiene un gestor de roles nativo.
- Se han eliminado otros comandos obsoletos, como /enunciado o /buenaspreguntas.
- Se ha eliminado el código de botones que ya habían sido quitados del servidor, como el botón Loot, Roles o Karma.
- Se ha arreglado el comando /makigas cuando se buscaban mensajes en el foro, debido a que la URL del foro había cambiado.
- Cambios en el sistema de servicios inyectables (hooks):
- Se ha eliminado el hook "quote", lo que significa que mandar un mensaje con una URL a otro mensaje de Discord no tratará de resolverlo y de agregar una cita.
- El hook "delete" ahora tiene en cuenta si un mensaje tenía adjuntos o no antes de decidir que un mensaje era parcial.
- Se ha eliminado la capacidad del bot de premoderar mensajes. Ningún servicio seguía usando esta función debido a que Discord ya integra un automod.
- Se ha eliminado la capacidad de un servicio de reiniciarse. Ningún servicio continuaba usando esta función.
- Cambios en el sistema karma:
- La actualización de niveles tras enviar un mensaje ahora lleva un debouncer para no comprobarlo tan seguido si la cuenta manda múltiples mensajes en un breve periodo de tiempo.
- Ya no se tienen en cuenta los mensajes con antigüedad mayor a 1 año a la hora de medir el nivel de una cuenta, para evitar que cuentas abandonadas que corran el riesgo de ser capturadas por spambots puedan seguir teniendo un nivel de seguridad privilegiado.
- Cambios en la stdlib del bot:
- Las opciones del bot ya no están basadas en el esquema de datos del SettingProvider original de Commando, sino que usa un sistema de clave-valor normal más eficiente.
- Las etiquetas de un TagBag ya no pueden tener TTL (no se estaba usando esa función en ninguna parte del código).
- Cambios en el tooling:
- Se ha actualizado a TypeScript 5.5, NodeJS 20 y DiscordJS 13.17.
- El bot ahora se compila con el modo estricto de TypeScript activado.
v5.0.0
Esta es una actualización menor en lo que continúa reescribiéndose el bot en Go. Se hace bump de la versión a 5.0.0 por los breaking changes al haber eliminado bastante código. El código retirado se corresponde con cosas que ya no hacen falta porque están disponibles en Discord de forma nativa:
- Finalmente esta versión le dice adios a antispam.ts, antiflood.ts y csgo.ts. El automod integrado de Discord hace innecesario que el bot vigile los mensajes que ya han sido publicadods cuando el automod integrado puede eliminarlos antes de que se publiquen.
- Elimina el soporte para hacer blessings, ya que igualmente se ha quitado el antiflood.
- Elimina roles legados que ya no estaban en uso del selector de roles, como @/Streams, @/Helper y @/Multiplayer.
- Elimina el soporte para pins, ya que igualmente el corcho se desactivó hace bastante tiempo.
- Elimina el soporte para detectar cuando alguien se mete en un canal de voz, ya que Discord adjunta un canal de texto a un canal de voz desde hace bastante tiempo.
- Eliminamos el soporte para poner canales en cuarentena, ya que como se prohibió hablar de política al poco de escribir esa feature, nunca hizo falta impedir temporalmente escribir en canales. La capacidad de escribir globalmente en el servidor ha sido reemplazada por el soporte antiraid nativo de Discord.
- Elimina el soporte para canales de hilo y canales de enlace, ya que Discord hace bastante tiempo que tiene foros nativos.
- Elimina el soporte para posponer notificaciones de canales de hilo y enlace, ya que no hay canales de hilo y enlace.
- Como ya no hay canales de enlace, eliminamos por fin get-urls, quitándole influencia y descargas semanales en NPM al sindresorhus (mira lo que hago con tus módulos ESM).
- Actualizamos dependencias, excepto Discord.js, que sigue en la versión 13. Para evitar posibles problemas de compatibilidad entre Discord.js 13, seguimos usando TypeScript 4.8 y NodeJS 16.
A cambio, esta versión oficializa cosas que de todos modos ya estaban en el servidor desde hace bastante al usar una snapshot de desarrollo en el servidor, pero que se metieron después de cerrar la 4.0.2.
- El loot permite reclamar un poco de karma cada día.
v4.0.2
v4.0.1
They changed an API again 😠 MessageDelete events do not contain author and content anymore in their partials, even when privileged intent is set to true. This is causing bugs when people delete messages that are not in the bot cache, because the karma system seems to be using the authorId for some reason in the SQL statement used to remove a previously granted point. Also, the moderation logger needs to take this into account and set a placeholder instead.
Also, v4.0.1 contains some WIPs that I was working on. In particular, I have deprecated the old linkchannel and threadchannel methods in the Server class and created a wrapper since I am adding a third type of threaded channel manager in the future: support channel.
Bug Fixes
- some messageDelete come without content (b1cdd9b)
Chore
- lint: configure deprecation rules for eslint (2d29171)
Refactor
- create channel managers (links, threads, support) (3b46473)
v4.0.0
⚠ BREAKING CHANGES
The old pinboard system, where you reacted with a star to a message to send it to the pinboard channel, has been stripped from the code, including all the functions that get or update the preferences for the emoji and the target channel. Any code attempting to use the removed functions will break.
Instead, the pinboard has been rewritten to use interactions. Right-click a message and use the message context menu to send a message to the pinboard, and it will act appropiately. The pinboard channel is now configured using a specific kind of webhook called "pinboard", which can be get or set using the new command /server, that can be used by server operators, administrators or moderators.
Features
- add server settings command (c13dcce)
Refactor
- rewrite pin as a context menu (48d8d87)
v3.0.0
⚠ BREAKING CHANGES
The API for interactions now has separate functions for handling an interaction in a guild and in a DM. The handle()
function will not be called anymore. Instead, you should implement handleDM()
and/or handleGuild()
depending on whether you want the interaction to be usable in a DM or in a guild. The docs have been updated to reflect this.
Additionally, context menus have been removed and replaced by two separate classes for handling user context menus and message context menus. The commands have been updated, but keep in mind that the old class was deleted, so the API contract is broken.
Features
- add snooze button on thread messages (ef93d81)
Bug Fixes
- do not quote messages sent to private channels (75fbb4e)
- do not send to pinboard messages from private channels (3260f40)
Chore
- deps: update standard dependencies (71e287d)
Refactor
v2.7.0
v2.6.1
v2.6.0
A minor release focused on a better UX for thread only channels. Link-only and thread-only channels can be managed now using the makibotctl script and the RPC server. Sending a message to a link-only or thread-only channel will now cause the opened thread to be generated using a greeting message.