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

Плагин [FUN] TPhone v.2.1 - телефон (логично) [1.8.x]

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) Добавить возможность изменить цвет фона.

В todo стоит еще добавить возможность добавлять абонента в чёрный список
 
Последнее редактирование:
могу продолжить разработку, но ведь это никому не нужно...
 
могу продолжить разработку, но ведь это никому не нужно...
Если бы плагин выглядел, примерно как КПК в моде на arma 3 - Exile (ХМ8), то было бы реально круто...
Ладно, не буду мечтать, глупо...
85BF5C6B5523EA030815F39F489824EDE76119E9

P.S по плагину: по логике вещей этот телефон - мессенджер. Тоесть можно сказать альтернатива плагинам на личные сообщения, так?
 
Если бы плагин выглядел, примерно как КПК в моде на arma 3 - Exile (ХМ8), то было бы реально круто...
Ладно, не буду мечтать, глупо...
85BF5C6B5523EA030815F39F489824EDE76119E9

P.S по плагину: по логике вещей этот телефон - мессенджер. Тоесть можно сказать альтернатива плагинам на личные сообщения, так?
угу.
но т.к. он никому почти не нужен - я забросил его.
 
Засунь исходники на GitHub, а то так неудобно копипасте использовать.
 
Сделай API для взаимодействия,и введи тарифы, + номера будет время сделаю терминалы оплаты для телефона
 
Сделай API для взаимодействия
Вангую туеву хучу статических методов, которыми будут пользоваться 2.5 человека. Хотя не, вру. 1.3 человека.
введи тарифы, + номера будет время сделаю терминалы оплаты для телефона
Совсем дурак?
 
Не забрасывай такой крутой плагин! Я уверен, что он будет очень крутым. Сделай обновление. GUI меню исправить. Будет очень круто.
 
Плагин классный

Но он бесполезный, всем бы админку и креатив.
 

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

Назад
Верх