Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2021
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. registerPlugin({
  2.     name: 'Gelber Karten Bemerker-Script!',
  3.     version: '1.0',
  4.     description: 'Das Script fragt nach einer Begründung für das setzen von gelben Karten!',
  5.     author: 'Tobias',
  6.     requiredModules: ['db'],
  7.     vars: [
  8.       {
  9.         name: 'yellow_card_group',
  10.         title: 'Gruppe die das Script für die gelbe Karte nutzt!',
  11.         type: 'number'
  12.       },
  13.       {
  14.         name: 'red_card_group',
  15.         title: 'Gruppe die das Script für die gelbe Karte nutzt!',
  16.         type: 'number'
  17.       }
  18.     ],
  19.     enableWeb: true
  20. }, function(_, sinusbot, config)
  21. {
  22.   const event = require('event');
  23.   const backend = require('backend');
  24.    
  25.   var db = require('db');
  26.   var engine = require('engine');
  27.   var helpers = require('helpers');
  28.   var store = require('store');
  29.   var client = require('client');
  30.  
  31.   var openCard = {
  32.       cards: []
  33.   };
  34.                          
  35.   var dbc = db.connect({ driver: '###', host: '###', username: '###', password: '###', database: '###' }, function(err)
  36.   {
  37.       if(err)
  38.       {
  39.           engine.log("[GKB] ERROR: " + err);
  40.       }
  41.   });
  42.  
  43.   event.on('serverGroupAdded', function(event)
  44.   {
  45.       engine.log(config.red_card_group);
  46.       engine.log("CONFIG:::: " + config.yellow_card_group);
  47.       engine.log("CONFIG:::: " + config.update_interval);
  48.  
  49.       if(event.invoker.name() == backend.getNick())
  50.       {
  51.           return;
  52.       }
  53.  
  54.       if(event.serverGroup.id() === config.yellow_card_group || event.serverGroup.id() === config.red_card_group)
  55.       {
  56.           engine.log("[OYCG] Gelbe / Rote Karte wurde gesetzt!");
  57.          
  58.           var redCard = 0;
  59.           if(event.serverGroup.id() == config.red_card_group)
  60.           {
  61.               redCard = 1;
  62.           }
  63.  
  64.           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);
  65.  
  66.           getCardID(function(resultTest)
  67.           {
  68.               openCard.cards.push({
  69.                   "invokerUID" : event.invoker.uid(),
  70.                   "cardID" : resultTest,
  71.               });
  72.           });
  73.          
  74.           event.invoker.chat("[OYCG] Du hast eine " + event.serverGroup.name() + "-Karte gesetzt, bitte gib eine Begründung ein:");
  75.       }
  76.   })
  77.  
  78.   event.on('serverGroupRemoved', function(event)
  79.   {
  80.       if(event.invoker.name() == backend.getNick())
  81.       {
  82.           return;
  83.       }
  84.  
  85.       if(event.serverGroup.id() === config.yellow_card_group || event.serverGroup.id() === config.red_card_group)
  86.       {
  87.           event.client.addToServerGroup(event.serverGroup.id());
  88.       }
  89.   })
  90.  
  91.   event.on('chat', function(event)
  92.   {
  93.       for(i in openCard.cards)
  94.       {
  95.           if(openCard.cards[i].invokerUID == event.client.uid())
  96.           {
  97.               if (dbc) dbc.exec("UPDATE yellowRedCards SET yrc_channel = '" + event.channel.name() + "', yrc_reason = '" + event.text + "' WHERE yrc_id = '" + openCard.cards[i].cardID + "'");
  98.  
  99.               delete openCard.cards[i].invokerUID;
  100.               delete openCard.cards[i].cardID;
  101.  
  102.               break;
  103.           }
  104.       }
  105.   })
  106.  
  107.   function getCardID(onDone)
  108.   {
  109.       var resultCardID = "";
  110.  
  111.       if (dbc) dbc.query("SELECT yrc_id FROM yellowRedCards ORDER BY yrc_id DESC LIMIT 1", function(err, res)
  112.       {
  113.           if(!err)
  114.           {
  115.               res.forEach(function(row)
  116.               {
  117.                   var yrcID = row['yrc_id'];
  118.  
  119.                   for(var i = 0; i < yrcID.length; i++)
  120.           {
  121.               resultCardID += String.fromCharCode(parseInt(yrcID[i]));
  122.           }
  123.               });
  124.  
  125.               if(onDone)
  126.               {
  127.                   onDone(resultCardID);
  128.               }
  129.           }
  130.       });
  131.   }
  132.  
  133.   setInterval(function(event)
  134.   {
  135.       var cardType = "";
  136.       var cardTypeResult = "";
  137.  
  138.       var cardHolder = "";
  139.       var cardHolderResult = "";
  140.  
  141.       var cardID = "";
  142.       var cardIDResult = "";
  143.  
  144.       if (dbc) dbc.query("SELECT * FROM yellowRedCards WHERE yrc_done = 1 AND yrc_cleared_by_bot = 0", function(err, res)
  145.       {
  146.           if(!err)
  147.           {
  148.               res.forEach(function(row)
  149.               {
  150.                   cardTypeResult = "";
  151.                   cardHolderResult = "";
  152.                   cardIDResult = "";
  153.  
  154.                   cardType = row['yrc_redCard'];
  155.  
  156.                   for(var i = 0; i < cardType.length; i++)
  157.                   {
  158.                       cardTypeResult += String.fromCharCode(parseInt(cardType[i]));
  159.                   }
  160.  
  161.  
  162.                   cardHolder = row['yrc_holder_ts3id'];
  163.  
  164.                   for(var i = 0; i < cardHolder.length; i++)
  165.                   {
  166.                       cardHolderResult += String.fromCharCode(parseInt(cardHolder[i]));
  167.                   }
  168.  
  169.  
  170.                   cardID = row['yrc_id'];
  171.  
  172.                   for(var i = 0; i < cardID.length; i++)
  173.                   {
  174.                       cardIDResult += String.fromCharCode(parseInt(cardID[i]));
  175.                   }
  176.  
  177.                   if(cardTypeResult == 0)
  178.                   {
  179.                       backend.getClientByUniqueID(cardHolderResult).removeFromServerGroup("434363");
  180.                   }
  181.                   else
  182.                   {
  183.                       backend.getClientByUniqueID(cardHolderResult).removeFromServerGroup("434364");
  184.                   }
  185.  
  186.                   if (dbc) dbc.exec("UPDATE yellowRedCards SET yrc_cleared_by_bot = 1 WHERE yrc_id = '" + cardIDResult + "'");
  187.  
  188.                   engine.log("[OYCG] Eine Gelbe / Rote Karte wurde entfernt!");
  189.               });
  190.           }
  191.       });
  192.   }, 10000);
  193. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement