mirror of
https://github.com/HIllya51/LunaHook.git
synced 2024-11-23 22:05:36 +08:00
86 lines
2.5 KiB
JavaScript
86 lines
2.5 KiB
JavaScript
var fontface='';
|
||
|
||
function splitfonttext(transwithfont){
|
||
if(transwithfont[0]=='\x01'){
|
||
transwithfont=transwithfont.substr(1)
|
||
split=transwithfont.search('\x01')
|
||
if(split==-1)return transwithfont;
|
||
fontface=transwithfont.substr(0,split)
|
||
text=transwithfont.substr(split+1)
|
||
return text;
|
||
}
|
||
else{
|
||
return transwithfont;
|
||
}
|
||
}
|
||
function clipboardsender(s){
|
||
try{
|
||
const _clipboard = require('nw.gui').Clipboard.get();
|
||
_clipboard.set(s, 'text');
|
||
transwithfont=_clipboard.get('text');
|
||
}
|
||
catch(err){
|
||
try{
|
||
|
||
const clipboard = require('electron').clipboard;
|
||
clipboard.writeText(s);
|
||
transwithfont= clipboard.readText();
|
||
}
|
||
catch(err2){
|
||
return s;
|
||
}
|
||
}
|
||
if(transwithfont.length==0)return s;
|
||
return splitfonttext(transwithfont)
|
||
}
|
||
function rpgmakerhook(){
|
||
|
||
if(Window_Message.prototype.originstartMessage)return;
|
||
Window_Message.prototype.originstartMessage=Window_Message.prototype.startMessage;
|
||
Bitmap.prototype.origin_makeFontNameText=Bitmap.prototype._makeFontNameText;
|
||
Bitmap.prototype._makeFontNameText=function(){
|
||
if(fontface=='')return this.origin_makeFontNameText();
|
||
return (this.fontItalic ? 'Italic ' : '') +
|
||
this.fontSize + 'px ' + fontface;
|
||
}
|
||
Window_Message.prototype.startMessage = function()
|
||
{
|
||
gametext = $gameMessage.allText();
|
||
resp=clipboardsender(gametext);
|
||
$gameMessage._texts=[resp]
|
||
this.originstartMessage();
|
||
};
|
||
}
|
||
|
||
function tyranohook() {
|
||
|
||
if(tyrano.plugin.kag.tag.text.originstart)return;
|
||
tyrano.plugin.kag.tag.text.originstart=tyrano.plugin.kag.tag.text.start;
|
||
tyrano.plugin.kag.tag.text.start = function (pm) {
|
||
if (1 != this.kag.stat.is_script && 1 != this.kag.stat.is_html) {
|
||
pm.val=clipboardsender(pm.val);
|
||
if(fontface!=''){
|
||
this.kag.stat.font.face=fontface
|
||
}
|
||
}
|
||
return this.originstart(pm)
|
||
}
|
||
}
|
||
function retryinject(times){
|
||
if(times==0)return;
|
||
try{
|
||
if(window.tyrano && tyrano.plugin){
|
||
tyranohook();
|
||
}
|
||
else if(window.Utils && Utils.RPGMAKER_NAME){
|
||
rpgmakerhook();
|
||
}
|
||
else{
|
||
setTimeout(retryinject,3000,times-1);
|
||
}
|
||
}
|
||
catch(err){
|
||
//非主线程,甚至没有window对象,会弹窗报错
|
||
}
|
||
}
|
||
setTimeout(retryinject,1000,3); |