Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Идея [FUN] T-Phone - Телефоны для игроков

Тема в разделе "Запросы на разработку плагинов", создана пользователем ClumsyDima, 26 июл 2016.

  1. Автор темы
    ClumsyDima

    ClumsyDima Участник Пользователь

    Баллы:
    36
    Skype:
    dimanchik21ru
    Имя в Minecraft:
    ClumsyDima
    Категория плагина: FUN

    Предлагаемое название: T-Phone

    Версия сервера: Надо чтобы работало под 1.8.8

    Идея:
    Идея такова, у каждого игрока после входа на сервер, должен быть телефон. Чтобы он сразу после входа был у вас в инвентаре можно конечно сделать через CustomJoinItem. Но нужно чтобы была функция чтоб без этого плагина можно было вкл/выкл. эту функцию.

    Хотелось бы чтобы телефон, был в GUI. Иконки чтоб были точно как на телефонах.
    Что должно быть на телефоне:
    1. Сообщения - хотелось бы чтобы игроки могли отправлять сообщения друг другу. (Чем круче можете придумать, тем лучше). Например, игрок нажимает иконку на телефоне GUI, "Отправить сообщение" и после этого закрываясь gui, в чате выскакивал текст "Чтобы отправить сообщение, введите /sms [игрок] [сообщение]." Но за отправку сообщений, должно брать деньги например 3$ за одно сообщение с баланса игрока.
    2. Настройки
    3. Вызовы - (Не обязательно, но это на вашу фантазию)
    4. Музыка - Мелодии из нотного блока, чтоб можно было выбирать.
    5. Напишите в комментариях, что можно ещё придумать..

    Идеи для команд:
    /
    phone - Открывается GUI телефон.
    /phone off - Отключить телефон.
    /phone on - Включить телефон.
    /rphone - Перезагрузить телефон.
    /sms [игрок] [сообщение] - Отправить сообщение.

    Идеи пермишенов:
    t-phone.use - Все права для игрока
    t-phone.reload - Право на перезапуск

    Идея конечно интерестная, но это не заказ. Просто я делюсь с вами со своей идеей..;)
     
    Последнее редактирование: 27 июл 2016
  2. Хостинг MineCraft
    <
  3. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    46
    и все побежали делать, ага
     
  4. zixxa

    zixxa Старожил Пользователь

    Баллы:
    103
    "Алло, Вася6593693, привет, как делишки, я тут одного нубаря на алмазы раздел, подходи."
    Если сообщения ещё можно, но вот остальное - как?
     
  5. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Ну нифига себе, 200 рублей за смс, ты че, бухал, когда это писал?
     
  6. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Почти все это можно реализовать другими плагинами.
     
  7. Автор темы
    ClumsyDima

    ClumsyDima Участник Пользователь

    Баллы:
    36
    Skype:
    dimanchik21ru
    Имя в Minecraft:
    ClumsyDima
    Игровые деньги, это ваще копейки..
     
  8. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Какая разница?:lol:
     
  9. Автор темы
    ClumsyDima

    ClumsyDima Участник Пользователь

    Баллы:
    36
    Skype:
    dimanchik21ru
    Имя в Minecraft:
    ClumsyDima
    БОЛЬШАЯ. Ну если хочешь, можно сделать настройку цены в конфигурации
     
  10. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    :good:[DOUBLEPOST=1469625884,1469611564][/DOUBLEPOST]
    То есть, ты хочешь, чтобы я его написал?
     
  11. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    О боже, зачем срат**я в комментариях, например:
    Для гуи ChestCommand.
    Сообщения: essentials
    Мелодии: icJukeboz
     
  12. Автор темы
    ClumsyDima

    ClumsyDima Участник Пользователь

    Баллы:
    36
    Skype:
    dimanchik21ru
    Имя в Minecraft:
    ClumsyDima
    НЕТ!!! Я же писал, только делюсь идеей.[DOUBLEPOST=1469636653][/DOUBLEPOST]
    Устанавливал icJukeboz, но там песни не играют, а так работает плагин, но ничего не происходит..
     
  13. _MineDest_

    _MineDest_ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    MineDest
    Идея с плагином на телефон смахивает на SAMP :)
     
  14. Автор темы
    ClumsyDima

    ClumsyDima Участник Пользователь

    Баллы:
    36
    Skype:
    dimanchik21ru
    Имя в Minecraft:
    ClumsyDima
    Есть такое :)
     
  15. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Странно, проверьте версию ядра, все необходимые эпи для нго.
     
  16. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Вопрос:
    Какие именно "настройки"?[DOUBLEPOST=1469715800,1469704063][/DOUBLEPOST]Ну вот пока что тестовая версия, там еще не все что ты хотел, остальное сделаю завтра.
    http://rgho.st/8VvnvQkcW
    Код:
    package me.xDark.TPhone;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.command.ConsoleCommandSender;
    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.bukkit.event.inventory.InventoryType;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import net.md_5.bungee.api.ChatColor;
    
    public class TPhone
    extends JavaPlugin
    implements Listener {
        private ArrayList<Player> players = new ArrayList<Player>();
        private ArrayList<Player> msgs = new ArrayList<Player>();
        File folder = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator));
        File data = new File(this.getDataFolder().toString().concat(File.separator).concat("database").concat(".yml"));
        YamlConfiguration dataManager = YamlConfiguration.loadConfiguration(data);
        @Override
        public void onEnable()
        {
            if (!folder.exists())
            {
                folder.mkdirs();
            }
            if (!data.exists())
            {
                try
                {
                    data.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            this.getLogger().info("enabled");
        }
        @Override
        public void onDisable()
        {
            if (data.exists())
            {
                data.delete();
                try
                {
                    data.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            this.getLogger().info("disabled");
          
        }
        public boolean onCommand(CommandSender s, Command cmd, String str, String[] args)
        {
            if (s instanceof ConsoleCommandSender)
            {
                s.sendMessage("This command can not be executed from console!");
                return true;
            }
            if (str.equalsIgnoreCase("phone"))
            {
                if (s.hasPermission("tphone.use"))
                {
                    Player p = Bukkit.getPlayer(s.getName().toString());
                    s.sendMessage(ChatColor.GOLD + "Настройки телефона открыты!");
                    p.openInventory(gui);
                      
                }else
                {
                    s.sendMessage(ChatColor.RED + "Нет прав");
                }
            }
            return true;
        }  
        TPhone plugin;
        public static Inventory gui = Bukkit.createInventory(null, 36, ChatColor.GOLD + "Меню телефона");
        public static Inventory option = Bukkit.createInventory(null, 36, ChatColor.GOLD + "Настройки телефона");
        static {
            ItemStack options = new ItemStack(Material.IRON_BLOCK, 1);
            ItemStack sms = new ItemStack(Material.PAPER, 1);
            ItemStack music = new ItemStack(Material.NOTE_BLOCK, 1);
            ItemMeta optionsM = options.getItemMeta();
            ItemMeta smsM = sms.getItemMeta();
            ItemMeta musicM = music.getItemMeta();
            optionsM.setDisplayName(ChatColor.GOLD + "Меню настроек");
            smsM.setDisplayName(ChatColor.GOLD + "Отправить сообщение");
            musicM.setDisplayName(ChatColor.GOLD + "Слушать музыку");
            options.setItemMeta(optionsM);
            sms.setItemMeta(smsM);
            music.setItemMeta(musicM);
            gui.setItem(12, sms);
            gui.setItem(13, options);
            gui.setItem(14, music);
        }
        @EventHandler
        public void mainGUIClickEvent(InventoryClickEvent event) {
            Inventory inv = event.getInventory();
            Player p = (Player) event.getWhoClicked();
            ItemStack clickedItem = event.getCurrentItem();
            if (inv.getName().equals(gui.getName())) {
                if (clickedItem.getType() == Material.IRON_BLOCK) {
                    event.setCancelled(true);
                    p.sendMessage(ChatColor.GREEN + "Меню настроек открыто!");
                    p.closeInventory();
                    p.openInventory(option);
                }
                if (clickedItem.getType() == Material.PAPER) {
                        event.setCancelled(true);
                        p.closeInventory();
                        players.add(p);
                        p.sendMessage(ChatColor.GOLD + "Напишите ник игрока которому Вы хотите отправить сообщение");
                }
                if (clickedItem.getType() == Material.NOTE_BLOCK) {
                    event.setCancelled(true);
                }
            }
        }
        @EventHandler
        public void onCht(AsyncPlayerChatEvent event) {
            Player p = event.getPlayer();
            if (players.contains(p)) {
                event.setCancelled(true);
                if (Bukkit.getPlayer(event.getMessage()) != null) {
                    dataManager.set(p.getName().toString() + ".target", event.getMessage());
                    try {
                        dataManager.save(data);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    players.remove(p);
                    msgs.add(p);
                }else{
                    p.sendMessage(ChatColor.RED + "Игрок оффлайн!");
                }
            }
            if (msgs.contains(p)) {
                event.setCancelled(true);
                Player target = Bukkit.getPlayer(event.getMessage());
                target.sendMessage(ChatColor.GOLD + "Вам сообщение от игрока " + p.getName());
                target.sendMessage(event.getMessage());
                msgs.remove(p);
                dataManager.set(p.getName().toString() + ".target", null);
                try {
                    dataManager.save(data);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
     
  17. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Конфиг и ивенты в отельные классы, а то так путаницы. И будет выглядеть, как г**нокод.
     
  18. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Окей, сделаю, но не сегодня[DOUBLEPOST=1469769403,1469719407][/DOUBLEPOST]@ClumsyDima[DOUBLEPOST=1469786988][/DOUBLEPOST]немножко говнокода:
    И да, сделано еще не все
    edit:
    classes:
    Код:
    package me.xDark.TPhone;
    
    import java.io.File;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Sound;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.command.ConsoleCommandSender;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import me.xDark.TPhone.GUI.MainGUI;
    import me.xDark.TPhone.Listener.GUIClickListener;
    import me.xDark.TPhone.Listener.JoinListener;
    import net.md_5.bungee.api.ChatColor;
    
    public class TPhone extends JavaPlugin implements Listener {
        // Папка с плагином
        public File folder = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator));
        File playerFolder = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("playerdata").concat(File.separator));
        // Папка с игроками (хз зачем можно было все проще сделать)
        static PluginManager pm = Bukkit.getServer().getPluginManager();
        @Override
        public void onEnable() {
            // Проверить что папка с плагином не существует.
            if (!folder.exists()) {
                // Создать папку
                folder.mkdirs();
            }
            if (!playerFolder.exists()) {
                playerFolder.mkdirs();
            }
            // Регистрация ивентов
            pm.registerEvents(new GUIClickListener(), this);
            pm.registerEvents(new JoinListener(), this);
            // config
            saveDefaultConfig();
            this.getLogger().info("enabled");
        }
        @Override
        public void onDisable() {
            this.getLogger().info("disabled");
        }
        public boolean onCommand(CommandSender s, Command cmd, String str, String[] args) {
            if (s instanceof ConsoleCommandSender) {
                s.sendMessage("This command can not be executed from console!");
                return true;
            }
            Player p = Bukkit.getPlayer(s.getName().toString());
            if (str.equalsIgnoreCase("phone")) {
                if (s.hasPermission("tphone.use")) {
                    s.sendMessage(ChatColor.GOLD + "Настройки телефона открыты!");
                    p.openInventory(MainGUI.gui);
                     
                }else{
                    s.sendMessage(ChatColor.RED + "Нет прав");
                }
            }
            // SMS
            if (str.equalsIgnoreCase("sms")) {
                if (s.hasPermission("tphone.use")) {
                    if (args.length > 1) {
                        if (Bukkit.getPlayer(args[0].toString()) != null) {
                            if (args[1].isEmpty() == false) {
                                Player target = Bukkit.getPlayer(args[0].toString());
                                File data = new File("plugins".concat(File.separator).concat("TPhone").concat(File.separator).concat("playerdata").concat(File.separator.concat(target.getName().toString().concat(".yml"))));
                                YamlConfiguration dataManager = YamlConfiguration.loadConfiguration(data);
                                if (dataManager.getBoolean(target.getName().toString() + ".notify") == true) {
                                    target.playSound(target.getLocation(), Sound.NOTE_PLING, 50, 1);
                                }
                                target.sendMessage(ChatColor.GOLD + "Вам сообщение от игрока " + p.getName());
                                // StringBuilder
                                StringBuilder sms = new StringBuilder();
                                if (args.length >= 2) {
                                    sms.append(args[1]);
                                      for (int i = 2; i < args.length; i++) {
                                          sms.append(" ");
                                          sms.append(args[i]);
                                      }
                                }
                                {
                                    target.sendMessage(ChatColor.GOLD + sms.toString());
                                }
                            }
                         
                        }else{
                            s.sendMessage(ChatColor.RED + "Игрок не найден!");
                        }
                    }else{
                        if (args.length < 2) {
                            s.sendMessage(ChatColor.RED + "Используйте /sms [Игрок] [Ваше сообщение]");
                        }
                    }
                }else{
                    s.sendMessage(ChatColor.RED + "Нет прав");
                }
            }
            return true;
        }
    }
    Код:
    package me.xDark.TPhone.GUI;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    import net.md_5.bungee.api.ChatColor;
    
    public class MainGUI {
        public static Inventory gui = Bukkit.createInventory(null, 27, ChatColor.GOLD + "Меню телефона");
        static {
            ItemStack options = new ItemStack(Material.IRON_BLOCK, 1);
            ItemStack sms = new ItemStack(Material.PAPER, 1);
            ItemStack music = new ItemStack(Material.NOTE_BLOCK, 1);
            ItemMeta optionsM = options.getItemMeta();
            ItemMeta smsM = sms.getItemMeta();
            ItemMeta musicM = music.getItemMeta();
            optionsM.setDisplayName(ChatColor.GOLD + "Меню настроек");
            smsM.setDisplayName(ChatColor.GOLD + "Отправить сообщение");
            musicM.setDisplayName(ChatColor.GOLD + "Слушать музыку");
            options.setItemMeta(optionsM);
            sms.setItemMeta(smsM);
            music.setItemMeta(musicM);
            gui.setItem(12, sms);
            gui.setItem(13, options);
            gui.setItem(14, music);
        }
    
    }
    
    Код:
    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.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    import net.md_5.bungee.api.ChatColor;
    
    public class OptionsGUI {
        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.GOLD + "Настройки телефона");
        static {
            ItemStack deviceInfo = new ItemStack(Material.IRON_INGOT, 1);
            ItemMeta deviceM = deviceInfo.getItemMeta();
            deviceM.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&6Информация о телефоне:"));
            deviceM.setLore(fm.getStringList("device-lore"));
            deviceInfo.setItemMeta(deviceM);
            option.setItem(13, deviceInfo);
            ItemStack back = new ItemStack(Material.STICK, 1);
            ItemMeta backm = back.getItemMeta();
            backm.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&6Вернуться назад"));
            back.setItemMeta(backm);
            option.setItem(0, back);
            ItemStack sound = new ItemStack(Material.NOTE_BLOCK, 1);
            ItemMeta soundm = sound.getItemMeta();
            soundm.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&aВключить/выключить уведомления о SMS"));
            sound.setItemMeta(soundm);
            option.setItem(12, sound);
        }
     
    }
    
    Код:
    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.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    
    import me.xDark.TPhone.GUI.MainGUI;
    import me.xDark.TPhone.GUI.OptionsGUI;
    import net.md_5.bungee.api.ChatColor;
    
    public class GUIClickListener implements Listener {
        static MainGUI gui;
        static OptionsGUI option;
        @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.sendMessage(ChatColor.GREEN + "Меню настроек открыто!");
                    p.closeInventory();
                    p.openInventory(OptionsGUI.option);
                }
                if (clickedItem.getType() == Material.PAPER) {
                        event.setCancelled(true);
                        p.closeInventory();
                        p.sendMessage(ChatColor.GOLD + "Используйте /sms [Игрок] [Ваше сообщение]");
                }
                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.GREEN + "Уведомления о сообщениях включены!");
                        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.GREEN + "Уведомления о сообщениях выключены!");
                        try {
                            dataManager.save(data);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                      
                    }
                }
            }
        }
    }
    Код:
    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.save(data);
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
    }
    
    [DOUBLEPOST=1469789638][/DOUBLEPOST]UPDATE:
    Полная кастумизация текста на свой выбор:
    https://yadi.sk/d/F2S2ubjWtjXph
    (Конфиг пока что не используется)
    (Нужно удалить папку и перезагрузить плагин).
     
    Последнее редактирование: 29 июл 2016
  19. BananaCoder

    BananaCoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    BananaCoder
    Отправка смс не командой. К примеру, в основном гуи телефона есть кнопочка "смс", нажав на которую открывается гуи с выбором игроков, в котором головы всех игроков на сервере. ЛКМ по голове игрока - открыть историю переписки, ПКМ- написать новое сообщение.

    Собственно, отправка сообщений.

    После того, как отправитель нажимает по голове в гуи, активируется 'режим сообщений'. Всё, что отправитель напишет в чате будет считаться сообщением (но только одно сообщение). Выйти из режима сообщений можно, к примеру, приписав в чат "cancel".

    Далее сообщение отправляется и получатель слышит звук(например, Level_up), и в гуи полученных сообщений добавляется это сообщение(предметом может быть бумага, а lore - текст сообщения)
    Вот такая идея)
     
  20. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    если ты про имеешь ввиду отправить сообщение через наковальню - то увы, апи на нее нет, а через пакеты не очень хочется, и:
    Или ты предлагаешь отловить чат, и на бумагу это записать?
     
  21. BananaCoder

    BananaCoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    BananaCoder
    В PermissionsGUI это реализовано. Честно, не смотрел и представления, как 'ловить чат' не имею. (Там нажимаем на предмет в гуи (смена префикса группе), гуи закрывается и всё, что игрок введёт в чате будет являться префиксом.(но только одно сообщение!).

    Насчёт добавления в гуи.
    Это реализовано в каком-то плагине на репорты. (Все репорты отображаются в гуи). Плагин платный, но, вроде сливали уже.
     

Поделиться этой страницей