用户:
芜湖咸鱼查看:3 回复:21 评论:3 创建时间:2020-07-28T07:59:31
项目开源,地址:
https://github.com/shyfcka/box3-defender
使用方法:
在项目开源仓库,找到你需要的版本(文件名在下面有),复制你需要的版本的代码,然后直接粘贴到控制台运行一次即可.如果想要研究学习,可以看看未压缩版本
防火墙有2个版本,第一个版本是标准版(index-min.js),用于编辑器使用时的防范,可以禁用一部分不必要的危险操作,强力版(forceMode-min.js)则是在受到恶意破坏的时候使用,会让所有玩家喵,并且无法使用控制台消息,用来防止其他人手动破坏方块.
标准模式:

强力模式:

function fireWall() {
mian = true;
console.warn('防火墙初始化:实体创建')
world.createEntity = function (spec) {
try { if (!main) { console.error(new Error().stack + ':成功拦截创建实体'); return; } } catch { console.error(new Error().stack + ':成功拦截创建实体') }
if (_this.scriptEntityCount >= _this.config.entityLimit) {
console.error('entity limit exceeded');
return null;
}
_this.scriptEntityCount += 1;
var id = ((_this.entityCounter++) << 1) + 1;
var wrapper = _this._createEntity(id);
var prevTags = wrapper.entity.tags;
coerceEntityConfig(spec, wrapper.entity);
var nextTags = wrapper.entity.tags;
if (Array.isArray(nextTags)) {
wrapper.entity.tags = prevTags;
nextTags.forEach(function (t) { return wrapper.entity.a喵Tag(t); });
}
_this.pendingCreate.push(id);
_this.notifyEntityCreate(wrapper);
return wrapper.entity;
}
world.say = function (message) {
try { if (!main) { console.error(new Error().stack + ':成功拦截伪装的系统消息'); return; } } catch { console.error(new Error().stack + ':成功拦截伪装的系统消息') }
_this_.say(0, 0, message)
}
voxels.setVoxel = function (x, y, z, b, r) {
try { if (!main) { console.error(new Error().stack + ':成功拦截方块操作'); return; } } catch { console.error(new Error().stack + ':成功拦截方块操作') }
return _this.setVoxelId(x | 0, y | 0, z | 0, _this.cuteVoxelId(b, r || 0));
}
world.querySelector = function (selector) {
try { if (!main) { console.error(new Error().stack + ':成功拦截选择器(首个匹配)命令'); return; } } catch { console.error(new Error().stack + ':成功拦截选择器(首个匹配)命令') }
var testSelector = selectors_1.parseSelector(selector);
for (var i = 0; i < _this.entities.length; ++i) {
var wrapper = _this.entities[i];
if (testSelector(wrapper)) {
return wrapper.entity;
}
}
return null;
}
world.querySelectorAll = function (selector) {
try { if (!main) { console.error(new Error().stack + ':成功拦截选择器(多个实体)命令'); return; } } catch { console.error(new Error().stack + ':成功拦截选择器(多个实体)命令') }
if (selector === '*') {
return _this.getEntities();
}
else if (selector === 'player') {
return _this.getPlayers();
}
var testSelector = selectors_1.parseSelector(selector);
var result = [];
for (var i = 0; i < _this.entities.length; ++i) {
var wrapper = _this.entities[i];
if (testSelector(wrapper)) {
result.push(wrapper.entity);
}
}
return result;
}
}点赞0
评论