View difference between Paste ID: Acn1rTXB and WppDvsFZ
SHOW: | | - or go back to the newest paste.
1
// ==UserScript==
2
// @name       	 	Tagpro Group Default Settings
3
// @version    	 	0.4
4
// @description  	Adds a button to set all settings to their default values
5
// @include		 	http://tagpro-*.koalabeast.com/groups/*
6
// @include		 	http://tangent.jukejuice.com/groups/*
7
// @include			http://maptest.newcompte.fr/groups/*
8
// @author			Some Ball -1, RonSpawnson
9
// ==/UserScript==
10
11
$(function() {
12
    //if true, the value of caps will be expected to be set to No Limit
13
    //if false, the value of caps will ignored when making settings default
14
    var includeCaps = true;
15
    
16
    
17
    var defaulted = false;
18
    var isLeader = false;
19
    var values = {//map: '',
20
        caps: 0,
21
        time: 10,
22
        accel: 1,
23
        topspeed: 1,
24
        bounce: 1,
25
        playerRespawnTime: 3000,
26
        speedPadRespawnTime: 10000,
27
        dynamiteRespawnTime: 30000,
28
        buffRespawnTime: 60000};
29
    function isDefaulted()
30
    {
31
        var match = [0,0,0,0,0,0,0,0,0];
32
        var items = $('.setting.value');
33
        for(var i = 1;i < 10;i++)
34
        {
35
            if(items[i].value==values[items[i].name])
36
            {
37
                match[i-1] = 1;
38
            }
39
        }
40
        var sum = match.reduce(function(a, b) {
41
            return a + b;
42
        });
43
        if(sum==9 || (!includeCaps && sum==8))
44
        {
45
            return true;
46
        }
47
        return false;
48
    }
49
    
50
    function leaderCheck()
51
    {
52
        if(typeof $('.leader.you').data('model')!='undefined')
53
        {
54
            if(!isLeader) //now a leader
55
            {
56
            	$("#defaultSettings").show();
57
            	isLeader = true;
58
            }
59
        }
60
        else if(isLeader) //no longer a leader
61
        {
62
           $("#defaultSettings").hide();
63
            isLeader = false;
64
        }
65
    }
66
    
67
    $('#settings :first').after('<button id="defaultSettings" type="button">Default Settings</button>');
68
    $('#defaultSettings').click(function() {
69
        if(isLeader)
70
        {
71
            for(var x in values)
72
            {
73
                if((x=='caps' && includeCaps) || x!='caps')
74
                {
75
                    tagpro.group.socket.emit('setting',{
76
                        name: x,
77
                        value: values[x]
78
                    });
79
                }
80
            }
81
        }
82
    });
83
    leaderCheck();
84
    defaulted = isDefaulted();
85
    if (defaulted == true) {
86
        $("#defaultSettings").hide();  
87
    } else {
88
    	$("#defaultSettings").show();  
89
    }
90
91
    //$('#defaultSettings').prop('enabled',defaulted);
92
    tagpro.group.socket.on('setting',function(data) {
93
        if(data.name!='map' && typeof values[data.name]!='undefined') //not maps and a value we maybe care about
94
        {
95
            if((includeCaps && data.name=='caps') || data.name!='caps') //whether caps are important or not
96
            {
97
                defaulted = isDefaulted();
98
                if (defaulted == true) {
99
        			$("#defaultSettings").hide();  
100
    			} else {
101
    				$("#defaultSettings").show();  
102
    			}
103
            }
104
        }
105
    });
106
    setInterval(leaderCheck,500);
107
});