67 lines
1.9 KiB
Java
67 lines
1.9 KiB
Java
/*
|
|
* Copyright (c) 2017 univento.eu - All rights reserved
|
|
* You are not allowed to use, distribute or modify this code
|
|
*/
|
|
|
|
package eu.univento.core.api.gui.sign;
|
|
|
|
import eu.univento.core.api.player.CustomPlayer;
|
|
import lombok.Getter;
|
|
import net.minecraft.server.v1_12_R1.BlockPosition;
|
|
import net.minecraft.server.v1_12_R1.PacketPlayOutOpenSignEditor;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.UUID;
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
/**
|
|
* @author joethei
|
|
* @version 1.0
|
|
*/
|
|
|
|
class SignInput implements Listener{
|
|
|
|
@Getter private CustomPlayer player;
|
|
@Getter private String[] lines;
|
|
|
|
public SignInput(CustomPlayer player, String[] lines) {
|
|
this.player = player;
|
|
this.lines = lines;
|
|
}
|
|
|
|
private static Map<UUID, CompletableFuture<SignInput>> futures = new HashMap<>();
|
|
|
|
|
|
public static CompletableFuture<SignInput> openSignInput(CustomPlayer p) {
|
|
CompletableFuture<SignInput> future = new CompletableFuture<>();
|
|
p.sendPacket(new PacketPlayOutOpenSignEditor(new BlockPosition(p.getHandle())));
|
|
SignInputHandler.injectNetty(p);
|
|
futures.put(p.getUniqueId(), future);
|
|
return future;
|
|
}
|
|
|
|
@EventHandler
|
|
public void onSignInput(PlayerSignInputEvent e) {
|
|
if(futures.get(e.getPlayer().getUniqueId()) != null) {
|
|
futures.get(e.getPlayer().getUniqueId()).complete(new SignInput(CustomPlayer.getPlayer(e.getPlayer()), e.getLines()));
|
|
SignInputHandler.ejectNetty(e.getPlayer());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
public static void openSignInput(CustomPlayer p) {
|
|
EntityPlayer player = p.getHandle();
|
|
BlockPosition bp = new BlockPosition(p.getHandle());
|
|
PacketPlayOutOpenSignEditor packet = new PacketPlayOutOpenSignEditor(bp);
|
|
player.playerConnection.sendPacket(packet);
|
|
SignInputHandler.injectNetty(p);
|
|
}
|
|
*/
|
|
|
|
} |