mirror of
				https://github.com/szrpf/DataBoardDemo.git
				synced 2025-11-03 21:05:37 +00:00 
			
		
		
		
	v2.0
This commit is contained in:
		@@ -1 +1 @@
 | 
			
		||||
{"version":"1.0.8","stats":{"D:/Project/DataBoardDemo/temp/quick-scripts/src/__qc_index__.js":"2023-04-23T09:16:44.271Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/Hero.js":"2023-04-23T09:16:44.236Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/DataBoard.js":"2023-04-23T09:16:44.231Z"}}
 | 
			
		||||
{"version":"1.0.8","stats":{"D:/Project/DataBoard/temp/quick-scripts/src/__qc_index__.js":"2023-05-24T05:24:03.276Z","D:/Project/DataBoard/temp/quick-scripts/src/assets/Script/DataBoard.js":"2023-05-24T05:24:03.172Z","D:/Project/DataBoard/temp/quick-scripts/src/assets/Script/Hero.js":"2023-05-24T05:24:03.176Z"}}
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
 | 
			
		||||
(function () {
 | 
			
		||||
var scripts = [{"deps":{"./assets/Script/DataBoard":2,"./assets/Script/Hero":1},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/Hero.js"},{"deps":{},"path":"preview-scripts/assets/Script/DataBoard.js"}];
 | 
			
		||||
var scripts = [{"deps":{"./assets/Script/DataBoard":1,"./assets/Script/Hero":2},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/DataBoard.js"},{"deps":{},"path":"preview-scripts/assets/Script/Hero.js"}];
 | 
			
		||||
var entries = ["preview-scripts/__qc_index__.js"];
 | 
			
		||||
var bundleScript = 'preview-scripts/__qc_bundle__.js';
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -80,4 +80,4 @@ cc._RF.pop();
 | 
			
		||||
                        });
 | 
			
		||||
                    }
 | 
			
		||||
                })();
 | 
			
		||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZXJvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBdUJDO1FBdEJHLFFBQUUsR0FBRyxHQUFHLENBQUM7UUFDVCxRQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsV0FBSyxHQUFHO1lBQ0osSUFBSSxFQUFDLElBQUk7WUFDVCxLQUFLLEVBQUM7Z0JBQ0YsSUFBSSxFQUFDLElBQUk7Z0JBQ1QsTUFBTSxFQUFDLEVBQUU7YUFDWjtZQUNELElBQUksRUFBQztnQkFDRCxJQUFJLEVBQUMsSUFBSTtnQkFDVCxJQUFJLEVBQUM7b0JBQ0QsSUFBSSxFQUFDLElBQUk7b0JBQ1QsS0FBSyxFQUFDLENBQUM7b0JBQ1AsT0FBTyxFQUFDLEdBQUc7aUJBQ2Q7YUFDSjtTQUNKLENBQUE7O0lBTUwsQ0FBQztJQUpHLDJCQUFNLEdBQU4sVUFBUSxFQUFFO1FBQ04sSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBdEJnQixVQUFVO1FBRDlCLE9BQU87T0FDYSxVQUFVLENBdUI5QjtJQUFELGlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7a0JBdkJvQixVQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWxsb3dvcmxkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIGhwID0gMTAwO1xyXG4gICAgbXAgPSA2MDtcclxuICAgIGVxdWlwID0ge1xyXG4gICAgICAgIG5hbWU6J+ijheWkhycsXHJcbiAgICAgICAgc3dvcmQ6e1xyXG4gICAgICAgICAgICBuYW1lOiflsI/liIAnLFxyXG4gICAgICAgICAgICBhdHRhY2s6MzBcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob2U6e1xyXG4gICAgICAgICAgICBuYW1lOifojYnpnosnLFxyXG4gICAgICAgICAgICBhdHRyOntcclxuICAgICAgICAgICAgICAgIG5hbWU6J+WxnuaApycsXHJcbiAgICAgICAgICAgICAgICBzcGVlZDo1LFxyXG4gICAgICAgICAgICAgICAgZHVyYWJsZToxMDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgdGhpcy5ocCArPSAxLjAqZHQ7XHJcbiAgICAgICAgdGhpcy5tcCArPSAwLjUqZHQ7XHJcbiAgICB9XHJcbn0iXX0=
 | 
			
		||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZXJvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBdUJDO1FBdEJHLFFBQUUsR0FBRyxHQUFHLENBQUM7UUFDVCxRQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsV0FBSyxHQUFHO1lBQ0osSUFBSSxFQUFDLElBQUk7WUFDVCxLQUFLLEVBQUM7Z0JBQ0YsSUFBSSxFQUFDLElBQUk7Z0JBQ1QsTUFBTSxFQUFDLEVBQUU7YUFDWjtZQUNELElBQUksRUFBQztnQkFDRCxJQUFJLEVBQUMsSUFBSTtnQkFDVCxJQUFJLEVBQUM7b0JBQ0QsSUFBSSxFQUFDLElBQUk7b0JBQ1QsS0FBSyxFQUFDLENBQUM7b0JBQ1AsT0FBTyxFQUFDLEdBQUc7aUJBQ2Q7YUFDSjtTQUNKLENBQUE7O0lBTUwsQ0FBQztJQUpHLDJCQUFNLEdBQU4sVUFBUSxFQUFFO1FBQ04sSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBdEJnQixVQUFVO1FBRDlCLE9BQU87T0FDYSxVQUFVLENBdUI5QjtJQUFELGlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7a0JBdkJvQixVQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XG5cbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWxsb3dvcmxkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcbiAgICBocCA9IDEwMDtcbiAgICBtcCA9IDYwO1xuICAgIGVxdWlwID0ge1xuICAgICAgICBuYW1lOifoo4XlpIcnLFxuICAgICAgICBzd29yZDp7XG4gICAgICAgICAgICBuYW1lOiflsI/liIAnLFxuICAgICAgICAgICAgYXR0YWNrOjMwXG4gICAgICAgIH0sXG4gICAgICAgIHNob2U6e1xuICAgICAgICAgICAgbmFtZTon6I2J6Z6LJyxcbiAgICAgICAgICAgIGF0dHI6e1xuICAgICAgICAgICAgICAgIG5hbWU6J+WxnuaApycsXG4gICAgICAgICAgICAgICAgc3BlZWQ6NSxcbiAgICAgICAgICAgICAgICBkdXJhYmxlOjEwMFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlIChkdCkge1xuICAgICAgICB0aGlzLmhwICs9IDEuMCpkdDtcbiAgICAgICAgdGhpcy5tcCArPSAwLjUqZHQ7XG4gICAgfVxufSJdfQ==
 | 
			
		||||
@@ -34,12 +34,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
 *          自定义参数:        节点自身属性,以及节点任意脚本中的属性
 | 
			
		||||
 *          锚点:             锚点位置会显示一个小红点
 | 
			
		||||
 * 自定义参数(配置想监控的数据):
 | 
			
		||||
 *          wp:               世界坐标,即相对于屏幕左下角的坐标
 | 
			
		||||
 *          radian:           节点弧度,单位π
 | 
			
		||||
 *          wp:               世界坐标
 | 
			
		||||
 *          radian:           节点弧度(单位:π)
 | 
			
		||||
 *          matrix:            变换矩阵
 | 
			
		||||
 *          parent:           父节点
 | 
			
		||||
 *          children:         子节点
 | 
			
		||||
 *          自身属性:          scale,width,opacity等
 | 
			
		||||
 *          自身属性:          x,y,parent,children等
 | 
			
		||||
 *          脚本属性:          脚本实例对象的属性
 | 
			
		||||
 * ↓↓参数可以用3种分隔符隔开↓↓
 | 
			
		||||
 *          英文逗号、英文冒号、空格
 | 
			
		||||
@@ -157,7 +155,7 @@ var DataBoard = /** @class */ (function (_super) {
 | 
			
		||||
            this._customLabelString = value;
 | 
			
		||||
            this.customLabelStringSplit = value
 | 
			
		||||
                .replace(/,/g, '_~_').replace(/:/g, '_!_').replace(/ /g, '_@_')
 | 
			
		||||
                .replace(/(?<!_)\n/g, '_\n').replace(/\n(?!_)/g, '\n_').split('_');
 | 
			
		||||
                .replace(/_*\n_*/g, '_\n_').split('_');
 | 
			
		||||
        },
 | 
			
		||||
        enumerable: false,
 | 
			
		||||
        configurable: true
 | 
			
		||||
@@ -298,8 +296,8 @@ var DataBoard = /** @class */ (function (_super) {
 | 
			
		||||
            var tmp = null;
 | 
			
		||||
            switch (strs[i]) {
 | 
			
		||||
                case 'wp':
 | 
			
		||||
                    var pos = this.node.convertToWorldSpaceAR(cc.v2(0, 0));
 | 
			
		||||
                    tmp = "(" + pos.x.toFixed(this.customLabelDigit) + ",\t" + pos.y.toFixed(this.customLabelDigit) + ")";
 | 
			
		||||
                    var matrix = this.node['_worldMatrix'].m;
 | 
			
		||||
                    tmp = matrix[12].toFixed(this.customLabelDigit) + ",\t" + matrix[13].toFixed(this.customLabelDigit);
 | 
			
		||||
                    break;
 | 
			
		||||
                case 'angle':
 | 
			
		||||
                    tmp = this.node.angle.toFixed(this.customLabelDigit) + '°';
 | 
			
		||||
@@ -308,26 +306,21 @@ var DataBoard = /** @class */ (function (_super) {
 | 
			
		||||
                    tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π';
 | 
			
		||||
                    break;
 | 
			
		||||
                case 'matrix':
 | 
			
		||||
                    var matrix = this.node['_worldMatrix'].m;
 | 
			
		||||
                    matrix = this.node['_worldMatrix'].m;
 | 
			
		||||
                    tmp = '';
 | 
			
		||||
                    for (var i_1 = 0; i_1 < 4; ++i_1) {
 | 
			
		||||
                        for (var j = 0; j < 4; ++j) {
 | 
			
		||||
                            var mm = matrix[j * 4 + i_1];
 | 
			
		||||
                            tmp += (mm < 0 ? '\t\t' : '\t\t\t') + mm.toFixed(this.customLabelDigit);
 | 
			
		||||
                            var m = matrix[j * 4 + i_1];
 | 
			
		||||
                            tmp += (m < 0 ? '\t\t' : '\t\t\t') + m.toFixed(this.customLabelDigit);
 | 
			
		||||
                        }
 | 
			
		||||
                        if (i_1 !== 3)
 | 
			
		||||
                            tmp += '\n';
 | 
			
		||||
                        i_1 !== 3 && (tmp += '\n');
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
                case 'parent':
 | 
			
		||||
                    tmp = this.node.parent.name;
 | 
			
		||||
                    break;
 | 
			
		||||
                case 'children':
 | 
			
		||||
                    tmp = '';
 | 
			
		||||
                    for (var i_2 = 0, len_1 = this.node.childrenCount; i_2 < len_1; ++i_2) {
 | 
			
		||||
                        tmp += "\t\t\t" + i_2 + "\uFF1A" + this.node.children[i_2].name;
 | 
			
		||||
                        if (i_2 !== len_1 - 1)
 | 
			
		||||
                            tmp += '\n';
 | 
			
		||||
                        i_2 !== len_1 - 1 && (tmp += '\n');
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
                case '~':
 | 
			
		||||
@@ -337,30 +330,41 @@ var DataBoard = /** @class */ (function (_super) {
 | 
			
		||||
                    tmp = ':\t';
 | 
			
		||||
                    break;
 | 
			
		||||
                case '@':
 | 
			
		||||
                    tmp = ' \t';
 | 
			
		||||
                    tmp = '\t\t';
 | 
			
		||||
                    break;
 | 
			
		||||
                default:
 | 
			
		||||
                    if (this.node[strs[i]] !== undefined) {
 | 
			
		||||
                        tmp = this.node[strs[i]];
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (strs[i].startsWith('#') && this.monitorComp !== null) {
 | 
			
		||||
                        tmp = this.monitorComp[strs[i].substring(1)];
 | 
			
		||||
                        tmp = this.parseString(strs[i].substring(1));
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
                        tmp = strs[i];
 | 
			
		||||
                    }
 | 
			
		||||
                    if (tmp && tmp.name) {
 | 
			
		||||
                    if (typeof tmp === 'number') {
 | 
			
		||||
                        tmp = tmp.toFixed(this.customLabelDigit);
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (tmp.name) {
 | 
			
		||||
                        tmp = tmp.name;
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
            if (typeof tmp === 'number') {
 | 
			
		||||
                tmp = tmp.toFixed(this.customLabelDigit);
 | 
			
		||||
            }
 | 
			
		||||
            str += tmp;
 | 
			
		||||
        }
 | 
			
		||||
        this.customLabel.string = str;
 | 
			
		||||
    };
 | 
			
		||||
    DataBoard.prototype.parseString = function (str) {
 | 
			
		||||
        var strs = str.split('.');
 | 
			
		||||
        var ret = this.monitorComp[strs[0]] || "#" + strs[0];
 | 
			
		||||
        for (var i = 1, len = strs.length; i < len; ++i) {
 | 
			
		||||
            if (ret[strs[i]] === undefined) {
 | 
			
		||||
                return (ret.name ? ret.name : ret) + "." + strs[i];
 | 
			
		||||
            }
 | 
			
		||||
            ret = ret[strs[i]];
 | 
			
		||||
        }
 | 
			
		||||
        return ret;
 | 
			
		||||
    };
 | 
			
		||||
    DataBoard.prototype.onDestroy = function () {
 | 
			
		||||
        if (cc.isValid(this.boardNode)) {
 | 
			
		||||
            this.boardNode.removeFromParent();
 | 
			
		||||
@@ -418,7 +422,7 @@ var DataBoard = /** @class */ (function (_super) {
 | 
			
		||||
        property
 | 
			
		||||
    ], DataBoard.prototype, "_customLabelString", void 0);
 | 
			
		||||
    __decorate([
 | 
			
		||||
        property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:角度(单位:π)\nmatrix:变换矩阵\nparent:父节点\nchildren:子节点\n自身属性:scale,width,opacity等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } })
 | 
			
		||||
        property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:节点弧度(单位:π)\nmatrix:变换矩阵\n自身属性:x,y,parent,children等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } })
 | 
			
		||||
    ], DataBoard.prototype, "customLabelString", null);
 | 
			
		||||
    __decorate([
 | 
			
		||||
        property
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
{"version":3,"sources":["assets\\Script\\Hero.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAM,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAG1C;IAAwC,8BAAY;IAApD;QAAA,qEASC;QAPG,QAAE,GAAG,GAAG,CAAC;QACT,QAAE,GAAG,EAAE,CAAC;;IAMZ,CAAC;IAJG,2BAAM,GAAN,UAAQ,EAAE;QACN,IAAI,CAAC,EAAE,IAAI,GAAG,GAAC,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,IAAI,GAAG,GAAC,EAAE,CAAC;IACtB,CAAC;IARgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAS9B;IAAD,iBAAC;CATD,AASC,CATuC,EAAE,CAAC,SAAS,GASnD;kBAToB,UAAU","file":"","sourceRoot":"/","sourcesContent":["const {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Helloworld extends cc.Component {\n\n    hp = 100;\n    mp = 60;\n\n    update (dt) {\n        this.hp += 1.0*dt;\n        this.mp += 0.5*dt;\n    }\n}"]}
 | 
			
		||||
{"version":3,"sources":["assets\\Script\\Hero.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAM,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAG1C;IAAwC,8BAAY;IAApD;QAAA,qEAuBC;QAtBG,QAAE,GAAG,GAAG,CAAC;QACT,QAAE,GAAG,EAAE,CAAC;QACR,WAAK,GAAG;YACJ,IAAI,EAAC,IAAI;YACT,KAAK,EAAC;gBACF,IAAI,EAAC,IAAI;gBACT,MAAM,EAAC,EAAE;aACZ;YACD,IAAI,EAAC;gBACD,IAAI,EAAC,IAAI;gBACT,IAAI,EAAC;oBACD,IAAI,EAAC,IAAI;oBACT,KAAK,EAAC,CAAC;oBACP,OAAO,EAAC,GAAG;iBACd;aACJ;SACJ,CAAA;;IAML,CAAC;IAJG,2BAAM,GAAN,UAAQ,EAAE;QACN,IAAI,CAAC,EAAE,IAAI,GAAG,GAAC,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,IAAI,GAAG,GAAC,EAAE,CAAC;IACtB,CAAC;IAtBgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAuB9B;IAAD,iBAAC;CAvBD,AAuBC,CAvBuC,EAAE,CAAC,SAAS,GAuBnD;kBAvBoB,UAAU","file":"","sourceRoot":"/","sourcesContent":["const {ccclass, property} = cc._decorator;\n\n@ccclass\nexport default class Helloworld extends cc.Component {\n    hp = 100;\n    mp = 60;\n    equip = {\n        name:'装备',\n        sword:{\n            name:'小刀',\n            attack:30\n        },\n        shoe:{\n            name:'草鞋',\n            attr:{\n                name:'属性',\n                speed:5,\n                durable:100\n            }\n        }\n    }\n\n    update (dt) {\n        this.hp += 1.0*dt;\n        this.mp += 0.5*dt;\n    }\n}"]}
 | 
			
		||||
		Reference in New Issue
	
	Block a user