...
 
......@@ -486,3 +486,8 @@ Améliore l'affichage des réglages des serveurs.
Corrige un plantage systématique avec Vive La France.
On commence désormais avec 100 zouz au lieu de 0.
Corrige la commande >zouz titres.
4.3 (08/12/2019)
Améliore la mise à jour des réglages de serveur, et ajoute le mise à jour des paramètres du bot.
On peut désormais choisir où Strun envoie ses MP, et même désactiver ce transfert.
......@@ -2,7 +2,7 @@
This bot is french so if you don't speak french... well, too bad!
Version actuelle : 4.2
Version actuelle : 4.3
# Presentation
Strun Bah Couille est un bot brutal et vulgaire qui a pour but d'animer votre serveur. À l'origine, il servait uniquement d'entraînement, mais s'est tellement développé qu'il est réellement devenu un bot à part entière, avec sa propre utilité.
......
......@@ -247,6 +247,7 @@ module.exports = {
{ name: ">eval <code>", value: "Exécute le code JavaScript donné. Attention à ne pas tout casser !" },
{ name: ">setState <état>", value: "Met le bot dans l’état indiqué. Les états possibles sont normal, upgrading, under repair et unavailable.", inline: true },
{ name: ">getState", value: "Donne l’état du bot.", inline: true },
{ name: ">transfèreMP <?|master|salon|false>", value: "Définis où envoyer les MP que je reçois : directement à vous (`master`), dans un salon défini, ou nulle part.\nPassez `?` en paramètre pour connaître le réglage actuel." },
{ name: ">mp <id utilisateur> <message>", value: "Envoie un message privé à l’utilisateur dont l’ID est donné." },
{ name: ">msg <salon> <message>", value: "Envoie le message donné dans le salon donné. Le salon peut être son nom, ou directement son ID." },
{ name: ">punis <membre>", value: "Punis le membre, pour entre autres lui interdire la Venture, bloquer son gain de zouz, etc.", inline: true },
......
......@@ -115,11 +115,18 @@ for(const dé in invention)
var rand, i, master, myself,
params = { version: settingsVersion, state: "normal", punis: [] };
dmChan = null,
params = { version: settingsVersion, state: "normal", punis: [], dmChan: "master" };
try {
params = require("./savedData/params.json");
const tempParams = Object.assign(params, require("./savedData/params.json"));
for(const prm in tempParams)
if(!(prm in params))
delete tempParams[prm];
params = tempParams;
}
catch(e) {
saveParams();
......@@ -130,14 +137,11 @@ if(params.version < settingsVersion)
{
for(const [id, srv] of servers.getAll())
{
for(const setting in defaultSettings)
srv.settings[setting] = srv.settings[setting] === undefined ? defaultSettings[setting] : srv.settings[setting];
srv.settings = Object.assign(defaultSettings, srv.settings);
for(const setting in srv.settings)
if(!(setting in defaultSettings))
delete srv.settings[setting];
delete srv.bbRole; // Delete this line somewhere in the future
}
params.version = settingsVersion;
......@@ -190,6 +194,25 @@ function saveParams()
fs.writeFile("savedData/params.json", JSON.stringify(params), err => { if(err) error(err) });
}
function setDMChan(value)
{
let understood = true;
if(value === "master")
{
dmChan = master;
params.dmChan = "master";
}
else if(isFinite(value))
{
dmChan = getChannel(value);
understood = !!(params.dmChan = dmChan ? dmChan.id : null);
}
else
params.dmChan = dmChan = null;
saveParams();
return understood;
}
function setState(state)
{
switch(state)
......@@ -234,9 +257,10 @@ client.prependListener("ready", () => {
if(!master)
client.fetchUser(auth.master).then(user => master = user, error);
console.log(`Connecté en tant que ${myself.tag} !`);
setState(params.state);
setDMChan(params.dmChan);
console.log(`Connecté en tant que ${myself.tag} !`);
});
......@@ -310,15 +334,16 @@ client.on("message", msg => {
return;
}
if(!isFinite(msg.content) && !msg.content.toLowerCase().startsWith(">venture"))
if(!isFinite(msg.content) && cmd !== ">venture" && cmd !== ">aide")
{
let message = `Message de la part de ${msg.author} :\n${msg.content}`;
if(msg.attachments.first())
for(const [clé, attachement] of msg.attachments)
message += "\n+ " + a.url;
message += "\n+ " + attachement.url;
master.send(message).catch(error);
if(dmChan)
dmChan.send(message, {split: true}).catch(error);
}
}
......@@ -406,6 +431,28 @@ client.on("message", msg => {
msg.author.send(params.state).catch(error);
break;
case ">envoiemp":
case ">envoiemps":
case ">transferemp":
case ">transfèremp":
case ">transferemps":
case ">transfèremps":
if(checkMaster(msg.author))
{
if(!prm || prm === "?")
{
if(dmChan === master)
msg.channel.send("Je vous envoie tous mes MP.").catch(error);
else if(dmChan)
msg.channel.send(`J’envoie mes MP dans ${dmChan}.`).catch(error);
else
msg.channel.send("Je ne transfère pas mes MP.").catch(error);
}
else
c_envoieMP(msg.channel, prm);
}
break;
case ">mp":
case ">dm":
if(checkMaster(msg.author))
......@@ -718,6 +765,17 @@ function c_présentation(channel, prefix)
}).catch(error);
}
function c_envoieMP(channel, prm)
{
setDMChan(prm);
if(dmChan === master)
channel.send("Ok, je vous envoie tous mes MP.").catch(error);
else if(dmChan)
channel.send(`Ok, j’enverrai mes MP dans ${dmChan}.`).catch(error);
else
channel.send("J’arrête donc de transférer mes MP.").catch(error);
}
function c_MP(msg, prm)
{
const userRes = prm.split(" ", 1)[0];
......
{
"name": "strun_bah_couille",
"version": "4.2.5",
"version": "4.3.0",
"description": "Strun Bah Couille le Crisse-Barbe",
"main": "bot.js",
"repository": {
......