registerPlugin({
name: 'Montys Choice Group',
version: '0.1.0',
backends: ['ts3'],
engine: '>= 0.13.37',
description: 'User can choice groups',
author: 'Montiary',
vars: [{
name: 'ShowLog',
indent: 1,
title: 'Show Logs?',
type: 'select',
options: [
'NO',
'YES'
]
}, {
name: "Quest",
title: 'Quest',
type: 'array',
vars: [{
name: 'Message',
indent: 1,
title: 'Message',
type: 'string'
}, {
name: 'GroupIDs',
indent: 1,
title: 'GroupIDs',
type: 'array',
vars: [{
name: 'GroupID',
indent: 1,
title: 'Group ID',
type: 'number'
}]}]
}]
}, function(sinusbot, config) {
var engine = require('engine');
var backend = require('backend');
var event = require('event');
var ShowLog = config.ShowLog;
if (typeof ShowLog == "undefined" || ShowLog == '') {
ShowLog = false;
}
var init = config.Quest;
if (init === undefined) {
engine.log('Not definated - beark loading');
return;
}
event.on('chat', function(ev) {
var Message = ev.text;
var Client = ev.client;
if(Client.isSelf()){
return;
}
if(ShowLog){engine.log('Got message "'+ Message +'" from '+ Client.name());}
if(isNaN(Message) == false){
var QuestNumber = nextQuest(Client,false);
if(ShowLog){engine.log('QuestNumber "'+ QuestNumber);}
if (typeof QuestNumber === "undefined") {
// no more quest
}else{
if(parseInt(Message) >= init[QuestNumber].GroupIDs.length){
//invalid number
}else{
Client.addToServerGroup(init[QuestNumber].GroupIDs[parseInt(Message)].GroupID);
nextQuest(Client,true);
}
}
}
});
event.on('clientMove', function(ev) {
var Client = ev.client;
var Channel = ev.toChannel;
if (typeof FromChannel == 'undefined' || FromChannel == '') { // joined
nextQuest(Client,true);
}
});
function nextQuest(Client,SendMessage) {
var ClientServerGroups = Client.getServerGroups();
var tmp = true;
for(var i = 0; i < init.length; i++){
tmp = true;
for(var j = 0; j < init[i].GroupIDs.length; j++){
for(var n = 0; n < ClientServerGroups.length; n++){
if(ClientServerGroups[n].id() == init[i].GroupIDs[j].GroupID){
tmp = false;
}
}
}
if(tmp == true && SendMessage == true){
Client.chat(init[i].Message);
return;
}else if(tmp == true && SendMessage == false){
return i;
}
}
}
}
);
here we go, fully tested and its working.
you can add unlimeted question each question can have unlimeted answers.
first you need to add a quest
than add a message : How old are you ? Answer 0 = >16 1 = >18 .....
Than you need to set the group id for each answer and there you go
Code:registerPlugin({ name: 'Montys Choice Group', version: '0.1.0', backends: ['ts3'], engine: '>= 0.13.37', description: 'User can choice groups', author: 'Montiary', vars: [{ name: 'ShowLog', indent: 1, title: 'Show Logs?', type: 'select', options: [ 'NO', 'YES' ] }, { name: "Quest", title: 'Quest', type: 'array', vars: [{ name: 'Message', indent: 1, title: 'Message', type: 'string' }, { name: 'GroupIDs', indent: 1, title: 'GroupIDs', type: 'array', vars: [{ name: 'GroupID', indent: 1, title: 'Group ID', type: 'number' }]}] }] }, function(sinusbot, config) { var engine = require('engine'); var backend = require('backend'); var event = require('event'); var ShowLog = config.ShowLog; if (typeof ShowLog == "undefined" || ShowLog == '') { ShowLog = false; } var init = config.Quest; if (init === undefined) { engine.log('Not definated - beark loading'); return; } event.on('chat', function(ev) { var Message = ev.text; var Client = ev.client; if(Client.isSelf()){ return; } if(ShowLog){engine.log('Got message "'+ Message +'" from '+ Client.name());} if(isNaN(Message) == false){ var QuestNumber = nextQuest(Client,false); if(ShowLog){engine.log('QuestNumber "'+ QuestNumber);} if (typeof QuestNumber === "undefined") { // no more quest }else{ if(parseInt(Message) >= init[QuestNumber].GroupIDs.length){ //invalid number }else{ Client.addToServerGroup(init[QuestNumber].GroupIDs[parseInt(Message)].GroupID); nextQuest(Client,true); } } } }); event.on('clientMove', function(ev) { var Client = ev.client; var Channel = ev.toChannel; if (typeof FromChannel == 'undefined' || FromChannel == '') { // joined nextQuest(Client,true); } }); function nextQuest(Client,SendMessage) { var ClientServerGroups = Client.getServerGroups(); var tmp = true; for(var i = 0; i < init.length; i++){ tmp = true; for(var j = 0; j < init[i].GroupIDs.length; j++){ for(var n = 0; n < ClientServerGroups.length; n++){ if(ClientServerGroups[n].id() == init[i].GroupIDs[j].GroupID){ tmp = false; } } } if(tmp == true && SendMessage == true){ Client.chat(init[i].Message); return; }else if(tmp == true && SendMessage == false){ return i; } } } } );
Its working but...
Next message dont appear.
Just bot talk if dont have all groups.
And see image![]()
Age, Gender and Friends... But if you have already Age group, bot just give two awnser...
Sorry for my english, I'm Portuguese.