Kongregate Flash games fixer add-on - default swf player setting

Sets the Kongregate Flash games fixer's default swf player to whatever you prefer.

  1. // ==UserScript==
  2. // @name Kongregate Flash games fixer add-on - default swf player setting
  3. // @version 5
  4. // @author Matrix4348
  5. // @namespace https://gf.qytechs.cn/users/4818
  6. // @description Sets the Kongregate Flash games fixer's default swf player to whatever you prefer.
  7. // @license MIT
  8. // @match *://www.kongregate.com/games/*/*
  9. // @match *://www.kongregate.com/*/games/*/*
  10. // @run-at document-end
  11. // @grant GM_setValue
  12. // @grant GM_getValue
  13. // ==/UserScript==
  14.  
  15. var current_player;
  16.  
  17. function FlashSupport(){
  18. var np=navigator.plugins, npl=np.length;
  19. for(var k=0;k<npl;k++){ if((np[k].name=="Shockwave Flash")&(np[k].filename!="ruffle.js")){return true;} }
  20. return false;
  21. }
  22.  
  23. function return_default_behaviour(){
  24. if(FlashSupport()==true){ return "Flash"; }
  25. else if(navigator.userAgent.search("Windows")>-1){ return "SuperNova"; } // At least while Ruffle is not finished.
  26. else if(navigator.userAgent.search("Windows")==-1){ return "Ruffle"; } // Because SuperNova only works on Windows.
  27. else { return "Flash"; }
  28. }
  29.  
  30. function open_settings(){
  31. var default_player=prompt("Which swf player must be used by default (when a page loads, not when buttons are clicked on): Flash, SuperNova, Ruffle or AwayFL?\n\n Note: Typing anything else will be treated like "+return_default_behaviour()+".");
  32. switch((default_player||"null").toLowerCase()) {
  33. case "null":
  34. break;
  35. case "flash":
  36. GM_setValue("default_swf_player","Flash");
  37. break;
  38. case "supernova":
  39. GM_setValue("default_swf_player","SuperNova");
  40. break;
  41. case "ruffle":
  42. GM_setValue("default_swf_player","Ruffle");
  43. break;
  44. case "awayfl":
  45. GM_setValue("default_swf_player","AwayFL");
  46. break;
  47. default:
  48. GM_setValue("default_swf_player",return_default_behaviour());
  49. }
  50. document.getElementById("default swf player setting button").innerHTML="Set default swf player <br> <i>Currently: "+GM_getValue( "default_swf_player", return_default_behaviour() )+"</i>";
  51. }
  52.  
  53. function create_settings_button(){
  54. var b=document.createElement("button");
  55. b.id="default swf player setting button";
  56. b.innerHTML="Set default swf player <br> <i>Currently: "+GM_getValue( "default_swf_player", return_default_behaviour() )+"</i>";
  57. b.onclick=open_settings;
  58. b.style.borderWidth="1px";
  59. b.style.backgroundColor="grey";
  60. var h=50,w=150;
  61. b.style.height=h+"px";
  62. b.style.width=w+"px";
  63. b.style.position="relative";
  64. b.style.top=document.getElementById("maingame").clientHeight*(-1)+"px";
  65. //b.style.left=document.getElementById("maingame").clientWidth*(-1/2)-w*1/2+"px";
  66. b.style.left=document.getElementById("maingame").clientWidth*(-1/2)+"px";
  67. document.getElementById("floating_game_holder").appendChild(b);
  68. }
  69.  
  70. function create_second_button(){
  71. var b=document.createElement("button");
  72. b.id="default swf player setting button 2";
  73. b.innerHTML="Set default swf player to the currently used one ("+return_current_player()+")";
  74. b.onclick = function(){
  75. GM_setValue("default_swf_player",return_current_player());
  76. document.getElementById("default swf player setting button").innerHTML="Set default swf player <br> <i>Currently: "+return_current_player()+"</i>";
  77. };
  78. b.style.borderWidth="1px";
  79. b.style.backgroundColor="grey";
  80. var h=50,w=150;
  81. b.style.height=h+"px";
  82. b.style.width=w+"px";
  83. b.style.position="relative";
  84. b.style.top=document.getElementById("maingame").clientHeight*(-1)+document.getElementById("default swf player setting button").clientHeight+13+"px";
  85. b.style.left=document.getElementById("maingame").clientWidth*(-1/2)-w+"px";
  86. document.getElementById("floating_game_holder").appendChild(b);
  87. }
  88.  
  89. function update_current_player(p){
  90. current_player = p;
  91. }
  92.  
  93. function return_current_player(){
  94. return current_player;
  95. }
  96.  
  97. function add_event_listeners(){
  98. var players = ["Flash","Ruffle","SuperNova","AwayFL"];
  99. for(let p of players){
  100. document.getElementById("Button to (re)load with "+p).addEventListener("click",function(){
  101. update_current_player(p);
  102. document.getElementById("default swf player setting button 2").innerHTML="Set default swf player to the currently used one ("+return_current_player()+")";
  103. });
  104. }
  105. }
  106.  
  107. function main_function(){
  108. var ql=document.getElementById("quicklinks");
  109. var is_Flash_game, everything_ready;
  110. if( document.readyState=="complete" && typeof(active_user)!="undefined" && typeof(activateGame)!="undefined" && typeof(holodeck)!="undefined" && ql!==null ){
  111. if(typeof(active_user.gameType)!="undefined"){
  112. if(active_user.gameType()=="flash"){ is_Flash_game=true; } else{ is_Flash_game=false; }
  113. }
  114. else{ is_Flash_game=-1; }
  115. if(typeof(LoadFrame4348)!="undefined" && document.getElementById("Button to (re)load with AwayFL")!=undefined ){ everything_ready=true; }
  116. else{ everything_ready=false; }
  117. }
  118.  
  119. if(is_Flash_game==true&&everything_ready){
  120. var swf_player=GM_getValue( "default_swf_player", return_default_behaviour() );
  121. update_current_player(swf_player);
  122. create_settings_button();
  123. add_event_listeners();
  124. create_second_button();
  125. LoadFrame4348(swf_player);
  126. }
  127. else if(is_Flash_game!=false){ setTimeout(function(){ main_function(); },1000); }
  128. }
  129.  
  130. main_function();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址