276 lines
8.4 KiB
JavaScript
276 lines
8.4 KiB
JavaScript
var SDKManage = require("SDKManage");
|
|
var playerData = require("playerData");
|
|
const NetManage = require("../../manages/NetManage");
|
|
cc.Class({
|
|
extends: cc.Component,
|
|
|
|
properties: {
|
|
nd_friend: {
|
|
default: null,
|
|
type: cc.Node,
|
|
},
|
|
|
|
nd_apply: {
|
|
default: null,
|
|
type: cc.Node,
|
|
},
|
|
|
|
nd_blacklist: {
|
|
default: null,
|
|
type: cc.Node,
|
|
},
|
|
|
|
edit_find: {
|
|
default: null,
|
|
type: cc.EditBox,
|
|
},
|
|
|
|
pb_oneFriend: {
|
|
default: null,
|
|
type: cc.Prefab,
|
|
},
|
|
|
|
// contents
|
|
content_friend: {
|
|
default: null,
|
|
type: cc.Node,
|
|
},
|
|
|
|
friendScrollview: {
|
|
default: null,
|
|
type: cc.ScrollView,
|
|
},
|
|
},
|
|
|
|
|
|
onLoad() {
|
|
// get friendlist
|
|
cc.chatMgr.sendmsg("CMFriendList");
|
|
cc.Notifier.on("friendlist", this, this.getFriendList.bind(this));
|
|
cc.Notifier.on("SMFriendApplyList", this, this.getApplyList.bind(this));
|
|
cc.Notifier.on("dirtywordcheck", this, this.dirtywordcheck.bind(this));
|
|
// agree refuse
|
|
cc.Notifier.on("SMFriendAgree", this, this.SMFriendAgree.bind(this));
|
|
cc.Notifier.on("SMFriendRefuse", this, this.SMFriendRefuse.bind(this));
|
|
cc.Notifier.on("SMFriendDelete", this, this.SMFriendDelete.bind(this));
|
|
//black
|
|
cc.Notifier.on("blacklist", this, this.SMFriendBlackList.bind(this));
|
|
cc.Notifier.on(
|
|
"SMFriendDeleteBlack",
|
|
this,
|
|
this.SMFriendDeleteBlack.bind(this)
|
|
);
|
|
this.setToFriend();
|
|
},
|
|
|
|
onDestroy() {
|
|
cc.Notifier.off("friendlist", this, this.getFriendList.bind(this));
|
|
cc.Notifier.off(
|
|
"SMFriendApplyList",
|
|
this,
|
|
this.getApplyList.bind(this)
|
|
);
|
|
cc.Notifier.off("dirtywordcheck", this, this.dirtywordcheck.bind(this));
|
|
cc.Notifier.off("SMFriendAgree", this, this.SMFriendAgree.bind(this));
|
|
cc.Notifier.off("SMFriendRefuse", this, this.SMFriendRefuse.bind(this));
|
|
cc.Notifier.off("SMFriendDelete", this, this.SMFriendDelete.bind(this));
|
|
cc.Notifier.off("blacklist", this, this.SMFriendBlackList.bind(this));
|
|
cc.Notifier.off(
|
|
"SMFriendDeleteBlack",
|
|
this,
|
|
this.SMFriendDeleteBlack.bind(this)
|
|
);
|
|
},
|
|
|
|
setToNone() {
|
|
if (this.edit_find) this.edit_find.string = "";
|
|
if (this.nd_friend) this.nd_friend.active = false;
|
|
this.nd_apply.active = false;
|
|
this.nd_blacklist.active = false;
|
|
this.content_friend.destroyAllChildren();
|
|
this.friendScrollview.stopAutoScroll();
|
|
this.friendScrollview.scrollToTop();
|
|
},
|
|
|
|
initOne(type, data, tmpData = {}) {
|
|
const node = cc.instantiate(this.pb_oneFriend);
|
|
switch (type) {
|
|
case 0:
|
|
|
|
node.getComponent("SingleFriendList").setToFriendList();
|
|
break;
|
|
case 1:
|
|
|
|
node.getComponent("SingleFriendList").setToApplyList();
|
|
break;
|
|
case 2:
|
|
|
|
node.getComponent("SingleFriendList").setToBlackList();
|
|
break;
|
|
case 3:
|
|
|
|
node.getComponent("SingleFriendList").setToAddFriend();
|
|
break;
|
|
}
|
|
node.getComponent("SingleFriendList").init(data);
|
|
if (tmpData) node.getComponent("SingleFriendList").saveData(tmpData);
|
|
this.content_friend.addChild(node);
|
|
},
|
|
|
|
setToFriend() {
|
|
this.setToNone();
|
|
cc.chatMgr.sendmsg("CMFriendList");
|
|
},
|
|
|
|
setToApply() {
|
|
this.setToNone();
|
|
cc.chatMgr.sendmsg("CMFriendApplyList");
|
|
},
|
|
|
|
setToBlackList() {
|
|
this.setToNone();
|
|
cc.chatMgr.sendmsg("CMFriendBlackList");
|
|
},
|
|
|
|
onClose() {
|
|
this.node.destroy();
|
|
},
|
|
|
|
onSearch() {
|
|
if (this.edit_find.string != "" && this.edit_find.string) {
|
|
NetManage.dirtyWordCheck(this.edit_find.string);
|
|
} else {
|
|
cc.uiHelper.showTips("User not found!");
|
|
}
|
|
},
|
|
|
|
|
|
dirtywordcheck(obj) {
|
|
if (obj.errcode == 0) {
|
|
if (this.edit_find.string != "" && this.edit_find.string) {
|
|
var tmp = "";
|
|
if (this.edit_find.string.startsWith("0x")) {
|
|
|
|
console.log("search by wallet");
|
|
tmp = `6516_2006_${this.edit_find.string.toLowerCase()}`;
|
|
NetManage.searchUserByAccountid(tmp, (res) => {
|
|
if (res.info.account_id != SDKManage.account_id) {
|
|
this.setToNone();
|
|
this.initOne(3, res.info);
|
|
}
|
|
});
|
|
} else if (
|
|
this.edit_find.string.startsWith("6513_2006_") ||
|
|
this.edit_find.string.startsWith("6516_2006_")
|
|
) {
|
|
|
|
console.log("search by account");
|
|
tmp = this.edit_find.string;
|
|
NetManage.searchUserByAccountid(tmp, (res) => {
|
|
if (res.info.account_id != SDKManage.account_id) {
|
|
this.setToNone();
|
|
this.initOne(3, res.info);
|
|
}
|
|
});
|
|
} else {
|
|
// nicknames
|
|
console.log("search by name");
|
|
tmp = this.edit_find.string;
|
|
NetManage.searchUserByName(tmp, (res) => {
|
|
console.log(JSON.stringify(res));
|
|
if (res.info.account_id != SDKManage.account_id) {
|
|
this.setToNone();
|
|
this.initOne(3, res.info);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
} else {
|
|
cc.uiHelper.showTips("User not found!");
|
|
this.edit_find.string = "";
|
|
}
|
|
},
|
|
|
|
onClickToggle(event, data) {
|
|
switch (data) {
|
|
case "0":
|
|
this.setToFriend();
|
|
break;
|
|
case "1":
|
|
this.setToApply();
|
|
break;
|
|
case "2":
|
|
this.setToBlackList();
|
|
break;
|
|
}
|
|
},
|
|
|
|
getFriendList(msg) {
|
|
this.setToNone();
|
|
this.friend_list = [];
|
|
for (var m = 0; m < msg.friend_list.length; m++) {
|
|
this.friend_list.push(msg.friend_list[m]);
|
|
}
|
|
for (var i = this.friend_list.length - 1; i >= 0; i--) {
|
|
if (
|
|
this.friend_list[i].base_data["account_id"] ==
|
|
SDKManage.account_id
|
|
) {
|
|
this.friend_list.splice(i, 1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
for (let i = 0; i < this.friend_list.length; i += 1) {
|
|
this.initOne(0, this.friend_list[i].base_data, this.friend_list[i]);
|
|
}
|
|
},
|
|
|
|
getApplyList(msg) {
|
|
this.setToNone();
|
|
var apply_list = msg.apply_list;
|
|
for (let i = 0; i < apply_list.length; i += 1) {
|
|
this.initOne(1, apply_list[i].base_data, apply_list[i]);
|
|
}
|
|
},
|
|
|
|
SMFriendAgree(msg) {
|
|
if (msg.errcode == null || msg.errcode == 0) {
|
|
cc.uiHelper.showTips(cc.language.stringformat("addsuccess"));
|
|
cc.chatMgr.sendmsg("CMFriendApplyList");
|
|
} else {
|
|
cc.uiHelper.showTips(msg.errmsg);
|
|
}
|
|
},
|
|
|
|
SMFriendRefuse(msg) {
|
|
cc.chatMgr.sendmsg("CMFriendApplyList");
|
|
},
|
|
|
|
SMFriendDelete(msg) {
|
|
if (msg.errcode == null || msg.errcode == 0) {
|
|
cc.uiHelper.showTips(cc.language.stringformat("deletesuccess"));
|
|
}
|
|
cc.chatMgr.sendmsg("CMFriendList");
|
|
},
|
|
|
|
SMFriendBlackList() {
|
|
if (!playerData.black_list) {
|
|
return;
|
|
}
|
|
for (let i = 0; i < playerData.black_list.length; i += 1) {
|
|
this.initOne(
|
|
2,
|
|
playerData.black_list[i].base_data,
|
|
playerData.black_list[i]
|
|
);
|
|
}
|
|
},
|
|
SMFriendDeleteBlack(msg) {
|
|
if (msg.errcode == null || msg.errcode == 0) {
|
|
cc.uiHelper.showTips(cc.language.stringformat("deletesuccess"));
|
|
}
|
|
cc.chatMgr.sendmsg("CMFriendBlackList");
|
|
},
|
|
});
|