• If you need help or want to discuss things, you now can also join us on our Discord Server!
  • A first preview of the unlimited version of SinusBot can be found in the Upcoming Changes thread. A version for Windows will follow, but we don't have a release date, yet.

DE [Request] Server Group - Add one / Remove one

-Simple

Member
Hallo,

gibt es ein Script, bei dem man sich eine Servergruppe geben lassen kann und im gleichen Moment aus einer anderen Servergruppe entfernt wird?
Bsp:
- Mit dem Command "addDE" soll die Gruppe "Deutsch" vergeben werden
- Mit dem Command "addEN" soll die Gruppe "Englisch" vergeben werden
Wenn sich nun ein User in der Gruppe "Deutsch" befindet und den Command "addEN" benutzt, soll er zur Gruppe "Englisch" hinzugefügt werden und gleichzeitig aus der Gruppe "Deutsch" entfernt werden. Das Gleiche natürlich auch anders herum, sprich der User befindet sich in der Gruppe "Englisch" und benutzt den Command "addDE", dann soll er zur Gruppe "Deutsch" hinzugefügt und gleichzeitig aus der Gruppe "Englisch" entfernt werden.
Sollte ein User weder die Gruppe "Deutsch" noch "Englisch" haben, kann er sich mit den Commands "addDE" oder "addEN" eine der beiden Gruppen geben. Der User müsste sich aber immer in einer der beiden Gruppen befinden und somit sich die Gruppe nur entfernen lassen, wenn er zur anderen wieder hinzugefügt wird.
Hoffe es ist einigermaßen verständlich! ;)

Vielen Dank! :)

-Simple
 

DrWarpMan

Well-Known Member
Contributor
Insider
Here you are, should work:
https://anonfile.com/f1x2Ibp5bd/groupSwitch_js

JavaScript:
registerPlugin({

    name: 'Group Switcher',

    version: '0.1',

    backends: ['ts3'],

    description: 'Assigns the first group, while removing the second one',

    author: 'DrWarpMan',

    vars: [

        {

            name: 'firstGroup',

            title: 'First group ID:',

            type: 'string'

        },

        {

            name: 'firstCommand',

            title: 'Command to add first group [Default: "!addfirst"]:',

            type: 'string'

        },

        {

            name: 'secondGroup',

            title: 'Second group ID:',

            type: 'string'

        },

        {

            name: 'secondCommand',

            title: 'Command to add second group [Default: "!addsecond"]:',

            type: 'string'

        }

    ]

}, function (sinusbot, config) {

    var engine = require('engine');

    var backend = require('backend');

    var event = require('event');

    config.firstGroup       = config.firstGroup     || undefined;

    config.firstCommand     = config.firstCommand   || "!addfirst";

    config.secondGroup      = config.secondGroup    || undefined;

    config.secondCommand    = config.secondCommand  || "!addsecond";

    if(config.secondGroup == undefined || config.firstGroup == undefined)

    {

        engine.log("[Group Switch] ERROR: Did you set ID for each group?")

        return;

    }

    event.on('chat', function (ev) {

        var text        = ev.text.toLowerCase();

        var client      = ev.client;

        var fCommand    = config.firstCommand.toLowerCase();

        var sCommand    = config.secondCommand.toLowerCase();

        var fGroup      = config.firstGroup;

        var sGroup      = config.secondGroup;

      

        if(text == fCommand)

        {

            if(hasServerGroupWithID(client, fGroup) == false)

                client.addToServerGroup(fGroup);

            if(hasServerGroupWithID(client, sGroup) == true)

                client.removeFromServerGroup(sGroup);

            return;

        }

        if(text == sCommand)

        {

            if(hasServerGroupWithID(client, fGroup) == true)

                client.removeFromServerGroup(fGroup);

            if(hasServerGroupWithID(client, sGroup) == false)

                client.addToServerGroup(sGroup);

            return;

        }

    });

    function hasServerGroupWithID(client, id){

        return client.getServerGroups().some(function (group) {

            return group.id() == id

        })

    }

  

});
 
Top