1. Voordat je kan participeren op het forum dien je je eerst te registreren.

    Druk hier om je te registreren!
    Ontzet Notitie

Hernoem Bevelen

Discussie in 'Snellijstscripts' gestart door Unfriendly Sander, 29. apr 2018.

Deel Deze Pagina

  1. Unfriendly Sander

    Unfriendly Sander

    Lid geworden:
    2. feb 2014
    Berichten:
    1.401
    Leuk Bevonden:
    61
    Titel Script: Hernoem Bevelen

    Functiebeschrijving script:

    Dit script hernoemt bevelen op het dorpoverzicht en andere pagina's. (bv aankomend, bevelen, ...)
    Wanneer je het script activeert zal er een prompt komen die je vraagt wat de nieuwe naam moet zijn.

    Verder kun je in het script het type en prefix aanpassen.
    Type:
    • 'outgoing': hernoemt alleen uitgaande bevelen
    • 'incoming': hernoemt alleen inkomende bevelen
    • 'all': hernoemt alles
    Prefix:
    • true: hetgeen je invoert in de prompt wordt vooraan de bestaande bevelnaam toegevoegd
    • false: hernoem het volledige bevel

    Keuring Ticket ID (Cijfer van de ticketID) t12398621

    ScriptCode

    PHP:
    javascript/* @author: Unfriendly Sander @description: Renames commands on current page */ void((() => {
        const 
    settings = {
       
    type'outgoing'// values: outgoing, incoming, all
       
    prefixfalse     // values: true, false => on true it will add what you put in the prompt BEFORE the current command name if it is not there already
        
    },
         
    selectors = {   // here for convenience, if something breaks, it will probably need a fix in the selectors methods
             
    $outgoing() {
             if (
    game_data.screen === 'overview_villages') {
               return $(
    '.quickedit');
             }
             return $(
    '.quickedit-out');
             },

             
    $incoming() {
             return $(
    '.quickedit').not('.quickedit-out');
             },

             
    $allCommands() {
             return $(
    '.quickedit, .quickedit-out');
             },

             
    getId($command) {
             return 
    $command.attr('data-id');
             },

             
    extractLabel($command) {
             return 
    $command.find('.quickedit-label').text().trim();
             },

             
    editLabel($commandtxt) {
             
    $command.find('.quickedit-label').text(txt);
             }
         };

        
    // load twAjax if not defined
        
    (() => {
       if (
    typeof window.$.twAjax === 'undefined') {
           
    window.$.twAjax = (function () {
           
    let Ajax = function (optionspromise) {
               
    this.options options;
               
    this.promise promise;
           };

           
    let Queue = (() => {
               
    let Queue = function () {
               
    this.list = [];
               
    this.working false;
               
    this.length 0;
               };

               
    Queue.prototype.doNext = function () {
               
    let item this.dequeue(),
                   
    self this;

               $.
    ajax(item.options).done(function () {
                   
    item.promise.resolve.apply(nullarguments);
                   
    self.start();
               }).
    fail(function () {
                   
    item.promise.reject.apply(nullarguments);
                   
    self.start();
               });
               };

               
    Queue.prototype.start = function () {
               if (
    this.length) {
                   
    this.working true;
                   
    this.doNext();
               } else {
                   
    this.working false;
               }
               };

               
    Queue.prototype.dequeue = function () {
               
    this.length -= 1;
               return 
    this.list.shift();
               };

               
    Queue.prototype.enqueue = function (item) {
               
    this.list.push(item);
               
    this.length += 1;

               if (!
    this.working) {
                   
    this.start();
               }
               };

               return 
    Queue;
           })();

           
    let orchestrator = (() => {
               
    // Create 5 queues to distribute requests on
               
    let queues = (() => {
               const 
    needed 5;
               
    let arr = [];

               for (
    let i 0neededi++) {
                   
    arr[i] = new Queue();
               }

               return 
    arr;
               })();

               
    let distribute = (item) => {
               
    let leastBusyQueue queues.map(=> q.length).
                   
    reduce((nextcurr) => (curr next) ? curr next0);
               
    queues[leastBusyQueue].enqueue(item);
               };

               return 
    distribute;
           })();

           return function(
    options) {
               
    let promise = $.Deferred(),
               
    item = new Ajax(optionspromise);

               
    orchestrator(item);

               return 
    promise;
           };
           })();
       }
        })();

        
    let rename = (() => {
       return (
    settings.prefix) ? (txtname) => {
           
    let l name.length,
           
    sub txt.substring(0l);

           if (
    sub !== name) {
           return 
    name ' ' txt;
           }
           return 
    txt;
       } : (
    txtname) => name;
        })();

        
    let persistentRename = (id$commandlabel) => {
       return $.
    twAjax({
           
    url: `game.php?screen=info_command&ajaxaction=edit_own_comment&id=${id}&h=${game_data.csrf}`,
           
    method'POST',
           
    data: { textlabel }
       }).
    then(() => {
           
    selectors.editLabel($commandlabel);
       });
        };

        
    let getCommands = (() => {
       
    let $commands = (() => {
           switch (
    settings.type) {
           case 
    'outgoing':
           return 
    selectors.$outgoing;
           case 
    'incoming':
           return 
    selectors.$incoming;
           case 
    'all':
           return 
    selectors.$allCommands;
           }
       })();

       return () => 
    $commands();
        })();

        (function 
    exec() {
       
    let name prompt('Hernoem bevelen naar:'''),
           
    $commands getCommands();

       if (!
    name.length) {
           return 
    false;
       }

       for (
    let i 0$commands.lengthli++) {
           
    let label selectors.extractLabel($commands.eq(i)),
           
    newLabel rename(labelname);

           if (
    label === newLabel) {
           continue;
           }

           
    persistentRename(selectors.getId($commands.eq(i)), $commands.eq(i), newLabel);
       }
        })();
    })());
     
  2. Single Malt

    Single Malt

    Lid geworden:
    20. jan 2015
    Berichten:
    2.946
    Leuk Bevonden:
    839
    Deze werkt niet bij mij?
     
  3. warre

    warre

    Lid geworden:
    19. feb 2008
    Berichten:
    3.941
    Leuk Bevonden:
    176
    Wat werkt er niet aan ?
     
  4. Single Malt

    Single Malt

    Lid geworden:
    20. jan 2015
    Berichten:
    2.946
    Leuk Bevonden:
    839
    Alles. Ik klik er op en hij doet niets. Komt geen prompt zoals vermeld wordt. Op meerdere pagina's geprobeerd (dorpsoverzicht, aankomende bevelen, uitgaande bevelen, etv)
     
  5. warre

    warre

    Lid geworden:
    19. feb 2008
    Berichten:
    3.941
    Leuk Bevonden:
    176
    Dat is vreemd... Kan je eens kijken naar errors ?

    Wanneer je in TW bent rechter klik ergens in de pagina, en dan element inspecteren (of iets in die aard), daar dan zoeken naar de console. Eenmaal die open staat op het script klikken en dan hier laten weten wat er dan in de console verschijnt.
     
  6. Unfriendly Sander

    Unfriendly Sander

    Lid geworden:
    2. feb 2014
    Berichten:
    1.401
    Leuk Bevonden:
    61
    Welke wereld? Heb je PA? Instellingen script?