- Баллы
- 78
xDark, топ кодер))
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Щито ито било?
У меня подгорелоЩито ито било?
CSS:package me.xDark.TPhone.GUI; import java.io.File; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConfiguration; import org.*********ventory.Inventory; import org.*********ventory.ItemStack; import org.*********ventory.meta.ItemMeta; import net.md_5.bungee.api.ChatColor; public class OptionsGUI { static File GUIS = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("guis").concat(".yml")); static YamlConfiguration guiManager = YamlConfiguration.loadConfiguration(GUIS); static File f = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("config").concat(".yml")); static YamlConfiguration fm = YamlConfiguration.loadConfiguration(f); public static Inventory option = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&', guiManager.getString("option-menu.chest-name"))); static { ItemStack deviceInfo = new ItemStack(Material.IRON_INGOT, 1); ItemMeta deviceM = deviceInfo.getItemMeta(); deviceM.setDisplayName(ChatColor.translateAlternateColorCodes('&', guiManager.getString("option-menu.device-info"))); deviceM.setLore(guiManager.getStringList("option-menu.device-lore")); deviceInfo.setItemMeta(deviceM); option.setItem(13, deviceInfo); ItemStack back = new ItemStack(Material.STICK, 1); ItemMeta backm = back.getItemMeta(); backm.setDisplayName(ChatColor.translateAlternateColorCodes('&', guiManager.getString("option-menu.go-back"))); back.setItemMeta(backm); option.setItem(0, back); ItemStack sound = new ItemStack(Material.NOTE_BLOCK, 1); ItemMeta soundm = sound.getItemMeta(); soundm.setDisplayName(ChatColor.translateAlternateColorCodes('&', guiManager.getString("option-menu.turn-on-off-notify"))); sound.setItemMeta(soundm); option.setItem(12, sound); ItemStack power = new ItemStack(Material.REDSTONE_BLOCK, 1); ItemMeta powerm = power.getItemMeta(); powerm.setDisplayName(ChatColor.translateAlternateColorCodes('&', guiManager.getString("option-menu.power-button"))); power.setItemMeta(powerm); option.setItem(14, power); } }CSS:package me.xDark.TPhone.GUI; import java.io.File; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConfiguration; import org.*********ventory.Inventory; import org.*********ventory.ItemStack; import org.*********ventory.meta.ItemMeta; import net.md_5.bungee.api.ChatColor; public class PowerGUI { static File GUIS = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("guis").concat(".yml")); static YamlConfiguration guisManager = YamlConfiguration.loadConfiguration(GUIS); public static Inventory gui = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&', guisManager.getString("power-menu.chest-name"))); static { ItemStack off = new ItemStack(Material.LEVER, 1); ItemMeta offm = off.getItemMeta(); offm.setDisplayName(guisManager.getString("power-menu.turn-off-phone")); off.setItemMeta(offm); ItemStack reset = new ItemStack(Material.QUARTZ_BLOCK, 1); ItemMeta resetm = reset.getItemMeta(); resetm.setDisplayName(guisManager.getString("power-menu.reset")); reset.setItemMeta(resetm); gui.setItem(12, off); gui.setItem(14, reset); } }CSS:package me.xDark.TPhone.Listener; import java.io.File; import java.io.IOException; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.*********ventory.Inventory; import org.*********ventory.ItemStack; import me.xDark.TPhone.GUI.MainGUI; import me.xDark.TPhone.GUI.OptionsGUI; import me.xDark.TPhone.GUI.PowerGUI; import net.md_5.bungee.api.ChatColor; public class GUIClickListener implements Listener { File msg = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("messages").concat(".yml")); YamlConfiguration msgManager = YamlConfiguration.loadConfiguration(msg); static MainGUI gui; static OptionsGUI option; static PowerGUI power; @SuppressWarnings("static-access") @EventHandler // Главное GUI public void mainGUIClickEvent(InventoryClickEvent event) { Inventory inv = event.getInventory(); Player p = (Player) event.getWhoClicked(); ItemStack clickedItem = event.getCurrentItem(); if (inv.getName().equals(gui.gui.getName())) { if (clickedItem.getType() == Material.IRON_BLOCK) { event.setCancelled(true); p.closeInventory(); p.openInventory(option.option); } if (clickedItem.getType() == Material.PAPER) { event.setCancelled(true); p.closeInventory(); p.sendMessage(ChatColor.translateAlternateColorCodes('&', msgManager.getString("sms.correct-usage"))); } if (clickedItem.getType() == Material.NOTE_BLOCK) { event.setCancelled(true); } } } // GUI с настройками @SuppressWarnings("static-access") @EventHandler public void optionGUIClickEvent(InventoryClickEvent event) { Inventory inv = event.getInventory(); ItemStack clickedItem = event.getCurrentItem(); Player p = (Player) event.getWhoClicked(); File data = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("playerdata").concat(File.separator.concat(p.getName().toString().concat(".yml")))); YamlConfiguration dataManager = YamlConfiguration.loadConfiguration(data); if (inv.getName().equals(option.option.getName())) { if (clickedItem.getType() == Material.IRON_INGOT) { event.setCancelled(true); } if (clickedItem.getType() == Material.STICK) { event.setCancelled(true); p.closeInventory(); p.openInventory(gui.gui); } if (clickedItem.getType() == Material.NOTE_BLOCK) { if (dataManager.getBoolean(p.getName().toString() + ".notify") == false) { event.setCancelled(true); p.closeInventory(); dataManager.set(p.getName().toString() + ".notify", true); p.sendMessage(ChatColor.translateAlternateColorCodes('&', msgManager.getString("sms.notification-enabled"))); try { dataManager.save(data); } catch (IOException e) { e.printStackTrace(); } }else{ event.setCancelled(true); p.closeInventory(); dataManager.set(p.getName().toString() + ".notify", false); p.sendMessage(ChatColor.translateAlternateColorCodes('&', msgManager.getString("sms.notification-disabled"))); try { dataManager.save(data); } catch (IOException e) { e.printStackTrace(); } } } if (clickedItem.getType() == Material.REDSTONE_BLOCK) { event.setCancelled(true); p.sendMessage(ChatColor.translateAlternateColorCodes('&', msgManager.getString("power-menu.opened"))); p.closeInventory(); p.openInventory(power.gui); } } } // GUI с настройками x2 @SuppressWarnings("static-access") @EventHandler public void powerGUIClickEvent(InventoryClickEvent event) { Inventory inv = event.getInventory(); ItemStack clickedItem = event.getCurrentItem(); Player p = (Player) event.getWhoClicked(); File data = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("playerdata").concat(File.separator.concat(p.getName().toString().concat(".yml")))); YamlConfiguration dataManager = YamlConfiguration.loadConfiguration(data); if (inv.getName().equals(power.gui.getName())) { if (clickedItem.getType() == Material.LEVER) { event.setCancelled(true); dataManager.set(p.getName().toString() + ".toggled", false); p.closeInventory(); p.sendMessage(ChatColor.translateAlternateColorCodes('&', msgManager.getString("power-menu.device-turned-off"))); try { dataManager.save(data); } catch (IOException e) { e.printStackTrace(); } } if (clickedItem.getType() == Material.QUARTZ_BLOCK) { event.setCancelled(true); data.delete(); try { data.createNewFile(); } catch (IOException e) { e.printStackTrace(); } p.sendMessage(ChatColor.translateAlternateColorCodes('&', msgManager.getString("power-menu.phone-reseted"))); p.closeInventory(); } } } }
И да, попрошу говорить о всех найденных багах в плагине в данной теме.CSS:package me.xDark.TPhone.Listener; import java.io.File; import java.io.IOException; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; public class JoinListener implements Listener { @EventHandler public void onJoin(PlayerJoinEvent event) { Player p = event.getPlayer(); File data = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("playerdata").concat(File.separator.concat(p.getName().toString().concat(".yml")))); YamlConfiguration dataManager = YamlConfiguration.loadConfiguration(data); if (!data.exists()) { try { data.createNewFile(); dataManager.set(p.getName().toString() + ".notify", true); dataManager.set(p.getName().toString() + ".toggled", true); dataManager.save(data); } catch (IOException e1) { e1.printStackTrace(); } } } }
Предложения тоже пишите, самые прикольные попытаюсь реализовать.
TODO:
1) Добавить музыку
2) Добавить больше возможностей
3) Добавить возможность изменить цвет фона.
Если бы плагин выглядел, примерно как КПК в моде на arma 3 - Exile (ХМ8), то было бы реально круто...могу продолжить разработку, но ведь это никому не нужно...
угу.Если бы плагин выглядел, примерно как КПК в моде на arma 3 - Exile (ХМ8), то было бы реально круто...
Ладно, не буду мечтать, глупо...
![]()
P.S по плагину: по логике вещей этот телефон - мессенджер. Тоесть можно сказать альтернатива плагинам на личные сообщения, так?
Вангую туеву хучу статических методов, которыми будут пользоваться 2.5 человека. Хотя не, вру. 1.3 человека.Сделай API для взаимодействия
Совсем дурак?введи тарифы, + номера будет время сделаю терминалы оплаты для телефона
Сомнения?Совсем дурак
Пи*дишь, 1.5вру. 1.3 человека.