mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-06-12 04:23:54 +00:00
Various command (use es6 if java9 + nashorn)
This commit is contained in:
@ -3,10 +3,7 @@ package com.boydti.fawe.bukkit;
|
||||
import com.boydti.fawe.Fawe;
|
||||
import com.boydti.fawe.IFawe;
|
||||
import com.boydti.fawe.bukkit.chat.BukkitChatManager;
|
||||
import com.boydti.fawe.bukkit.listener.BrushListener;
|
||||
import com.boydti.fawe.bukkit.listener.BukkitImageListener;
|
||||
import com.boydti.fawe.bukkit.listener.CFIPacketListener;
|
||||
import com.boydti.fawe.bukkit.listener.RenderListener;
|
||||
import com.boydti.fawe.bukkit.listener.*;
|
||||
import com.boydti.fawe.bukkit.regions.*;
|
||||
import com.boydti.fawe.bukkit.util.BukkitReflectionUtils;
|
||||
import com.boydti.fawe.bukkit.util.BukkitTaskMan;
|
||||
@ -32,7 +29,6 @@ import com.boydti.fawe.util.TaskManager;
|
||||
import com.boydti.fawe.util.cui.CUI;
|
||||
import com.boydti.fawe.util.image.ImageViewer;
|
||||
import com.boydti.fawe.util.metrics.BStats;
|
||||
import com.sk89q.worldedit.WorldEdit;
|
||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -123,6 +119,13 @@ public class FaweBukkit implements IFawe, Listener {
|
||||
} catch (ClassNotFoundException e) {
|
||||
new ChunkListener_9();
|
||||
}
|
||||
|
||||
try {
|
||||
new AsyncTabCompleteListener(WorldEditPlugin.getInstance());
|
||||
} catch (Throwable ignore)
|
||||
{
|
||||
Bukkit.getPluginManager().registerEvents(new SyncTabCompleteListener(WorldEditPlugin.getInstance()), plugin);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.boydti.fawe.bukkit.listener;
|
||||
|
||||
import com.boydti.fawe.object.string.MutableCharSequence;
|
||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||
import com.sk89q.worldedit.event.platform.CommandSuggestionEvent;
|
||||
import com.sk89q.worldedit.extension.platform.CommandManager;
|
||||
import com.sk89q.worldedit.util.command.CommandMapping;
|
||||
import com.sk89q.worldedit.util.command.Dispatcher;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ATabCompleteListener implements Listener {
|
||||
private final WorldEditPlugin worldEdit;
|
||||
|
||||
public ATabCompleteListener(WorldEditPlugin worldEdit) {
|
||||
this.worldEdit = worldEdit;
|
||||
}
|
||||
public List<String> onTab(String buffer, CommandSender sender) {
|
||||
int firstSpace = buffer.indexOf(' ');
|
||||
if (firstSpace == -1) return null;
|
||||
MutableCharSequence mBuffer = MutableCharSequence.getTemporal();
|
||||
mBuffer.setString(buffer);
|
||||
mBuffer.setSubstring(0, firstSpace);
|
||||
String label = buffer.substring(mBuffer.indexOf(':') + 1, firstSpace);
|
||||
Dispatcher dispatcher = CommandManager.getInstance().getDispatcher();
|
||||
CommandMapping weCommand = dispatcher.get(label);
|
||||
if (weCommand != null) {
|
||||
CommandSuggestionEvent event = new CommandSuggestionEvent(worldEdit.wrapCommandSender(sender), buffer);
|
||||
worldEdit.getWorldEdit().getEventBus().post(event);
|
||||
List<String> suggestions = event.getSuggestions();
|
||||
if (suggestions != null) {
|
||||
return suggestions;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.boydti.fawe.bukkit.listener;
|
||||
|
||||
import com.boydti.fawe.util.TaskManager;
|
||||
import com.destroystokyo.paper.event.server.AsyncTabCompleteEvent;
|
||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.server.TabCompleteEvent;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AsyncTabCompleteListener extends ATabCompleteListener {
|
||||
public AsyncTabCompleteListener(WorldEditPlugin worldEdit) {
|
||||
super(worldEdit);
|
||||
Bukkit.getPluginManager().registerEvents(this, worldEdit);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onTabComplete(AsyncTabCompleteEvent event) {
|
||||
if (event.isCommand()) {
|
||||
List<String> result = this.onTab(event.getBuffer(), event.getSender());
|
||||
if (result != null) {
|
||||
event.setCompletions(result);
|
||||
event.setHandled(true); // Doesn't work
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fix for the event being borked with paper
|
||||
private List<String> completions = null;
|
||||
private CommandSender sender;
|
||||
|
||||
@EventHandler
|
||||
public void onTabComplete(TabCompleteEvent event) {
|
||||
if (event.isCommand()) {
|
||||
if (sender == event.getSender()) {
|
||||
event.setCompletions(completions);
|
||||
sender = null;
|
||||
} else {
|
||||
sender = event.getSender();
|
||||
completions = event.getCompletions();
|
||||
event.setCompletions(Collections.emptyList());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.boydti.fawe.bukkit.listener;
|
||||
|
||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.server.TabCompleteEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SyncTabCompleteListener extends ATabCompleteListener {
|
||||
public SyncTabCompleteListener(WorldEditPlugin worldEdit) {
|
||||
super(worldEdit);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onTabComplete(TabCompleteEvent event) {
|
||||
if (event.isCommand()) {
|
||||
List<String> result = this.onTab(event.getBuffer(), event.getSender());
|
||||
if (result != null) {
|
||||
event.setCompletions(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user