majsoul client tool


Keywords
riichi, mahjong, mahjsoul, majsoul, MahjongSoul
License
MIT
Install
npm install mjsoul@2.3.0

Documentation

mjsoul

雀魂客户端组件
完成了雀魂底层protobuf数据的解析,只需要调用接口传入json数据,就能收到返回的json数据
能处理所有请求、响应和事件(对局暂未实现)
可以登陆国服日服美服,自动重新连接
接口和数据类型定义在liqi.json中,也可以查看API

Install with npm:

$ npm i mjsoul

Example:

const MJSoul = require("mjsoul")
const mjsoul = new MJSoul()

// set option
// const mjsoul = new MJSoul({
//     "wcOption": {
//         "proxy": ..., //参考websockets/ws中的proxy用法
//         ...
//     },
//     "url": "wss://mj-srv-6.majsoul.com:4501",
// })

// wss://mj-srv-6.majsoul.com:4501 国服海外
// wss://mjjpgs.mahjongsoul.com:4501 日服
// wss://mjusgs.mahjongsoul.com:4501 美服

let onOpen = ()=>{
    // call api
    mjsoul.send("fetchConnectionInfo", (data)=>{
        console.log(data)
    })
    // login
    mjsoul.send("login", {account: "account", password: mjsoul.hash("password")}, (data)=>{
        console.log(data)
        // call api
        mjsoul.send("fetchFriendList", (data)=>{
            console.log(data)
        })
    })
}

// bind event
mjsoul.on("NotifyAnotherLogin", (data)=>{
    console.log("logout", data)
})
mjsoul.on("NotifyAccountLogout", onOpen)
mjsoul.open(onOpen)

////////////////////////////////////////////////////

//大会室后台:
const dhs = new MJSoul.DHS()
dhs.open(()=>{
    // 后台数据定义文件dhs.json
    dhs.send("loginContestManager", (data)=>{
        console.log(data)
    }, {account: "account", password: dhs.hash("password")})
})

///////////////////////////////////////////////////

//解析牌谱
MJSoul.record.parseById("your game uuid", (data)=>{
    console.log(data)
})

v2.0修改(不兼容旧版本)

  • 低版本nodejs支持(v8.10通过)
  • 修改了登陆函数
  • 更改了重连的方式(在发消息时才会触发)
  • 删除内置代理,增加wsOption参数