From 5a5f653b865646b406f2f4f40c5d555630c7699a Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 8 Jul 2019 02:00:08 +0200 Subject: [PATCH] Added DC user mention tabcomplete... But only for commands, because that's how it works now apparently #16 Also might have made it 1.14 ready, though I switched the dependency back to 1.12 Oh it's 1.12.2... --- pom.xml | 4 +-- .../discordplugin/DiscordPlayerSender.java | 22 ++++++++-------- .../discordplugin/mcchat/MCListener.java | 25 +++++++++++++++++++ .../playerfaker/DiscordFakePlayer.java | 10 ++++++++ .../playerfaker/DiscordLivingEntity.java | 10 -------- 5 files changed, 49 insertions(+), 22 deletions(-) diff --git a/pom.xml b/pom.xml index f0c321a..6d68328 100755 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ --> Essentials - http://repo.ess3.net/content/repositories/essrel/ + https://ci.ender.zone/plugin/repository/everything/ projectlombok.org @@ -174,7 +174,7 @@ org.spigotmc spigot-api - 1.12-R0.1-SNAPSHOT + 1.12.2-R0.1-SNAPSHOT provided diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java b/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java index 41bb696..680e886 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayerSender.java @@ -302,10 +302,6 @@ public class DiscordPlayerSender extends DiscordSenderBase implements IMCPlayer< return player.addAttachment(plugin); } - public Block getTargetBlock(HashSet transparent, int maxDistance) { - return player.getTargetBlock(transparent, maxDistance); - } - public World getWorld() { return player.getWorld(); } @@ -354,10 +350,6 @@ public class DiscordPlayerSender extends DiscordSenderBase implements IMCPlayer< player.setCompassTarget(loc); } - public List getLastTwoTargetBlocks(HashSet transparent, int maxDistance) { - return player.getLastTwoTargetBlocks(transparent, maxDistance); - } - public Location getCompassTarget() { return player.getCompassTarget(); } @@ -1096,11 +1088,21 @@ public class DiscordPlayerSender extends DiscordSenderBase implements IMCPlayer< } public void hidePlayer(Player player) { - player.hidePlayer(player); + this.player.hidePlayer(player); + } + + @Override + public void hidePlayer(Plugin plugin, Player player) { + this.player.hidePlayer(plugin, player); } public void showPlayer(Player player) { - player.showPlayer(player); + this.player.showPlayer(player); + } + + @Override + public void showPlayer(Plugin plugin, Player player) { + this.player.showPlayer(plugin, player); } public boolean canSee(Player player) { diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MCListener.java b/src/main/java/buttondevteam/discordplugin/mcchat/MCListener.java index 7c44627..231bca8 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MCListener.java +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MCListener.java @@ -18,10 +18,13 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerCommandSendEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.server.BroadcastMessageEvent; +import org.bukkit.event.server.TabCompleteEvent; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.Objects; @@ -154,4 +157,26 @@ class MCListener implements Listener { public void onNickChange(NickChangeEvent event) { MCChatUtils.updatePlayerList(); } + + @EventHandler + public void onTabComplete(TabCompleteEvent event) { + int i = event.getBuffer().lastIndexOf(' '); + String t = event.getBuffer().substring(i + 1); //0 if not found + //System.out.println("Last token: " + t); + if (!t.startsWith("@")) + return; + String token = t.substring(1); + //System.out.println("Token: " + token); + val x = DiscordPlugin.mainServer.getMembers() + .flatMap(m -> Flux.just(m.getUsername(), m.getNickname().orElse(""))) + .filter(s -> s.startsWith(token)) + .map(s -> "@" + s) + .doOnNext(event.getCompletions()::add).blockLast(); + //System.out.println("Finished - last: " + x); + } + + @EventHandler + public void onCommandSend(PlayerCommandSendEvent event) { + event.getCommands().add("g"); + } } diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java index 6879155..1902516 100755 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordFakePlayer.java @@ -552,10 +552,20 @@ public class DiscordFakePlayer extends DiscordHumanEntity implements Player { public void hidePlayer(Player player) { } + @Override + public void hidePlayer(Plugin plugin, Player player) { + + } + @Override public void showPlayer(Player player) { } + @Override + public void showPlayer(Plugin plugin, Player player) { + + } + @Override public boolean canSee(Player player) { // Nobody can see them return false; diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java index c561fbf..9b0c60c 100755 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordLivingEntity.java @@ -126,21 +126,11 @@ public abstract class DiscordLivingEntity extends DiscordEntity implements Livin return Arrays.asList(); } - @Override - public Block getTargetBlock(HashSet transparent, int maxDistance) { - return null; - } - @Override public Block getTargetBlock(Set transparent, int maxDistance) { return null; } - @Override - public List getLastTwoTargetBlocks(HashSet transparent, int maxDistance) { - return Arrays.asList(); - } - @Override public List getLastTwoTargetBlocks(Set transparent, int maxDistance) { return Arrays.asList();