• 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 Bot schreibt manchmal 2 mal manchmal einmal ?!

Montiary

Active Member
Contributor
Ich verstehe nicht wieso dieses Script manchmal 2 mal anschreibt und manchmal nur einmal?
ich denke ich habe da irgendwo ein fehler drinnen aber ich finde ihn einfach nicht.


1. Script
Code:
,
    engine: '>= 0.13.37',
    description: 'Write to Groups when a user joins a specific channel',
    author: 'Montiary',
    vars: [{
        name: 'ShowLog',
        indent: 1,
        title: 'Show Logs?',
        type: 'select',
        options: [
            'NO',
            'YES'
        ]
    }, {
        name: "Triggers",
        title: 'Triggers',
        type: 'array',
        vars: [{
            name: 'Channel',
            indent: 1,
            title: 'Channel der den Nachricht/Ping aktiviert',
            type: 'channel'
        }, {
            name: 'IgnoreGroups',
            indent: 1,
            title: 'Die Gruppen die nicht triggern',
            type: 'array',
            vars: [{
                name: 'GroupID',
                indent: 1,
                title: 'Group ID',
                type: 'number'
        }]}, {
            name: 'TargetGroups',
            indent: 1,
            title: 'Die Gruppen die angeschrieben werden',
            type: 'array',
            vars: [{
                name: 'GroupID',
                indent: 1,
                title: 'Group ID',
                type: 'number'
        }]}, {
            name: 'Nachricht',
            indent: 1,
            title: 'Nachricht die geschickt wird  / !URL and !ChannelName placeholder',
            type: 'string'
        }]
    }]
},     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.Triggers;

        if (init === undefined) {
            engine.log('Not definated - beark loading');
            return;
        }


        event.on('clientMove', function(ev) {
            var Client = ev.client;
            var Channel = ev.toChannel;
            
            if (typeof Channel == 'undefined' || Channel == '') {
            }else{
                for(var i = 0; i < init.length; i++){
                    
                    if(init[i].Channel == Channel.id()){
                        var Ignore = false;
                        var ClientGroups = Client.getServerGroups();
                        for(var j = 0; j < ClientGroups.length; j++){ // die schleife ist falsch
                            for(var c = 0;c < init[i].IgnoreGroups.length; c++){
                                if(init[i].IgnoreGroups[c].GroupID==ClientGroups[j].id()){
                                    Ignore = true;
                                }
                            }
                        }    
                        if(Ignore == false){
                            //ping the right servergroups
                            var Clients = backend.getClients();
                            for(var a = 0;a < Clients.length; a++){
                                ClientGroups = Clients[a].getServerGroups();
                                for(var b = 0;b < ClientGroups.length; b++){
                                    for(var c = 0;c < init[i].TargetGroups.length; c++){
                                        if(ClientGroups[b].id()==init[i].TargetGroups[c].GroupID){
                                            if(ShowLog){
                                                engine.log(Clients[a]);
                                            }
                                            var URL = "[URL=client://"+Client.databaseID()+"/"+Client.uid()+"]"+Client.name()+"[/URL]";
                                            var ChannelName = Channel.name();
                                            
                                            Clients[a].chat(init[i].Nachricht.replace("!URL",URL).replace("!ChannelName",ChannelName));
                                        }
                                    }
                                }
                            }    
                        }
                    }
                }
            }
            
            
            
            
            
            
            
            
            
        });
    }
);
 
Last edited:

Montiary

Active Member
Contributor
Mein Script tut genau dasselbe, was du versuchst :)
https://forum.sinusbot.com/resources/servergroup-notifier.330/

Kannst entweder das nutzen oder dir paar Sachen abschauen^^
Aber zu deinem Problem, würde erstmal paar Sachen in Variablen speichern und etwas logging einbauen, dann siehst du warum er 2 Mal in die Schleife geht.

Habe deins mir mal angeschaut, hast auf jedenfall ein super schönen code :) ich brauch da noch ein bisschen zeit aber wenn du sowas hinbekommst schaffe ich das auch :p

Könntest du mir sagen wenn ich das so aufrufe ob die sachen dann doppelt drinne stehen?
var ClientGroups = Client.getServerGroups();
ClientGroups = Clients[a].getServerGroups();
 

Montiary

Active Member
Contributor
Habe deins mir mal angeschaut, hast auf jedenfall ein super schönen code :) ich brauch da noch ein bisschen zeit aber wenn du sowas hinbekommst schaffe ich das auch :p

Könntest du mir sagen wenn ich das so aufrufe ob die sachen dann doppelt drinne stehen?
var ClientGroups = Client.getServerGroups();
ClientGroups = Clients[a].getServerGroups();

yikes habe mir die frage gerade selber beantwortet und den fehler gefunden........ wenn man sein eigenen bot nicht konfigurieren kann....
 
Top