您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add the ability to send blueprints (from any kind) to starlog groups
当前为
// ==UserScript== // @name Starlog Group Sender // @namespace bitbucket.org/Odahviing // @include http://www.war-facts.com/player.php // @include http://www.war-facts.com/bptrade.php?* // @include http://www.war-facts.com/sdtrade.php?* // @description Add the ability to send blueprints (from any kind) to starlog groups // @version 1.1 // @grant GM_getValue // @grant GM_setValue // ==/UserScript== // Version 1.0 - Support on blueprint trade and ship design trade, not best implemented, will make it better in the future (use same button) // Version 1.1 - Integrated the two buttons to one, still need better response message /* Settings */ var ButtonName = "buttonGM"; var PlayerSettings = "player"; var BlueprintSendName = "bptrade"; var BlueprintSendSelect = "bpplayer"; var ShipDesignSendName = "sdtrade"; var ShipDesignSendSelect = "sdplayer"; /* End Settings */ function saveGroups() { var groupsNames = document.getElementsByName('editstarloggroupname'); var groupsId = document.getElementsByName('editstarloggroup'); var arrayList = [] for (var index = 0 ; index < groupsId.length; index ++) { var singleArray = [groupsId[index].value, groupsNames[index].value]; var playersList = document.getElementById("starloggroup" + groupsId[index].value); var playersSpan = playersList.getElementsByTagName('span'); for (var sIndex = 0; sIndex < playersSpan.length; sIndex ++) { var finalId = playersSpan[sIndex].id.substring(3, playersSpan[sIndex].id.indexOf('-')); singleArray.push(finalId); } arrayList.push(singleArray); } GM_setValue("stargroupId", arrayList); } function addGroupsOptions(selectName) { var loadedData = GM_getValue("stargroupId"); var select = document.getElementsByName(selectName); var docfrag = document.createDocumentFragment(); for (var index = 0; index < loadedData.length; index ++) { docfrag.appendChild( new Option("Starlog Group: " + loadedData[index][1], loadedData[index][0])); } select[0].insertBefore(docfrag,select[0].firstChild); } // Old Function - Version 1.0 function drawButton(Name, Select) { var row = document.getElementsByTagName('form'); row[0].innerHTML = row[0].innerHTML + "<input id='" + ButtonName + "' name='Submit' value='Send To Group' type='button'>"; document.getElementById(ButtonName).addEventListener("click", function(){ sendToGroup(Name, Select)}, false); } function changeButton(Name, Select) { var row = document.getElementsByName('Submit'); row[0].type = "button"; row[0].addEventListener("click", function(){ sendToGroup(Name, Select)}, false); } function getInputValues(form, page) { var inputValues = form.getElementsByTagName('input'); var values = []; switch(page) { case ShipDesignSendName: values = [inputValues[0].value, inputValues[1].value]; return "Submit=Give&tradeid=" + values[0] + "&type=" + values[1] + "&" + ShipDesignSendSelect +"="; case BlueprintSendName: values = [inputValues[0].value, inputValues[1].value, inputValues[2].value]; return "Submit=Give&tradeid=" + values[0] + "&type=" + values[1] + "&subtype=" + values[2] + "&" + BlueprintSendSelect + "="; } } function sendToGroup(page, selector) { var loadedData = GM_getValue("stargroupId"); var select = document.getElementsByName(selector); var regForm = document.getElementsByTagName('form'); var groupId = select[0].value; var neededIndex = -1; for (var index = 0; index < loadedData.length; index ++) { if (loadedData[index][0] == groupId) neededIndex = index; } if (neededIndex == -1) { regForm[0].submit(); return; } baseParams = getInputValues(regForm[0], page); var playerAmount = loadedData[neededIndex].length - 2; for (var sIndex = 0; sIndex < playerAmount; sIndex ++) { var params = baseParams + loadedData[neededIndex][sIndex + 2]; xhttp = new XMLHttpRequest(); xhttp.open("POST", page + ".php", true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send(params); } alert("Finish Sending Blueprint To '" + loadedData[neededIndex][1] + "' Group (" + playerAmount.toString() + " Players)"); regForm[0].submit(); } function main() { var page = document.URL.substring(document.URL.indexOf("/")); if (page.includes(PlayerSettings)) { saveGroups(); } else if (page.includes(BlueprintSendName)) { changeButton(BlueprintSendName, BlueprintSendSelect); addGroupsOptions(BlueprintSendSelect); } else if (page.includes(ShipDesignSendName)) { changeButton(ShipDesignSendName, ShipDesignSendName); addGroupsOptions(ShipDesignSendSelect); } } main();