Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- registerPlugin({
- name: 'Gelber Karten Bemerker-Script!',
- version: '1.0',
- description: 'Das Script fragt nach einer Begründung für das setzen von gelben Karten!',
- author: 'Tobias',
- requiredModules: ['db'],
- vars: [
- {
- name: 'yellow_card_group',
- title: 'Gruppe die das Script für die gelbe Karte nutzt!',
- type: 'number'
- },
- {
- name: 'red_card_group',
- title: 'Gruppe die das Script für die gelbe Karte nutzt!',
- type: 'number'
- }
- ],
- enableWeb: true
- }, function(_, sinusbot, config)
- {
- const event = require('event');
- const backend = require('backend');
- var db = require('db');
- var engine = require('engine');
- var helpers = require('helpers');
- var store = require('store');
- var client = require('client');
- var openCard = {
- cards: []
- };
- var dbc = db.connect({ driver: '###', host: '###', username: '###', password: '###', database: '###' }, function(err)
- {
- if(err)
- {
- engine.log("[GKB] ERROR: " + err);
- }
- });
- event.on('serverGroupAdded', function(event)
- {
- engine.log(config.red_card_group);
- engine.log("CONFIG:::: " + config.yellow_card_group);
- engine.log("CONFIG:::: " + config.update_interval);
- if(event.invoker.name() == backend.getNick())
- {
- return;
- }
- if(event.serverGroup.id() === config.yellow_card_group || event.serverGroup.id() === config.red_card_group)
- {
- engine.log("[OYCG] Gelbe / Rote Karte wurde gesetzt!");
- var redCard = 0;
- if(event.serverGroup.id() == config.red_card_group)
- {
- redCard = 1;
- }
- if (dbc) dbc.exec("INSERT INTO yellowRedCards (yrc_setter_ts3id, yrc_setter, yrc_holder_ts3id, yrc_holder, yrc_redCard) VALUES (?, ?, ?, ?, ?)", event.invoker.uid(), event.invoker.name(), event.client.uid(), event.client.name(), redCard);
- getCardID(function(resultTest)
- {
- openCard.cards.push({
- "invokerUID" : event.invoker.uid(),
- "cardID" : resultTest,
- });
- });
- event.invoker.chat("[OYCG] Du hast eine " + event.serverGroup.name() + "-Karte gesetzt, bitte gib eine Begründung ein:");
- }
- })
- event.on('serverGroupRemoved', function(event)
- {
- if(event.invoker.name() == backend.getNick())
- {
- return;
- }
- if(event.serverGroup.id() === config.yellow_card_group || event.serverGroup.id() === config.red_card_group)
- {
- event.client.addToServerGroup(event.serverGroup.id());
- }
- })
- event.on('chat', function(event)
- {
- for(i in openCard.cards)
- {
- if(openCard.cards[i].invokerUID == event.client.uid())
- {
- if (dbc) dbc.exec("UPDATE yellowRedCards SET yrc_channel = '" + event.channel.name() + "', yrc_reason = '" + event.text + "' WHERE yrc_id = '" + openCard.cards[i].cardID + "'");
- delete openCard.cards[i].invokerUID;
- delete openCard.cards[i].cardID;
- break;
- }
- }
- })
- function getCardID(onDone)
- {
- var resultCardID = "";
- if (dbc) dbc.query("SELECT yrc_id FROM yellowRedCards ORDER BY yrc_id DESC LIMIT 1", function(err, res)
- {
- if(!err)
- {
- res.forEach(function(row)
- {
- var yrcID = row['yrc_id'];
- for(var i = 0; i < yrcID.length; i++)
- {
- resultCardID += String.fromCharCode(parseInt(yrcID[i]));
- }
- });
- if(onDone)
- {
- onDone(resultCardID);
- }
- }
- });
- }
- setInterval(function(event)
- {
- var cardType = "";
- var cardTypeResult = "";
- var cardHolder = "";
- var cardHolderResult = "";
- var cardID = "";
- var cardIDResult = "";
- if (dbc) dbc.query("SELECT * FROM yellowRedCards WHERE yrc_done = 1 AND yrc_cleared_by_bot = 0", function(err, res)
- {
- if(!err)
- {
- res.forEach(function(row)
- {
- cardTypeResult = "";
- cardHolderResult = "";
- cardIDResult = "";
- cardType = row['yrc_redCard'];
- for(var i = 0; i < cardType.length; i++)
- {
- cardTypeResult += String.fromCharCode(parseInt(cardType[i]));
- }
- cardHolder = row['yrc_holder_ts3id'];
- for(var i = 0; i < cardHolder.length; i++)
- {
- cardHolderResult += String.fromCharCode(parseInt(cardHolder[i]));
- }
- cardID = row['yrc_id'];
- for(var i = 0; i < cardID.length; i++)
- {
- cardIDResult += String.fromCharCode(parseInt(cardID[i]));
- }
- if(cardTypeResult == 0)
- {
- backend.getClientByUniqueID(cardHolderResult).removeFromServerGroup("434363");
- }
- else
- {
- backend.getClientByUniqueID(cardHolderResult).removeFromServerGroup("434364");
- }
- if (dbc) dbc.exec("UPDATE yellowRedCards SET yrc_cleared_by_bot = 1 WHERE yrc_id = '" + cardIDResult + "'");
- engine.log("[OYCG] Eine Gelbe / Rote Karte wurde entfernt!");
- });
- }
- });
- }, 10000);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement