2016-04-14 16:24:03 +00:00
package me.mrCookieSlime.Slimefun.GPS ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.UUID ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.HoverAction ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.CustomBookOverlay ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper.ChatHandler ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem ;
import me.mrCookieSlime.Slimefun.Setup.Messages ;
import me.mrCookieSlime.Slimefun.api.BlockStorage ;
import org.bukkit.ChatColor ;
import org.bukkit.Material ;
import org.bukkit.block.Block ;
import org.bukkit.entity.Player ;
import org.bukkit.inventory.ItemStack ;
import org.bukkit.material.MaterialData ;
public class Elevator {
public static List < UUID > ignored = new ArrayList < UUID > ( ) ;
public static void openEditor ( Player p , final Block b ) {
ChestMenu menu = new ChestMenu ( " Elevator Settings " ) ;
2018-06-06 09:41:56 +00:00
menu . addItem ( 4 , new CustomItem ( new MaterialData ( Material . NAME_TAG ) , " &7Floor Name &e(Click to edit) " , " " , " &r " + ChatColor . translateAlternateColorCodes ( '&' , BlockStorage . getLocationInfo ( b . getLocation ( ) , " floor " ) ) ) ) ;
2016-04-14 16:24:03 +00:00
menu . addMenuClickHandler ( 4 , new MenuClickHandler ( ) {
@Override
public boolean onClick ( Player p , int arg1 , ItemStack arg2 , ClickAction arg3 ) {
p . closeInventory ( ) ;
p . sendMessage ( " " ) ;
2016-12-03 23:08:59 +00:00
p . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &ePlease enter a Name for this Floor in your Chat! " ) ) ;
p . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &e(Chat Colors are supported! " ) ) ;
2016-04-14 16:24:03 +00:00
p . sendMessage ( " " ) ;
MenuHelper . awaitChatInput ( p , new ChatHandler ( ) {
@Override
public boolean onChat ( Player p , String message ) {
2016-11-23 15:51:57 +00:00
BlockStorage . addBlockInfo ( b , " floor " , message . replaceAll ( " & " , " & " ) ) ;
2016-04-14 16:24:03 +00:00
p . sendMessage ( " " ) ;
2016-12-03 23:08:59 +00:00
p . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &eSuccessfully named this Floor: " ) ) ;
p . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &r " + ChatColor . translateAlternateColorCodes ( '&' , message ) ) ) ;
2016-04-14 16:24:03 +00:00
p . sendMessage ( " " ) ;
openEditor ( p , b ) ;
return false ;
}
} ) ;
return false ;
}
} ) ;
menu . open ( p ) ;
}
public static void openDialogue ( Player p , Block b ) {
if ( ignored . contains ( p . getUniqueId ( ) ) ) {
ignored . remove ( p . getUniqueId ( ) ) ;
return ;
}
TellRawMessage tellraw = new TellRawMessage ( ) ;
2016-11-23 15:51:57 +00:00
tellraw . addText ( " &3- Pick a Destination - \ n \ n " ) ;
2016-04-14 16:24:03 +00:00
int index = 1 ;
for ( int y = b . getWorld ( ) . getMaxHeight ( ) ; y > 0 ; y - - ) {
Block block = b . getWorld ( ) . getBlockAt ( b . getX ( ) , y , b . getZ ( ) ) ;
if ( BlockStorage . check ( block , " ELEVATOR_PLATE " ) ) {
2018-06-06 09:41:56 +00:00
String floor = ChatColor . translateAlternateColorCodes ( '&' , BlockStorage . getLocationInfo ( block . getLocation ( ) , " floor " ) ) ;
2016-04-14 16:24:03 +00:00
if ( block . getY ( ) = = b . getY ( ) ) {
2016-11-23 15:51:57 +00:00
tellraw . addText ( " &7> " + index + " . &r " + floor + " \ n " ) ;
tellraw . addHoverEvent ( HoverAction . SHOW_TEXT , " \ n&eThis is the Floor you are currently on: \ n&r " + floor + " \ n " ) ;
2016-04-14 16:24:03 +00:00
}
else {
2016-11-23 15:51:57 +00:00
tellraw . addText ( " &7 " + index + " . &r " + floor + " \ n " ) ;
tellraw . addHoverEvent ( HoverAction . SHOW_TEXT , " \ n&eClick to teleport to this Floor \ n&r " + floor + " \ n " ) ;
2016-04-14 16:24:03 +00:00
tellraw . addClickEvent ( me . mrCookieSlime . CSCoreLibPlugin . general . Chat . TellRawMessage . ClickAction . RUN_COMMAND , " /sf elevator " + block . getX ( ) + " " + block . getY ( ) + " " + block . getZ ( ) + " " ) ;
}
index + + ;
}
}
if ( index > 2 ) new CustomBookOverlay ( " Elevator " , " Slimefun " , tellraw ) . open ( p ) ;
else Messages . local . sendTranslation ( p , " machines.ELEVATOR.no-destinations " , true ) ;
}
}