• 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 Unexpected end of input?

Kxngoro

Member
Guten Morgen allerseits,
Schonmal als Vorwarnung: Es ist mein erstes Script :oops:
Aber zu meinem Problem: Ich habe ein Script geschrieben, oder eher versucht es zu schreiben, das einem User die eingestelle Gruppe zuweist, sobald er in einen Channel joint oder sie ihm wieder wegnimmt wenn er die Gruppe beim Betreten des Channels schon hat. Natürlich immer mit Nachricht was passiert ist, also Gruppe gegeben/entfernt/Fehler. Eigentlich halte ich das Script für fertig, aber der Sinusbot spuckt beim Starten diese Fehlermeldung aus:

error in script: Uncaught exception: SyntaxError: Unexpected end of input at SilentAssigner.js:110:2 }); ^ Stack trace: SyntaxError: Unexpected end of input

Und ich habe keine Ahnung, woran es liegen könnte, ich habe jetzt eine halbe Stunde mit diesen Klammern und Semikolons rumgebastelt weil immer entweder ein ); gefehlt hat oder zu viel war und ich bin langsam am Rand der Verzweiflung.:mad:
Ich gehe mal davon aus, dass sich hier so gut wie jeder besser damit auskennt als ich, deshalb poste ich es mal hier.
Damit einen schönen Tag euch noch :D
Hier noch das Script:

JavaScript:
registerPlugin({
 name: 'SilentGroupAssigner',
 version: '1.0',
 description: 'Assigns silent-group to any user joining lobby',
 author: 'Kxngoro || Malte <[email protected]>',
vars:[{
        name: 'ChannelName',
        title: 'User should get silent assigned on joining this channel',
        type: 'channel'
    },
    {
        name: 'Forbidden_Groups',
        title: 'Groups which are not allowed to be silent',
        type: 'strings'
    },
    {
        name: 'Silent_Group',
        title: 'Group which should be assigned to users joining the lobby',
        type: 'string'
    },
    {
        name: 'ForbiddenMessage',
        title: 'Message sent to anyone who is member of a forbidden group',
        type: 'string',
        placeholder: 'Default: Du hast keine Berechtigung, die Silent-Gruppe zu erhalten!'
    },
    {
        name: 'SucceededMessage',
        title: 'Message displayed if operation succeeded',
        type: 'string',
        placeholder: 'Default: Du hast die Silent-Gruppe erhalten! Betrete diesen Channel erneut, um die Silent-Gruppe zu entfernen.'
    },
    {
        name: 'AlreadyMemberMessage',
        title: 'Message shown if client is already member of silent group',
        type: 'string',
        placeholder: 'Default: Dir wurde die Silent-Gruppe entfernt!'
    }
  ]
}, function (sinusbot, config) {
    
    var engine = require('engine');
    var backend = require('backend');
    var event = require('event');
    var store = require('store');
    
    var lobby = store.getInstance('silentassigner_channel')
    
    if (typeof config.ChannelName == 'undefined' || config.ChannelName == '') {
        engine.log('No lobby set, script useless, stopping script');
        return;
    }
    if (typeof config.Forbidden_Groups == 'undefined') {
        engine.log('No Forbidden Groups defined')
        }
    if (typeof config.ForbiddenMessage == 'undefined') {
        engine.log('No ForbiddenMessage defined')
        }
    if (typeof config.Silent_Group == 'undefined') {
        engine.log('No Group defined, script is useless, stopping script');
        return;
    if (config.ForbiddenMessage){
            ForbiddenMessage = config.ForbiddenMessage;
    }
    if (config.SucceededMessage){
            SucceededMessage = config.SucceededMessage;
    }
    if (config_change) {
        engine.saveConfig(config);
    }
    
    if (backend.isConnected()) {
        init();
    }
    
    function init() {
        if(typeof config.ChannelName != 'undefined') {
            var ch_ChannelName = backend.getChannelByID(config.ChannelName)
        }
        if (typeof config.ForbiddenMessage != 'undefined') {
            var ForbiddenMessage = 'Du hast keine Berechtigung, die Silent-Gruppe zu erhalten!';
        }
        if (typeof config.SucceededMessage != 'undefined') {
            var SucceededMessage = 'Du hast die Silent-Gruppe erhalten! Betrete diesen Channel erneut, um die Silent-Gruppe zu entfernen.';
        }
        if (typeof config.AlreadyMemberMessage != 'undefined') {
            var AlreadyMemberMessage = 'Dir wurde die Silent-Gruppe entfernt!';
        }
        return false;
    }

    event.on('clientMove', function(ev) {
        var client_channel = ev.client.getChannels();
        if (ev.client.isSelf()) {
            return;
            if (ev.isInGroup(client, Forbidden_Groups) === true) {
                ev.client.chat(ForbiddenMessage);
                return;
            }
            if (client_channel == config.ChannelName && ev.isInGroup(client, Forbidden_Groups) === false && ev.client.isInGroup(Silent_Group) === false) {
                ev.client.addToServerGroup(Silent_Group);
                ev.client.chat(SucceededMessage);
            }
            if (client_channel == config.ChannelName && ev.isInGroup(client, Forbidden_Groups) === false && ev.client.isInGroup(Silent_Group) === true) {
                ev.client.removeFromServerGroup(Silent_Group);
                ev.client.chat(AlreadyMemberMessage);
        }
        return false;
    }
});
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Nutze einen Editor, der den Code ordentlich für dich formatiert, dann siehst du solche Probleme auf Anhieb.
Hinter dem return nach dem isSelf Check würde ich eine geschweifte Klammer (zu) vermuten.
 

Kxngoro

Member
Die habe ich jetzt eingefügt, genau dasselbe Problem. Im Log steht, es sei ganz am Ende ein Fehler im Code. Angeblich fehlt ein ); nach der zweitletzten geschwungenen Klammer. Aber wenn ich die einfüge, dann kommt wieder unexpected End of Input... Jetzt hab ich so langsam wirklich jede mögliche Kombinationsmöglichkeit ausprobiert, zuerst }); und dann } oder } und dann }); oder }); und dann }); aber alles ohne Erfolg.
 

Multivitamin

Well-Known Member
Tier III
is awesome!
V.I.P.
is uber awesome!
Contributor
Insider
dir fehlen da mehrere geschlossene klammern, wie flyth schon erwähnt hat, nutz einen editor mit code highlightning dann findest du sowas sehr schnell

nach Zeile 61 ein "}"
und Zeile 109 fehlt ein ")"
 
Top