2016-04-14 16:24:03 +00:00
package me.mrCookieSlime.Slimefun.GPS ;
2019-08-27 12:08:09 +00:00
import java.util.Set ;
2016-04-14 16:24:03 +00:00
import java.util.UUID ;
2018-09-04 09:33:57 +00:00
import org.bukkit.ChatColor ;
import org.bukkit.Material ;
import org.bukkit.block.Block ;
import org.bukkit.entity.Player ;
import org.bukkit.inventory.ItemStack ;
2016-04-14 16:24:03 +00:00
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.CustomBookOverlay ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.MenuHelper ;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem ;
2019-08-31 09:36:45 +00:00
import me.mrCookieSlime.Slimefun.SlimefunPlugin ;
2016-04-14 16:24:03 +00:00
import me.mrCookieSlime.Slimefun.Setup.Messages ;
import me.mrCookieSlime.Slimefun.api.BlockStorage ;
2019-08-27 12:08:09 +00:00
public final class Elevator {
2016-04-14 16:24:03 +00:00
2019-08-27 12:08:09 +00:00
private Elevator ( ) { }
2016-04-14 16:24:03 +00:00
public static void openEditor ( Player p , final Block b ) {
ChestMenu menu = new ChestMenu ( " Elevator Settings " ) ;
2018-09-04 09:33:57 +00:00
menu . addItem ( 4 , new CustomItem ( new ItemStack ( Material . NAME_TAG ) , " &7Floor Name &e(Click to edit) " , " " , " &r " + ChatColor . translateAlternateColorCodes ( '&' , BlockStorage . getLocationInfo ( b . getLocation ( ) , " floor " ) ) ) ) ;
2019-03-31 18:32:40 +00:00
menu . addMenuClickHandler ( 4 , ( pl , slot , item , action ) - > {
pl . closeInventory ( ) ;
pl . sendMessage ( " " ) ;
pl . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &ePlease enter a Name for this Floor in your Chat! " ) ) ;
pl . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &e(Chat Colors are supported! " ) ) ;
pl . sendMessage ( " " ) ;
2016-04-14 16:24:03 +00:00
2019-03-31 18:32:40 +00:00
MenuHelper . awaitChatInput ( pl , ( player , message ) - > {
BlockStorage . addBlockInfo ( b , " floor " , message . replaceAll ( " & " , " & " ) ) ;
player . sendMessage ( " " ) ;
player . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &eSuccessfully named this Floor: " ) ) ;
player . sendMessage ( ChatColor . translateAlternateColorCodes ( '&' , " &4&l>> &r " + ChatColor . translateAlternateColorCodes ( '&' , message ) ) ) ;
player . sendMessage ( " " ) ;
openEditor ( player , b ) ;
2016-04-14 16:24:03 +00:00
return false ;
2019-03-31 18:32:40 +00:00
} ) ;
return false ;
2016-04-14 16:24:03 +00:00
} ) ;
menu . open ( p ) ;
}
public static void openDialogue ( Player p , Block b ) {
2019-08-31 09:36:45 +00:00
Set < UUID > elevatorUsers = SlimefunPlugin . getUtilities ( ) . elevatorUsers ;
2019-08-27 12:08:09 +00:00
if ( elevatorUsers . contains ( p . getUniqueId ( ) ) ) {
elevatorUsers . remove ( p . getUniqueId ( ) ) ;
2016-04-14 16:24:03 +00:00
return ;
}
2019-06-20 08:12:34 +00:00
2016-04-14 16:24:03 +00:00
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 ) ;
}
}