1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как сделать статитечский метод?

Тема в разделе "Разработка плагинов для новичков", создана пользователем RiseYT, 30 авг 2018.

Статус темы:
Закрыта.
  1. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Добрый день. Уже несколько дней ломаю голову. Уже что только не перепробовал.

    Код:
        public void onPlayerjoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            p.setDisplayName(NametagAPI.getNametag(p));
    Ошибка: Cannot make a static reference to the non-static method getNametag(Player) from the type NametagAPI. (p.setDisplayName(NametagAPI.getNametag(p))
    Кто сможет помочь, пожалуйста. Отзовитесь. Если нужен полный код, сообщите.

    Искал на других форумах, ничего не нашёл.
     
  2. Exception_Prototype

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

    Баллы:
    96
    Полный код давай и полностью опиши задание.
     
  3. alexandrage

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

    Баллы:
    173
    Модификатор static. Странный вопрос. Иди учи основы жабы.
     
  4. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Код:
    package ru.rise.fwchat.listeners;
    
    import ru.rise.fwchat.Main;
    
    import org.bukkit.event.player.*;
    
    import net.md_5.bungee.api.*;
    
    import org.bukkit.entity.*;
    import org.bukkit.event.*;
    
    import com.nametagedit.plugin.api.NametagAPI;
    
    import me.clip.placeholderapi.*;
    
    public class PlayerListener implements Listener
    {
        public Main plugin;
        
        public PlayerListener(final Main plugin) {
            this.plugin = plugin;
        }
        public PlayerListener() {
        }
        @EventHandler
        public void onChat(final AsyncPlayerChatEvent e) {
            final Player p = e.getPlayer();
            final String g = this.plugin.perms.getPrimaryGroup(p);
            if (p.hasPermission("chat.color")) {
                e.setMessage(ChatColor.translateAlternateColorCodes('&', e.getMessage()));
            }
            String format = "";
            if (this.plugin.getConfig().getConfigurationSection("groups." + g) != null) {
                format = this.plugin.getConfig().getString("groups." + g + ".format");
            }
            else {
                format = this.plugin.getConfig().getString("default_format");
            }
            format = format.replace("{PLAYER_NAME}", p.getName());
            format = format.replace("{DISPLAY_NAME}", p.getDisplayName());
            format = this.replacePlaceholderAPI(p, format);
            format = this.replaceVault(p, format);
            format = ChatColor.translateAlternateColorCodes('&', format);
            format = format.replace("%", "%%");
            format = format.replace("{MESSAGE}", "%2$s");
            e.setFormat(format);
        }
        public void onPlayerjoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            p.setDisplayName(NametagAPI.getNametag(p));
        }
        public String replaceVault(final Player p, final String message) {
            String rank = null;
            String prefix = null;
            String suffix = null;
            prefix = this.plugin.chat.getPlayerPrefix(p);
            suffix = this.plugin.chat.getPlayerSuffix(p);
            rank = this.plugin.perms.getPrimaryGroup(p);
            String holders = message.replace("{PREFIX}", prefix);
            holders = holders.replace("{SUFFIX}", suffix);
            holders = holders.replace("{RANK}", rank);
            return holders;
        }
        
        @SuppressWarnings("deprecation")
        public String replacePlaceholderAPI(final Player p, final String message) {
            String holders = message;
            if (this.plugin.placeholders && PlaceholderAPI.containsPlaceholders(holders)) {
                holders = PlaceholderAPI.setPlaceholders(p, holders);
            }
            return holders;
        }
    }
    
    Я хочу, чтобы DisplayName брался из NameTagEdit. Но мне выдаёт ошибку, типо метод getNametag(Player) не статичен. Мне надо его сделать статичным.
     
  5. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Пробовал. Или я что-то не так сделал, или оно реально не робит
     
  6. alexandrage

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

    Баллы:
    173
    Код:
        public static String getNametag(Player p) {
            //TODO
        }
     
  7. Exception_Prototype

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

    Баллы:
    96
    Капец, я думал у него что то другое, а это основы)0
     
  8. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Не работает( Можешь кинуть код, как это должно выглядеть?
     
  9. Exception_Prototype

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

    Баллы:
    96
    Что там может не работать? Ты метод сделал статическим. Показывай весь код и ошибки.
     
  10. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Безымянный.png
     
  11. Exception_Prototype

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

    Баллы:
    96
    Не, это уже не серьёзно.
    Тебе говорят, что метод должен возвращать строку, а на данный момент ты ещё не реализовал его возвращаемое значение. Реализуй return из метода. И иди учи основы java, это не серьёзно.
     
  12. SHADOWDAN

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

    Баллы:
    76
    Насколько я понял ты юзаешь это и хочешь установить тег игроку при входе на странице плагина есть куча екземплов вот один из них:
    PHP:
    NameTagAPI.setTag(Player pString tagPlayer players);
    И @EventHandler не забудь
     
  13. SHADOWDAN_DAN

    SHADOWDAN_DAN Ньюби

    Баллы:
    1
    Имя в Minecraft:
    xui
    Привет, брат
     
  14. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Я хочу, чтобы плагин "вытаскивал" Префикс и ник игрока и NTE.
     
  15. SHADOWDAN

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

    Баллы:
    76
    t0b1 p1zda
     
  16. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Юзаю это
     
  17. SHADOWDAN

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

    Баллы:
    76
    PHP:
        @EventHandler
        
    public void onPlayerjoin(PlayerJoinEvent e) {
            
    Player p e.getPlayer();
            
    p.setDisplayName(NametagAPI.getNametag(p.getName()));
        }
    Вот так пробуй
     
  18. SHADOWDAN

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

    Баллы:
    76
    Нету такого метода как getNametag(Player) есть только getNametag(String).
     
  19. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Согласен. Пробовал преобразовывать это в String, ничего не вышло(
     
  20. Автор темы
    RiseYT

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

    Баллы:
    76
    Имя в Minecraft:
    _RiseYT_
    Делаю так, вылезает другая ошибка. Просит String, а не игрока
     
Статус темы:
Закрыта.

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