feat: 完善MiaoChat的Bukkit版本
This commit is contained in:
@ -23,6 +23,16 @@ var description = {
|
|||||||
description: 'MiaoChat登录命令'
|
description: 'MiaoChat登录命令'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
permissions: {
|
||||||
|
'MiaoChat.default': {
|
||||||
|
default: true,
|
||||||
|
description: '默认权限 赋予玩家'
|
||||||
|
},
|
||||||
|
'MiaoChat.admin': {
|
||||||
|
default: false,
|
||||||
|
description: '管理权限'
|
||||||
|
}
|
||||||
|
},
|
||||||
config: {
|
config: {
|
||||||
"Version":"1.8.5",
|
"Version":"1.8.5",
|
||||||
"BungeeCord":true,
|
"BungeeCord":true,
|
||||||
@ -146,22 +156,39 @@ function mchat(sender, command, args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function registerEvent() {
|
function registerEvent() {
|
||||||
// event.on(self, 'AsyncPlayerChatEvent', handlerChat);
|
switch (DetectServerType) {
|
||||||
event.on(self, 'MessageChannelEvent.Chat', handlerChat);
|
case ServerType.Bukkit:
|
||||||
|
event.on(self, 'AsyncPlayerChatEvent', handlerBukkitChat);
|
||||||
|
break;
|
||||||
|
case ServerType.Sponge:
|
||||||
|
event.on(self, 'MessageChannelEvent.Chat', handlerSpongeChat);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var DuplicateChar = '§卐';
|
var DuplicateChar = '§卐';
|
||||||
|
|
||||||
function handlerChat(event) {
|
function handlerBukkitChat(event) {
|
||||||
|
sendChat(event.player, event.message, function() { event.setCancelled(true); });
|
||||||
|
}
|
||||||
|
|
||||||
|
function handlerSpongeChat(event) {
|
||||||
var player = event.getCause().first(org.spongepowered.api.entity.living.player.Player.class).orElse(null);
|
var player = event.getCause().first(org.spongepowered.api.entity.living.player.Player.class).orElse(null);
|
||||||
if (player == null) { return; }
|
if (player == null) { return; }
|
||||||
var plain = event.getRawMessage().toPlain();
|
var plain = event.getRawMessage().toPlain();
|
||||||
if (plain.startsWith(DuplicateChar)) {
|
if (plain.startsWith(DuplicateChar)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
sendChat(player, plain, function() { event.setMessageCancelled(true) });
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendChat(player, plain, callback) {
|
||||||
var chat_format = getChatFormat(player);
|
var chat_format = getChatFormat(player);
|
||||||
if (!chat_format) { return; }
|
if (!chat_format) {
|
||||||
event.setMessageCancelled(true);
|
console.debug('未获得用户', player.name, '的 ChatRule 跳过执行...')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback();
|
||||||
var tr = new Tellraw().then(DuplicateChar);
|
var tr = new Tellraw().then(DuplicateChar);
|
||||||
chat_format.format_list.forEach(function setStyle(format) {
|
chat_format.format_list.forEach(function setStyle(format) {
|
||||||
var style = style_formats[format];
|
var style = style_formats[format];
|
||||||
|
Reference in New Issue
Block a user