54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
'use strict';
|
|
/**
|
|
* PAPI扩展类
|
|
*/
|
|
/*global Java, base, module, exports, require, __FILE__*/
|
|
var PlaceholderAPI;
|
|
var server = require('api/server');
|
|
|
|
PlaceholderAPI = {
|
|
setPlaceholders: function() {
|
|
return arguments[1].replace(/&([0-9a-fk-orA-FK-OR])/, '§$1');
|
|
}
|
|
};
|
|
|
|
// 尝试加载 Bukkit 的 PlaceholderAPI
|
|
try {
|
|
PlaceholderAPI = base.getClass("me.clip.placeholderapi.PlaceholderAPI").static;
|
|
console.log('[PAPI] Found Bukkit PlaceholderAPI Hooking...')
|
|
} catch (ex) {
|
|
}
|
|
|
|
// 尝试加载 Sponge 的 PlaceholderAPI
|
|
try {
|
|
var spongePapi = server.service.get('me.rojo8399.placeholderapi.PlaceholderService');
|
|
var TextSerializers = Java.type('org.spongepowered.api.text.serializer.TextSerializers');
|
|
var s = TextSerializers.formattingCode('§');
|
|
if (spongePapi) {
|
|
PlaceholderAPI = {
|
|
setPlaceholders: function() {
|
|
return s.serialize(spongePapi.replacePlaceholders(arguments[1], arguments[0], arguments[0]));
|
|
}
|
|
};
|
|
console.log('[PAPI] Found Sponge PlaceholderAPI Hooking...')
|
|
}
|
|
} catch (ex) {
|
|
}
|
|
|
|
function replace() {
|
|
var player = arguments[0];
|
|
var line = arguments[1];
|
|
if (arguments.length === 1) {
|
|
player = null;
|
|
line = player;
|
|
}
|
|
if (toString.call(line) === "[object Array]") {
|
|
return PlaceholderAPI.setPlaceholders(player, line.join('\n')).split('\n');
|
|
}
|
|
return PlaceholderAPI.setPlaceholders(player, line);
|
|
}
|
|
|
|
exports = module.exports = {
|
|
$: replace
|
|
};
|