100 lines
3.8 KiB
JavaScript
Executable file
100 lines
3.8 KiB
JavaScript
Executable file
const console2 = require("./console.js")
|
|
const parse = require("../util/chatparse.js")
|
|
const parse1204 = require("../util/chatparse_1204.js")
|
|
const messageTypes=[
|
|
"",
|
|
"chat.type.emote",
|
|
"commands.message.display.incoming",
|
|
"",
|
|
"",
|
|
"chat.type.announcement",
|
|
"",
|
|
""
|
|
]
|
|
module.exports={
|
|
load:()=>{
|
|
//console.log("Loaded on global")
|
|
},
|
|
loadBot:(b)=>{
|
|
b._client.on("profileless_chat",(data)=>{
|
|
if(data.type==4){
|
|
const json=parse1204(data.message);
|
|
const parsed=parse(json)[1];
|
|
let split=parsed.split(": ");
|
|
const chatName = split.splice(0,1)[0]
|
|
const username=b.findRealName(chatName);
|
|
const uuid=b.findUUID(username)
|
|
b.emit("chat",{json,type:"profileless",uuid,message: split.join(": "), username})
|
|
} else {
|
|
b.emit("chat",{
|
|
json: {
|
|
translate: messageTypes[data.type],
|
|
color:data.type==2?"gray":"reset",
|
|
with:[
|
|
parse1204(data.name),
|
|
parse1204(data.message)
|
|
]
|
|
},
|
|
type:"profileless",
|
|
uuid:"00000000-0000-0000-0000-000000000000",
|
|
message: parse(parse1204(data.message))[1],
|
|
username:parse(parse1204(data.name))[1]
|
|
})
|
|
}
|
|
})
|
|
|
|
b._client.on("player_chat",(data)=>{
|
|
if(data.type==4){
|
|
b.emit("chat",{json:parse1204(data.unsignedChatContent),type:"player",uuid:data.senderUuid, message: data.plainMessage, username: parse(parse1204(data.networkName))[1]})
|
|
} else {
|
|
b.emit("chat",{
|
|
json: {
|
|
translate: messageTypes[data.type],
|
|
color:data.type==2?"gray":"reset",
|
|
with:[
|
|
parse1204(data.networkName),
|
|
data.plainMessage
|
|
]
|
|
},
|
|
type:"player",
|
|
uuid:data.senderUuid,
|
|
message: parse(data.plainMessage)[1],
|
|
username:parse(parse1204(data.networkName))[1]
|
|
})
|
|
}
|
|
})
|
|
b._client.on("system_chat",(data)=>{
|
|
const json=parse1204(data.content);
|
|
const parsed=parse(json)[1];
|
|
let split=parsed.split(": ");
|
|
const chatName = split.splice(0,1)[0]
|
|
const username=b.findRealName(chatName);
|
|
const uuid=b.findUUID(username)
|
|
b.emit("chat",{json,type:"system",uuid, message: split.join(": "), username})
|
|
})
|
|
b._client.on("chat",(data)=>{ //Legacy chat
|
|
const json=parse1204(data.message);
|
|
const parsed=parse(json)[1];
|
|
let split=parsed.split(": ");
|
|
const chatName = split.splice(0,1)[0]
|
|
const username=b.findRealName(chatName);
|
|
const uuid=b.findUUID(username)
|
|
b.emit("chat",{json,type:"legacy",uuid:data.uuid?data.uuid:uuid, message: split.join(": "), username})
|
|
})
|
|
b.on("chat",(data)=>{
|
|
const msg=parse(data.json);
|
|
if(msg[1].endsWith("\n\n\n\n\nThe chat has been cleared")) return;
|
|
b.emit("plainchat",msg[1])
|
|
console2.write(`[${b.id}] [${data.type}] `+msg[0])
|
|
let fullCommand = data.message;
|
|
|
|
for(const i in b.prefix){
|
|
if(fullCommand.startsWith(b.prefix[i])){
|
|
const command=fullCommand.slice(b.prefix[i].length);
|
|
b.runCommand(data.username,data.uuid,command,b.prefix[i]);
|
|
}
|
|
}
|
|
})
|
|
},
|
|
parse
|
|
}
|