Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

ClumsyDima

Участник
Пользователь
Баллы
36
Имя в 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 - Право на перезапуск

Идея конечно интерестная, но это не заказ. Просто я делюсь с вами со своей идеей..;)
 
Последнее редактирование:
"Алло, Вася6593693, привет, как делишки, я тут одного нубаря на алмазы раздел, подходи."
Если сообщения ещё можно, но вот остальное - как?
 
Почти все это можно реализовать другими плагинами.
 
О боже, зачем срат**я в комментариях, например:
Для гуи ChestCommand.
Сообщения: essentials
Мелодии: icJukeboz
 
:good:

То есть, ты хочешь, чтобы я его написал?
НЕТ!!! Я же писал, только делюсь идеей.
О боже, зачем срат**я в комментариях, например:
Для гуи ChestCommand.
Сообщения: essentials
Мелодии: icJukeboz
Устанавливал icJukeboz, но там песни не играют, а так работает плагин, но ничего не происходит..
 
Идея с плагином на телефон смахивает на SAMP :)
 
Вопрос:
Какие именно "настройки"?
Ну вот пока что тестовая версия, там еще не все что ты хотел, остальное сделаю завтра.
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.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.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();
            }
        }
    }
}
 
Вопрос:
Какие именно "настройки"?
Ну вот пока что тестовая версия, там еще не все что ты хотел, остальное сделаю завтра.
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.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.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();
            }
        }
    }
}
Конфиг и ивенты в отельные классы, а то так путаницы. И будет выглядеть, как г**нокод.
 
Конфиг и ивенты в отельные классы, а то так путаницы. И будет выглядеть, как г**нокод.
Окей, сделаю, но не сегодня
@ClumsyDima
немножко говнокода:
И да, сделано еще не все
edit:
classes:
CSS:
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;
    }
}
CSS:
package me.xDark.TPhone.GUI;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.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);
    }

}
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 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);
    }
 
}
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 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();
                    }
                  
                }
            }
        }
    }
}
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.save(data);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}

UPDATE:
Полная кастумизация текста на свой выбор:
https://yadi.sk/d/F2S2ubjWtjXph
(Конфиг пока что не используется)
(Нужно удалить папку и перезагрузить плагин).
 
Последнее редактирование:
Напишите в комментариях, что можно ещё придумать..
Отправка смс не командой. К примеру, в основном гуи телефона есть кнопочка "смс", нажав на которую открывается гуи с выбором игроков, в котором головы всех игроков на сервере. ЛКМ по голове игрока - открыть историю переписки, ПКМ- написать новое сообщение.

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

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

Далее сообщение отправляется и получатель слышит звук(например, Level_up), и в гуи полученных сообщений добавляется это сообщение(предметом может быть бумага, а lore - текст сообщения)
Вот такая идея)
 
Отправка смс не командой. К примеру, в основном гуи телефона есть кнопочка "смс", нажав на которую открывается гуи с выбором игроков, в котором головы всех игроков на сервере. ЛКМ по голове игрока - открыть историю переписки, ПКМ- написать новое сообщение.

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

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

Далее сообщение отправляется и получатель слышит звук(например, Level_up), и в гуи полученных сообщений добавляется это сообщение(предметом может быть бумага, а lore - текст сообщения)
Вот такая идея)
если ты про имеешь ввиду отправить сообщение через наковальню - то увы, апи на нее нет, а через пакеты не очень хочется, и:
Идеи для команд:
/
phone - Открывается GUI телефон.
/phone off - Отключить телефон.
/phone on - Включить телефон.
/rphone - Перезагрузить телефон.
/sms [игрок] [сообщение] - Отправить сообщение.
Или ты предлагаешь отловить чат, и на бумагу это записать?
 
если ты про имеешь ввиду отправить сообщение через наковальню - то увы, апи на нее нет, а через пакеты не очень хочется, и:

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

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