Lobby/src/main/java/eu/univento/lobby/utils/Inventorys.java

599 lines
23 KiB
Java

package eu.univento.lobby.utils;
import java.util.ArrayList;
import java.util.List;
import eu.univento.core.api.server.ServerInfo;
import org.bukkit.Bukkit;
import org.bukkit.DyeColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.player.Rank;
import eu.univento.lobby.Lobby;
import eu.univento.lobby.listeners.FoundItems;
import org.bukkit.material.Dye;
/**
* opens inventorys for players
*
* @author joethei
* @version 1.0
*/
public class Inventorys {
private CustomPlayer player;
private ItemStack empty = new ItemStack(Material.AIR);
public Inventorys(CustomPlayer player) {
this.player = player;
}
public void setMainInventory(boolean forcetime) {
Inventory inv = player.getInventory();
ItemStack nav = new ItemStack(Material.WORKBENCH);
ItemMeta navMeta = nav.getItemMeta();
navMeta.setDisplayName(player.getMessage("Lobby.Item.Navigator"));
nav.setItemMeta(navMeta);
ItemStack lobby = new ItemStack(Material.BLAZE_POWDER);
ItemMeta lobbyMeta = lobby.getItemMeta();
lobbyMeta.setDisplayName(player.getMessage("Lobby.Item.LobbySwitcher"));
lobby.setItemMeta(lobbyMeta);
ItemStack adventure = new ItemStack(Material.GLOWSTONE_DUST);
ItemMeta adventureMeta = adventure.getItemMeta();
adventureMeta.setDisplayName(player.getMessage("Lobby.Item.Adventure"));
adventure.setItemMeta(adventureMeta);
ItemStack fun = new ItemStack(Material.CHEST);
ItemMeta funMeta = fun.getItemMeta();
funMeta.setDisplayName(player.getMessage("Lobby.Item.FunChest"));
fun.setItemMeta(funMeta);
ItemStack youtube = new ItemStack(Material.EXP_BOTTLE);
ItemMeta youtubeMeta = youtube.getItemMeta();
youtubeMeta.setDisplayName(player.getMessage("Lobby.Item.Youtuber"));
youtube.setItemMeta(youtubeMeta);
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
SkullMeta meta = (SkullMeta) skull.getItemMeta();
meta.setOwner(player.getName());
meta.setDisplayName(player.getMessage("Lobby.Item.Profile"));
skull.setItemMeta(meta);
inv.setItem(2, empty);
inv.setItem(3, empty);
inv.setItem(4, empty);
inv.setItem(6, empty);
timeItem(inv, 0, nav, Sound.ENTITY_CHICKEN_EGG, 20L, false, forcetime);
timeItem(inv, 8, skull, Sound.ENTITY_CHICKEN_EGG, 40L, false, forcetime);
timeItem(inv, 1, lobby, Sound.ENTITY_CHICKEN_EGG, 60L, false, forcetime);
timeItem(inv, 7, fun, Sound.ENTITY_CHICKEN_EGG, 80L, false, forcetime);
if (player.isAllowed(Rank.Partner)) {
timeItem(inv, 5, youtube, Sound.ENTITY_CHICKEN_EGG, 120L, false, forcetime);
timeItem(inv, 3, adventure, Sound.ENTITY_CHICKEN_DEATH, 140L, false, forcetime);
} else {
timeItem(inv, 5, adventure, Sound.ENTITY_CHICKEN_EGG, 120L, false, forcetime);
}
}
/**
* gets inventory for navigation
*
* @return Inventory
*/
public Inventory getNavigatorInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_NAVIGATOR());
ItemStack spawn = new ItemStack(Material.FIREWORK_CHARGE);
ItemMeta spawnMeta = spawn.getItemMeta();
spawnMeta.setDisplayName(player.getMessage("Lobby.Menu.Nav.Spawn"));
spawnMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
spawn.setItemMeta(spawnMeta);
ItemStack strive = new ItemStack(Material.WOOL, 1, (byte) 11);
ItemMeta striveMeta = strive.getItemMeta();
striveMeta.setDisplayName(player.getMessage("Lobby.Menu.Nav.Strive"));
strive.setItemMeta(striveMeta);
ItemStack hustle = new ItemStack(Material.CHAINMAIL_BOOTS);
ItemMeta hustleMeta = hustle.getItemMeta();
hustleMeta.setDisplayName(player.getMessage("Lobby.Menu.Nav.Hustle"));
hustleMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
hustle.setItemMeta(hustleMeta);
ItemStack build = new ItemStack(Material.FLOWER_POT_ITEM);
ItemMeta buildMeta = build.getItemMeta();
buildMeta.setDisplayName(player.getMessage("Lobby.Menu.Nav.Build"));
ArrayList<String> buildLore = new ArrayList<>();
ServerInfo buildInfo = new ServerInfo("build");
buildLore.add(buildInfo.getOnlinePlayers() + player.getMessages().LobbyItems_PLAYERS_ONLINE());
buildMeta.setLore(buildLore);
build.setItemMeta(buildMeta);
inv.setItem(21, hustle);
inv.setItem(23, strive);
inv.setItem(31, spawn);
if (player.isAllowed(Rank.Supporter)) inv.setItem(26, build);
return inv;
}
public Inventory getLobbySwitcherInventory() {
Inventory inv = Bukkit.createInventory(player, 18, "Lobbys");
for (int i = 1; i <= 19; i++) {
ServerInfo info = new ServerInfo("Lobby" + i);
Material material;
if (!info.isOnline()) material = Material.BARRIER;
if (info.getOnlinePlayers() >= 50) material = Material.CHEST;
if (info.getOnlinePlayers() < 50) material = Material.ANVIL;
else material = Material.GRASS;
ItemStack item = new ItemStack(material);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName("Lobby" + i);
ArrayList<String> lore = new ArrayList<>();
lore.add(info.getOnlinePlayers() + " | " + info.getMaxPlayers());
meta.setLore(lore);
item.setItemMeta(meta);
inv.addItem(item);
}
return inv;
}
public void setYoutuberInventory() {
Inventory inv = player.getInventory();
String nickState;
if(player.isNicked()) nickState = "on"; else nickState = "off";
ItemStack nick = new ItemStack(Material.NAME_TAG);
ItemMeta nickMeta = nick.getItemMeta();
nickMeta.setDisplayName(player.getMessage("Lobby.Item.YT.Nick." + nickState));
nick.setItemMeta(nickMeta);
ItemStack silent = new ItemStack(Material.TNT);
ItemMeta silentMeta = silent.getItemMeta();
silentMeta.setDisplayName(player.getMessage("Lobby.Item.YT.SilentLobby"));
silent.setItemMeta(silentMeta);
ItemStack force = new ItemStack(Material.EYE_OF_ENDER);
ItemMeta forceMeta = force.getItemMeta();
forceMeta.setDisplayName(player.getMessage("Lobby.Item.YT.Forcefield"));
force.setItemMeta(forceMeta);
ItemStack extras = new ItemStack(Material.MILK_BUCKET);
ItemMeta extrasMeta = extras.getItemMeta();
extrasMeta.setDisplayName(player.getMessage("Lobby.Item.YT.Extras"));
extras.setItemMeta(extrasMeta);
Dye dye = new Dye();
dye.setColor(DyeColor.RED);
ItemStack back = dye.toItemStack();
ItemMeta backMeta = back.getItemMeta();
backMeta.setDisplayName(player.getMessage("Lobby.Item.YT.Back"));
back.setItemMeta(backMeta);
inv.setItem(0, force);
inv.setItem(1, empty);
inv.setItem(2, nick);
inv.setItem(3, empty);
inv.setItem(4, silent);
inv.setItem(5, empty);
inv.setItem(6, extras);
inv.setItem(7, empty);
inv.setItem(8, back);
}
/**
* gets inventory for funchest
*
* @return Inventory
*/
public Inventory getFunChestInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_FUN_CHEST());
ItemStack music = new ItemStack(Material.RECORD_3);
ItemMeta musicMeta = music.getItemMeta();
musicMeta.setLore(null);
musicMeta.setDisplayName(player.getMessages().LobbyItems_MUSIC());
music.setItemMeta(musicMeta);
ItemStack gadgets = new ItemStack(Material.ARMOR_STAND);
ItemMeta gadgetsMeta = gadgets.getItemMeta();
gadgetsMeta.setDisplayName(player.getMessages().LobbyItems_GADGETS());
gadgets.setItemMeta(gadgetsMeta);
ItemStack particle = new ItemStack(Material.NOTE_BLOCK);
ItemMeta particleMeta = particle.getItemMeta();
particleMeta.setDisplayName(player.getMessages().LobbyItems_PARTICLE());
particle.setItemMeta(particleMeta);
ItemStack pets = new ItemStack(Material.MONSTER_EGG);
ItemMeta petsMeta = pets.getItemMeta();
petsMeta.setDisplayName(player.getMessages().LobbyItems_PETS());
pets.setItemMeta(petsMeta);
inv.setItem(11, music);
inv.setItem(15, gadgets);
inv.setItem(29, particle);
inv.setItem(33, pets);
return inv;
}
/**
* gets inventory for music
*
* @return Inventory
*/
public Inventory getMusicInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_MUSIC());
ItemStack music_3 = new ItemStack(Material.RECORD_3);
ItemMeta music_3Meta = music_3.getItemMeta();
List<String> music_3Lore = new ArrayList<>();
music_3Lore.add("§6Jetzt abspielen");
music_3Meta.setDisplayName("§5Milky Way Stars | Janji feat. TR");
music_3Meta.setLore(music_3Lore);
music_3.setItemMeta(music_3Meta);
if (FoundItems.hasFound("music_3", player)) inv.setItem(2, music_3);
return inv;
}
/**
* gets inventory for gadgets
*
* @return Inventory
*/
public Inventory getGadgetsInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_GADGETS());
ItemStack sugar = new ItemStack(Material.SUGAR);
ItemMeta sugarMeta = sugar.getItemMeta();
sugarMeta.setDisplayName("§6Einen Teelöffel Zucker");
sugar.setItemMeta(sugarMeta);
ItemStack feather = new ItemStack(Material.FEATHER);
ItemMeta featherMeta = feather.getItemMeta();
featherMeta.setDisplayName("§6Federleicht");
feather.setItemMeta(featherMeta);
if (FoundItems.hasFound("sugar", player)) inv.setItem(0, sugar);
if (FoundItems.hasFound("feather", player)) inv.setItem(1, feather);
return inv;
}
/**
* gets inventory for particle effects
*
* @return Inventory
*/
public Inventory getParticleInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_PARTICLE());
ItemStack hearts = new ItemStack(Material.RED_ROSE);
ItemMeta heartsMeta = hearts.getItemMeta();
heartsMeta.setDisplayName("§6Herzen");
hearts.setItemMeta(heartsMeta);
ItemStack lava = new ItemStack(Material.LAVA_BUCKET);
ItemMeta lavaMeta = lava.getItemMeta();
lavaMeta.setDisplayName("§6Lava");
lava.setItemMeta(lavaMeta);
if (FoundItems.hasFound("hearts", player)) inv.setItem(0, hearts);
//if(FoundItems.hasFound("lava", player)) inv.setItem(1, lava);
return inv;
}
public Inventory getPetsInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_PETS());
ItemStack pig = new ItemStack(Material.MONSTER_EGG, 1, (short) 90);
ItemMeta pigMeta = pig.getItemMeta();
pigMeta.setDisplayName(player.getMessages().LobbyItems_PETS_PIG());
pig.setItemMeta(pigMeta);
ItemStack cow = new ItemStack(Material.MONSTER_EGG, 1, (short) 92);
ItemMeta cowMeta = cow.getItemMeta();
cowMeta.setDisplayName(player.getMessages().LobbyItems_PETS_COW());
cow.setItemMeta(cowMeta);
ItemStack chicken = new ItemStack(Material.MONSTER_EGG, 1, (short) 93);
ItemMeta chickenMeta = chicken.getItemMeta();
chickenMeta.setDisplayName(player.getMessages().LobbyItems_PETS_CHICKEN());
chicken.setItemMeta(chickenMeta);
ItemStack rabbit = new ItemStack(Material.MONSTER_EGG, 1, (short) 101);
ItemMeta rabbitMeta = rabbit.getItemMeta();
rabbitMeta.setDisplayName(player.getMessages().LobbyItems_PETS_RABBIT());
rabbit.setItemMeta(rabbitMeta);
ItemStack mushroom = new ItemStack(Material.MONSTER_EGG, 1, (short) 96);
ItemMeta mushroomMeta = mushroom.getItemMeta();
mushroomMeta.setDisplayName(player.getMessages().LobbyItems_PETS_MUSHROM_COW());
mushroom.setItemMeta(mushroomMeta);
ItemStack horse = new ItemStack(Material.MONSTER_EGG, 1, (short) 101);
ItemMeta horseMeta = horse.getItemMeta();
horseMeta.setDisplayName("Horse");
horse.setItemMeta(horseMeta);
ItemStack polar = new ItemStack(Material.MONSTER_EGG, 1, (short) 101);
ItemMeta polarMeta = polar.getItemMeta();
polarMeta.setDisplayName("PolarBear");
polar.setItemMeta(polarMeta);
ItemStack delete = new ItemStack(Material.BARRIER);
ItemMeta deleteMeta = delete.getItemMeta();
deleteMeta.setDisplayName(player.getMessages().LobbyItems_PETS_REMOVE());
delete.setItemMeta(deleteMeta);
inv.setItem(0, pig);
inv.setItem(1, cow);
inv.setItem(2, chicken);
inv.setItem(3, rabbit);
inv.setItem(4, mushroom);
inv.setItem(5, horse);
inv.setItem(6, polar);
inv.setItem(44, delete);
return inv;
}
/**
* gets inventory for profile
*
* @return Inventory
*/
public Inventory getProfileInventory() {
Inventory inv = Bukkit.createInventory(player, 9, player.getMessages().LobbyItems_PROFILE());
ItemStack stats = new ItemStack(Material.COMPASS);
ItemMeta statsMeta = stats.getItemMeta();
statsMeta.setDisplayName(player.getMessages().LobbyItems_STATS());
stats.setItemMeta(statsMeta);
ItemStack quests = new ItemStack(Material.PRISMARINE_SHARD);
ItemStack secrets = new ItemStack(Material.CHEST);
ItemStack friends = new ItemStack(Material.PUMPKIN);
ItemMeta friendsMeta = friends.getItemMeta();
friendsMeta.setDisplayName(player.getMessages().LobbyItems_FRIENDS());
friends.setItemMeta(friendsMeta);
ItemStack settings = new ItemStack(Material.NAME_TAG);
ItemMeta settingsMeta = settings.getItemMeta();
settingsMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS());
settings.setItemMeta(settingsMeta);
inv.setItem(0, stats);
inv.setItem(1, friends);
inv.setItem(2, quests);
inv.setItem(3, secrets);
inv.setItem(8, settings);
return inv;
}
/**
* gets inventory for settings
*
* @return Inventory
*/
public Inventory getSettingsInventory() {
Inventory inv = Bukkit.createInventory(player, 18, player.getMessages().LobbyItems_SETTINGS());
ArrayList<String> on = new ArrayList<>();
on.add(player.getMessages().LobbyItems_SETTINGS_ON());
ArrayList<String> off = new ArrayList<>();
off.add(player.getMessages().LobbyItems_SETTINGS_OFF());
ItemStack fastMenu = new ItemStack(Material.ANVIL);
ItemMeta fastMenuMeta = fastMenu.getItemMeta();
fastMenuMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_FASTMENU());
if (player.hasInventoryAnimation()) fastMenuMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasInventoryAnimation()) fastMenuMeta.setLore(on);
else fastMenuMeta.setLore(off);
fastMenu.setItemMeta(fastMenuMeta);
ItemStack teleport = new ItemStack(Material.ENDER_PEARL);
ItemMeta teleportMeta = teleport.getItemMeta();
teleportMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_SERVER_TELEPORT());
if (player.hasTeleportAnimation()) teleportMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasTeleportAnimation()) teleportMeta.setLore(on);
else fastMenuMeta.setLore(off);
teleport.setItemMeta(teleportMeta);
ItemStack requestsParty = new ItemStack(Material.FIREWORK);
ItemMeta requestsPartyMeta = requestsParty.getItemMeta();
requestsPartyMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_PARTY_REQUESTS());
if (player.hasPartyRequests()) requestsPartyMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasPartyRequests()) requestsPartyMeta.setLore(on);
else requestsPartyMeta.setLore(off);
requestsParty.setItemMeta(requestsPartyMeta);
ItemStack requestsFriends = new ItemStack(Material.PUMPKIN);
ItemMeta requestsFriendsMeta = requestsFriends.getItemMeta();
requestsFriendsMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_FRIEND_REQUESTS());
if (player.hasFriendRequests()) requestsFriendsMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasFriendRequests()) requestsFriendsMeta.setLore(on);
else requestsFriendsMeta.setLore(off);
requestsFriends.setItemMeta(requestsFriendsMeta);
ItemStack friendJump = new ItemStack(Material.ELYTRA);
ItemMeta friendJumpMeta = friendJump.getItemMeta();
friendJumpMeta.setDisplayName("Freunde springen nicht gerne");
if (player.hasFriendJump()) friendJumpMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasFriendJump()) friendJumpMeta.setLore(on);
else friendJumpMeta.setLore(off);
friendJump.setItemMeta(friendJumpMeta);
ItemStack chat = new ItemStack(Material.SIGN);
ItemMeta chatMeta = chat.getItemMeta();
chatMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_CHATSOUNDS());
if (player.hasChatSounds()) chatMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasChatSounds()) chatMeta.setLore(on);
else chatMeta.setLore(off);
chat.setItemMeta(chatMeta);
ItemStack effects = new ItemStack(Material.BLAZE_POWDER);
ItemMeta effectsMeta = effects.getItemMeta();
effectsMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_EFFECTS());
if (player.hasEffects()) effectsMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasEffects()) effectsMeta.setLore(on);
else effectsMeta.setLore(off);
effects.setItemMeta(effectsMeta);
ItemStack storyMode = new ItemStack(Material.BOOK_AND_QUILL);
ItemMeta storyModeMeta = storyMode.getItemMeta();
storyModeMeta.setDisplayName("Geschichtsmodus ist auch noch da");
if (player.hasStoryMode()) storyModeMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
if (player.hasStoryMode()) storyModeMeta.setLore(on);
else storyModeMeta.setLore(off);
storyMode.setItemMeta(storyModeMeta);
ItemStack languages = new ItemStack(Material.BOOK);
ItemMeta languagesMeta = languages.getItemMeta();
languagesMeta.setDisplayName(player.getMessages().LobbyItems_SETTINGS_LANGUAGES());
languages.setItemMeta(languagesMeta);
inv.setItem(0, fastMenu);
inv.setItem(1, teleport);
inv.setItem(2, requestsParty);
inv.setItem(3, requestsFriends);
inv.setItem(4, friendJump);
inv.setItem(5, chat);
inv.setItem(6, effects);
inv.setItem(7, storyMode);
inv.setItem(17, languages);
return inv;
}
public Inventory getLanguagesInventory() {
Inventory inv = Bukkit.createInventory(player, 9, player.getMessages().LobbyItems_SETTINGS_LANGUAGES());
ItemStack de = new ItemStack(Material.PAPER);
ItemMeta deMeta = de.getItemMeta();
deMeta.setDisplayName("§eDeutsch");
if (player.getLanguage().equals("DE")) deMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
de.setItemMeta(deMeta);
ItemStack en = new ItemStack(Material.PAPER);
ItemMeta enMeta = en.getItemMeta();
enMeta.setDisplayName("§eEnglish");
if (player.getLanguage().equals("EN")) enMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
en.setItemMeta(enMeta);
ItemStack it = new ItemStack(Material.PAPER);
ItemMeta itMeta = it.getItemMeta();
itMeta.setDisplayName("§eitaliano");
if (player.getLanguage().equals("IT")) itMeta.addEnchant(Enchantment.ARROW_DAMAGE, 10, false);
it.setItemMeta(itMeta);
inv.setItem(0, de);
inv.setItem(1, en);
inv.setItem(2, it);
return inv;
}
/**
* gets friends inventory
*
* @return Inventory
*/
public Inventory getFriendsInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_FRIENDS());
/**
ArrayList<UUID> list = player.getFriends();
for(int i = 0; i >= list.size(); i++) {
OfflinePlayer p = Bukkit.getOfflinePlayer(list.get(i));
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
SkullMeta meta = (SkullMeta) skull.getItemMeta();
meta.setOwner(p.getName());
meta.setDisplayName(p.getName());
skull.setItemMeta(meta);
inv.addItem(skull);
}
*/
return inv;
}
public Inventory getStatsInventory() {
Inventory inv = Bukkit.createInventory(player, 45, player.getMessages().LobbyItems_STATS());
return inv;
}
/**
* time item appearance of item
*
* @param inv inventory
* @param slot Inventory slot
* @param item ItemStack
* @param sound Sound
* @param time long
* @param menu is menu ?
* @param forcedtime if true settings will be ignored
*/
private void timeItem(Inventory inv, int slot, ItemStack item, Sound sound, long time, boolean menu, boolean forcedtime) {
if (!player.hasInventoryAnimation() || forcedtime) {
addItem(inv, slot, item, null, menu);
} else {
Bukkit.getScheduler().scheduleAsyncDelayedTask(Lobby.getInstance(), () -> addItem(inv, slot, item, sound, menu), time);
}
}
/**
* add item to inventory
*
* @param inv inventory
* @param slot Inventory slot
* @param item ItemStack
* @param sound Sound
* @param menu is menu ?
*/
public void addItem(Inventory inv, int slot, ItemStack item, Sound sound, boolean menu) {
if (menu) {
String name = inv.getTitle();
if (player.getOpenInventory().getTitle().equals(name)) {
inv.setItem(slot, item);
player.playSound(player.getEyeLocation(), sound, 1.0F, 1.0F);
}
} else {
inv.setItem(slot, item);
player.playSound(player.getEyeLocation(), sound, 1.0F, 1.0F);
}
}
}