feat: 新增案例插件 更新插件版本

This commit is contained in:
coding
2018-01-09 12:22:24 +00:00
parent 96f93754e6
commit fb65f95658
4 changed files with 93 additions and 4 deletions

View File

@ -27,7 +27,7 @@ function load() {
function enable() {
command.on(this, 'hello', {
cmd: function (sender, command, args) {
global.load(fs.file(root, 'test.js'));
engineLoad(fs.file(root, 'test.js'));
return true;
}
});

View File

@ -0,0 +1,79 @@
'use strict';
/*global Java, base, module, exports, require*/
var event = require('api/event');
var wrapper = require('api/wrapper');
var command = require('api/command');
var server = require('api/server');
var http = require('http');
var fs = require('fs');
var nameMap = [];
var description = {
name: 'ItemTag',
version: '1.0',
author: '喵♂呜'
};
var itemConfig;
function load() {
var itemFile = self.file('item.yml');
if (!itemFile.exists()) {
base.save(itemFile, http.get('https://data.yumc.pw/config/Item_zh_CN.yml'));
}
itemConfig = self.getConfig('item.yml');
}
function enable() {
switch (DetectServerType) {
case ServerType.Bukkit:
event.on(self, 'ItemMergeEvent', function (event) {
bukkit(event.target, event.entity.itemStack.amount + event.target.itemStack.amount);
})
event.on(self, 'ItemSpawnEvent', function (event) {
if (event.entity.itemStack) {
bukkit(event.entity, event.entity.itemStack.amount);
}
})
break;
case ServerType.Sponge:
event.on(self, 'itemmergeitemevent', function (event) {
// Sponge 暂未实现当前事件
})
event.on(self, 'spawnentityevent', function (event) {
event.entities.forEach(function (entity) {
if (entity.type.name === "item") sponge(entity);
})
})
break;
}
}
function getItemName(name) {
return itemConfig[(name + '').toUpperCase()] || name;
}
function bukkit(item , amount) {
var amounts = amount == 1 ? "" : "*" + amount;
item.setCustomName('§b' + getItemName(item.itemStack.type) + amounts);
item.setCustomNameVisible(true);
}
function sponge(entity) {
var itemOptional = entity.get(Keys.REPRESENTED_ITEM);
if (itemOptional.isPresent()) {
var item = itemOptional.get();
var amounts = item.count == 1 ? "" : "*" + item.count;
entity.offer(org.spongepowered.api.data.key.Keys.DISPLAY_NAME, org.spongepowered.api.text.Text.of('§b' + getItemName(item.type.name.split(':')[1]) + amounts));
entity.offer(org.spongepowered.api.data.key.Keys.CUSTOM_NAME_VISIBLE, true);
}
}
module.exports = {
description: description,
load: load,
enable: enable,
disable: disable
};