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

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

当前为 2024-06-08 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Kongregate Flash games fixer add-on - default swf player setting
  3. // @version 3
  4. // @author Matrix4348
  5. // @namespace https://greasyfork.org/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. function FlashSupport(){
  16. var np=navigator.plugins, npl=np.length;
  17. for(var k=0;k<npl;k++){ if((np[k].name=="Shockwave Flash")&(np[k].filename!="ruffle.js")){return true;} }
  18. return false;
  19. }
  20.  
  21. function return_default_behaviour(){
  22. if(FlashSupport()==true){ return "Flash"; }
  23. else if(navigator.userAgent.search("Windows")>-1){ return "SuperNova"; } // At least while Ruffle is not finished.
  24. else if(navigator.userAgent.search("Windows")==-1){ return "Ruffle"; } // Because SuperNova only works on Windows.
  25. else { return "Flash"; }
  26. }
  27.  
  28. function open_settings(){
  29. var default_player=prompt("Which swf player must be used by default (when a page loads, not when buttons are clicked on): Flash, SuperNova or Ruffle?\n\n Note: Typing anything else will be treated like "+return_default_behaviour()+".");
  30. switch((default_player|"null").toLowerCase()) {
  31. case "null":
  32. break;
  33. case "flash":
  34. GM_setValue("default_swf_player","Flash");
  35. break;
  36. case "supernova":
  37. GM_setValue("default_swf_player","SuperNova");
  38. break;
  39. case "ruffle":
  40. GM_setValue("default_swf_player","Ruffle");
  41. break;
  42. default:
  43. GM_setValue("default_swf_player",return_default_behaviour());
  44. }
  45. document.getElementById("default swf player setting button").innerHTML="Set default swf player <br> <i>Currently: "+GM_getValue( "default_swf_player", return_default_behaviour() )+"</i>";
  46. }
  47.  
  48. function create_settings_button(){
  49. var b=document.createElement("button");
  50. b.id="default swf player setting button";
  51. b.innerHTML="Set default swf player <br> <i>Currently: "+GM_getValue( "default_swf_player", return_default_behaviour() )+"</i>";
  52. b.onclick=open_settings;
  53. b.style.borderWidth="1px";
  54. b.style.backgroundColor="grey";
  55. var h=50,w=150;
  56. b.style.height=h+"px";
  57. b.style.width=w+"px";
  58. b.style.position="relative";
  59. b.style.top=document.getElementById("maingame").clientHeight*(-1)+"px";
  60. b.style.left=document.getElementById("maingame").clientWidth*(-1/2)-w*1/2+"px";
  61. document.getElementById("floating_game_holder").appendChild(b);
  62. }
  63.  
  64. function main_function(){
  65. var ql=document.getElementById("quicklinks");
  66. var is_Flash_game, everything_ready;
  67. if( document.readyState=="complete" && typeof(active_user)!="undefined" && typeof(activateGame)!="undefined" && typeof(holodeck)!="undefined" && ql!==null ){
  68. if(typeof(active_user.gameType)!="undefined"){
  69. if(active_user.gameType()=="flash"){ is_Flash_game=true; } else{ is_Flash_game=false; }
  70. }
  71. else{ is_Flash_game=-1; }
  72. if(typeof(LoadFrame4348)!="undefined"){ everything_ready=true; }
  73. else{ everything_ready=false; }
  74. }
  75.  
  76. if(is_Flash_game==true&&everything_ready){
  77. create_settings_button();
  78. var swf_player=GM_getValue( "default_swf_player", return_default_behaviour() );
  79. LoadFrame4348(swf_player);
  80. }
  81. else if(is_Flash_game!=false){ setTimeout(function(){ main_function(); },1000); }
  82. }
  83.  
  84. main_function();