mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-01 02:46:41 +00:00
Remove chat-based WECUI protocol. Everybody running a modern (1.2.5 or newer) WECUI should be fine.
This has a bonus of allowing us to stay far far away from that smelly PlayerChatEvent guy who's always late (or early, or both).
This commit is contained in:
@ -133,22 +133,7 @@ public class BukkitPlayer extends LocalPlayer {
|
||||
if (params.length > 0) {
|
||||
send = send + "|" + StringUtil.joinString(params, "|");
|
||||
}
|
||||
|
||||
if (plugin.hasPluginChannelCUI(getName())) {
|
||||
player.sendPluginMessage(plugin, WorldEditPlugin.CUI_PLUGIN_CHANNEL, send.getBytes(CUIChannelListener.UTF_8_CHARSET));
|
||||
} else {
|
||||
if (plugin.getLocalConfiguration().enableWECUI) {
|
||||
player.sendRawMessage("\u00A75\u00A76\u00A74\u00A75" + send);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchCUIHandshake() {
|
||||
if (!plugin.hasPluginChannelCUI(getName()) && plugin.getLocalConfiguration().enableWECUI) {
|
||||
player.sendRawMessage("\u00A75\u00A76\u00A74\u00A75");
|
||||
player.sendRawMessage("\u00A74\u00A75\u00A73\u00A74");
|
||||
}
|
||||
player.sendPluginMessage(plugin, WorldEditPlugin.CUI_PLUGIN_CHANNEL, send.getBytes(CUIChannelListener.UTF_8_CHARSET));
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
|
@ -39,19 +39,11 @@ public class CUIChannelListener implements PluginMessageListener {
|
||||
@Override
|
||||
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
|
||||
LocalSession session = plugin.getSession(player);
|
||||
if (session.hasCUISupport() && plugin.hasPluginChannelCUI(player.getName())) { // Already initialized
|
||||
if (session.hasCUISupport()) { // Already initialized
|
||||
return;
|
||||
}
|
||||
|
||||
String[] text = new String(message, UTF_8_CHARSET).split("\\|");
|
||||
if (text.length > 1 && text[0].equalsIgnoreCase("v")) { // enough fields and right message
|
||||
plugin.setPluginChannelCUI(player.getName(), true);
|
||||
session.setCUISupport(true);
|
||||
try {
|
||||
session.setCUIVersion(Integer.parseInt(text[1]));
|
||||
} catch (NumberFormatException e) {
|
||||
plugin.getLogger().warning("Error while reading CUI init message: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
String text = new String(message, UTF_8_CHARSET);
|
||||
session.handleCUIInitializationMessage(text);
|
||||
}
|
||||
}
|
||||
|
@ -23,23 +23,18 @@ package com.sk89q.worldedit.bukkit;
|
||||
import com.sk89q.util.StringUtil;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Result;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import com.sk89q.worldedit.LocalPlayer;
|
||||
import com.sk89q.worldedit.LocalWorld;
|
||||
import com.sk89q.worldedit.WorldEdit;
|
||||
import com.sk89q.worldedit.WorldVector;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Handles all events thrown in relation to a Player
|
||||
@ -48,7 +43,6 @@ public class WorldEditListener implements Listener {
|
||||
|
||||
private WorldEditPlugin plugin;
|
||||
private boolean ignoreLeftClickAir = false;
|
||||
private final static Pattern cuipattern = Pattern.compile("u00a74u00a75u00a73u00a74([^\\|]*)\\|?(.*)");
|
||||
|
||||
/**
|
||||
* Called when a player plays an animation, such as an arm swing
|
||||
@ -65,20 +59,6 @@ public class WorldEditListener implements Listener {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (player.isOnline()) {
|
||||
plugin.wrapPlayer(player).dispatchCUIHandshake();
|
||||
}
|
||||
}
|
||||
}, 20 * 2);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a player leaves a server
|
||||
*
|
||||
@ -87,7 +67,6 @@ public class WorldEditListener implements Listener {
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
plugin.getWorldEdit().markExpire(plugin.wrapPlayer(event.getPlayer()));
|
||||
plugin.setPluginChannelCUI(event.getPlayer().getName(), false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -187,22 +166,4 @@ public class WorldEditListener implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true) // TODO: Remove this in a bit
|
||||
public void onPlayerChat(PlayerChatEvent event) {
|
||||
Matcher matcher = cuipattern.matcher(event.getMessage());
|
||||
if (matcher.find()) {
|
||||
String type = matcher.group(1);
|
||||
String args = matcher.group(2);
|
||||
|
||||
if( type.equals("v") ) {
|
||||
try {
|
||||
plugin.getSession(event.getPlayer()).setCUIVersion(Integer.parseInt(args));
|
||||
event.setCancelled(true);
|
||||
} catch(NumberFormatException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -70,11 +70,6 @@ public class WorldEditPlugin extends JavaPlugin {
|
||||
*/
|
||||
private BukkitConfiguration config;
|
||||
|
||||
/**
|
||||
* Stores players who are using plugin channels for the cui
|
||||
*/
|
||||
private final Set<String> pluginChannelCui = new HashSet<String>();
|
||||
|
||||
/**
|
||||
* Called on plugin enable.
|
||||
*/
|
||||
@ -389,16 +384,4 @@ public class WorldEditPlugin extends JavaPlugin {
|
||||
session.setRegionSelector(BukkitUtil.getLocalWorld(player.getWorld()), sel);
|
||||
session.dispatchCUISelection(wrapPlayer(player));
|
||||
}
|
||||
|
||||
public void setPluginChannelCUI(String name, boolean value) {
|
||||
if (value) {
|
||||
pluginChannelCui.add(name);
|
||||
} else {
|
||||
pluginChannelCui.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasPluginChannelCUI(String name) {
|
||||
return pluginChannelCui.contains(name);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user