package Items;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.conversations.Conversable;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.ConversationFactory;
import org.bukkit.conversations.FixedSetPrompt;
import org.bukkit.conversations.Prompt;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.plugin.Plugin;
public class Conversation implements Listener{
private ConversationFactory conversationFactory;
public void ConvoPlugin() {
this.conversationFactory = new ConversationFactory((Plugin) this)
.withModality(true)
.withFirstPrompt((Prompt) new WhichMobPrompt())
.withEscapeSequence("Aufhoeren")
.withTimeout(10)
.thatExcludesNonPlayersWithMessage("Go away evil console!");
}
@EventHandler
public void onClick(InventoryClickEvent event){
Player p = (Player) event.getWhoClicked();
if(event.getInventory().getName().equalsIgnoreCase("Admin-Befehle")){
event.setCancelled(true);
if(p.hasPermission("MyEss.Teleport")){
if(event.getCurrentItem().getType() == Material.ENDER_PEARL){
conversationFactory.buildConversation((Conversable)p).begin();
event.getView().close();
}
}
}
}
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
if (commandSender instanceof Conversable) {
conversationFactory.buildConversation((Conversable)commandSender).begin();
return true;
} else {
return false;
}
}
private class WhichMobPrompt extends FixedSetPrompt{
public WhichMobPrompt() {
super();
}
public String getPromptText(ConversationContext context) {
return "Welcher Spieler solls sein? " + formatFixedSet();
}
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String s) {
if (s.equals("Keiner")) {
return Prompt.END_OF_CONVERSATION;
}
context.setSessionData("type", s);
Player p1 = Bukkit.getPlayerExact(s);
Player p2 = (Player) context.getForWhom();
double x = p1.getLocation().getX();
double y = p1.getLocation().getY();
double z = p1.getLocation().getZ();
World world = p1.getWorld();
Location loc = new Location(world, x, y, z);
p2.teleport(loc);
return null;
}
}
}