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

.

Статус
Закрыто для дальнейших ответов.
А не проще сделать одну команду /morehealth и дальше уже слушать её аргументы?
Например, /morehealth enable, или /morehealth disable
Если хочешь, могу рассказать, как такое осуществить
 
А не проще сделать одну команду /morehealth и дальше уже слушать её аргументы?
Например, /morehealth enable, или /morehealth disable
Если хочешь, могу рассказать, как такое осуществить
Конечно проще, я так и хотел сначала, но понял что тут надо то самое "слушать аргументы", а я такого не знаю...
Но узнаю с удовольствием :3
 
Конечно проще, я так и хотел сначала, но понял что тут надо то самое "слушать аргументы", а я такого не знаю...
Но узнаю с удовольствием :3
Очень просто делается
Java:
if(args.length > 0)//Если аргументов команды больше нуля...
{
if(args[0].eqalsIgnoreCase("enable")) // И если первый аргумент равен "enable"...
{
//...то делаешь то, что задумал
}
}
 
Очень просто делается
Java:
if(args.length > 0)//Если аргументов команды больше нуля...
{
if(args[0].eqalsIgnoreCase("enable")) // И если первый аргумент равен "enable"...
{
//...то делаешь то, что задумал
}
}
Очень тупой вопрос, мне надо создать только одну команду (morehealth) а все остальное - данным кодом?
 
Очень тупой вопрос, мне надо создать только одну команду (morehealth) а все остальное - данным кодом?
Java:
if ((cmd.getName().equalsIgnoreCase("morehealth")) && ((sender instanceof Player)))//Если отправитель команды-игрок
{
if(args.length > 0)//Если аргументов команды больше нуля...
{
if(args[0].eqalsIgnoreCase("enable")) // И если первый аргумент равен "enable"...
{
//...то делаешь то, что задумал
}
}
}
 
Java:
if ((cmd.getName().equalsIgnoreCase("morehealth")) && ((sender instanceof Player)))//Если отправитель команды-игрок
{
if(args.length > 0)//Если аргументов команды больше нуля...
{
if(args[0].eqalsIgnoreCase("enable")) // И если первый аргумент равен "enable"...
{
//...то делаешь то, что задумал
}
}
}
Большой спасибон!)))
И еще вопрос, как при таком коде:
JavaScript:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
        Player player = null;
        if (sender instanceof Player)
        {
            player = (Player) sender;
        }
        if (cmd.getName().equalsIgnoreCase("morehealth"))
        {
            if (args.length > 0)
            {
                if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.user"))
                {
                    player.setMaxHealth(40);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                } else if (args[0].equalsIgnoreCase("disable"))
                {
                    player.setMaxHealth(20);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.RED + "Дополнительные жизни были выключены.");
                    return true;
                }
            }
        }
        return false;
    }
Должен выглядит plugin.yml (часть с commands)?
Уже разобрался с plugin.yml.
Но проблема с двойной командой осталась!!!
Прощу помощи!!! Теперь есть 2 команды:
/morehealth
и
/morehealth:morehealth
UP
 
Большой спасибон!)))
И еще вопрос, как при таком коде:
JavaScript:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
        Player player = null;
        if (sender instanceof Player)
        {
            player = (Player) sender;
        }
        if (cmd.getName().equalsIgnoreCase("morehealth"))
        {
            if (args.length > 0)
            {
                if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.user"))
                {
                    player.setMaxHealth(40);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                } else if (args[0].equalsIgnoreCase("disable"))
                {
                    player.setMaxHealth(20);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.RED + "Дополнительные жизни были выключены.");
                    return true;
                }
            }
        }
        return false;
    }
Должен выглядит plugin.yml (часть с commands)?
Уже разобрался с plugin.yml.
Но проблема с двойной командой осталась!!!
Прощу помощи!!! Теперь есть 2 команды:
/morehealth
и
/morehealth:morehealth
UP
/morehealth:morehealth просто так не исправишь. Это Баккита "фича": первое - название плагина, второе - команда.
 
Та ну как так-то... НЕ В ОДНОМ плагине такого не видел...
AuthMe и мой плагин...
f8bc275ebc56.jpg

e280051b0a54.jpg

И я не только про аучме, вооще негде не наблюдал такого..
 
Та ну как так-то... НЕ В ОДНОМ плагине такого не видел...
AuthMe и мой плагин...
f8bc275ebc56.jpg

e280051b0a54.jpg

И я не только про аучме, вооще негде не наблюдал такого..
С plugin.yml нормально все?

PS. Упс, увидел
 
С plugin.yml нормально все?

PS. Упс, увидел
JavaScript:
name: MoreHealth
main: com.roboman.plugins.Solution
version: 0.1
author: Mr_RoboMan
description: Плагин для дополнительных сердец.
commands:
   morehealth:
      description: Основная команда плагина.
      permission: morehealth.user
      usage: /<command> [args]
Да-да, знаю что лучше использовать switch...case, но я в нем не разобрался.
JavaScript:
package com.roboman.plugins;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Solution extends JavaPlugin implements Listener
{
    @Override
    public void onLoad()
    {
        Bukkit.broadcastMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.DARK_AQUA + "Успешно загружен.");
    }

    @Override
    public void onEnable()
    {
        getServer().getPluginManager().registerEvents(this, this);
        Bukkit.broadcastMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.DARK_GREEN + "Успешно включен.");
    }

    @Override
    public void onDisable()
    {
        Player[] players = getServer().getOnlinePlayers();
        for (Player player:players)
        {
            player.setHealth(20);
        }
        Bukkit.broadcastMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.DARK_RED + "Был выключен.");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
        Player player = null;
        if (sender instanceof Player)
        {
            player = (Player) sender;
        }
        if (cmd.getName().equalsIgnoreCase("morehealth"))
        {
            player.sendMessage("[MoreHealth] Плагин успешно работает.");
            if (args.length > 0)
            {
                if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.vip"))
                {
                    player.setMaxHealth(40);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.premium"))
                {
                    player.setMaxHealth(60);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.mega"))
                {
                    player.setMaxHealth(80);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.ultra"))
                {
                    player.setMaxHealth(100);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.admin"))
                {
                    player.setMaxHealth(1000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.owner"))
                {
                    player.setMaxHealth(10000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.laggs"))
                {
                    player.setMaxHealth(100000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены (осторожно, на сервере могут возникнуть лаги).");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.ultralaggs"))
                {
                    player.setMaxHealth(1000000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены (осторожно, на сервере могут возникнуть лаги).");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("disable"))
                {
                    player.setMaxHealth(20);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.RED + "Дополнительные жизни были выключены.");
                    return true;
                }
            }
        }
        return false;
    }

    @EventHandler
    public void onQuit(PlayerQuitEvent pqe)
    {
        Player player = pqe.getPlayer();
        player.setHealth(20);
    }
}
Я в общем спать, если кто что найдет, тому большой спасибон :D
UP.
 
Странно, лично я ошибки не нашел. Да и у меня такой ошибки не наблюдается, на 1.5.2
 

Вложения:

  • screen.png
    screen.png
    Размер файла
    19,9 КБ
    Просмотров
    18
Странно, лично я ошибки не нашел. Да и у меня такой ошибки не наблюдается, на 1.5.2
На 1.5.2 этого вроде и не было .

JavaScript:
name: MoreHealth
main: com.roboman.plugins.Solution
version: 0.1
author: Mr_RoboMan
description: Плагин для дополнительных сердец.
commands:
   morehealth:
      description: Основная команда плагина.
      permission: morehealth.user
      usage: /<command> [args]
Да-да, знаю что лучше использовать switch...case, но я в нем не разобрался.
JavaScript:
package com.roboman.plugins;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Solution extends JavaPlugin implements Listener
{
    @Override
    public void onLoad()
    {
        Bukkit.broadcastMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.DARK_AQUA + "Успешно загружен.");
    }

    @Override
    public void onEnable()
    {
        getServer().getPluginManager().registerEvents(this, this);
        Bukkit.broadcastMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.DARK_GREEN + "Успешно включен.");
    }

    @Override
    public void onDisable()
    {
        Player[] players = getServer().getOnlinePlayers();
        for (Player player:players)
        {
            player.setHealth(20);
        }
        Bukkit.broadcastMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.DARK_RED + "Был выключен.");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
        Player player = null;
        if (sender instanceof Player)
        {
            player = (Player) sender;
        }
        if (cmd.getName().equalsIgnoreCase("morehealth"))
        {
            player.sendMessage("[MoreHealth] Плагин успешно работает.");
            if (args.length > 0)
            {
                if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.vip"))
                {
                    player.setMaxHealth(40);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.premium"))
                {
                    player.setMaxHealth(60);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.mega"))
                {
                    player.setMaxHealth(80);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.ultra"))
                {
                    player.setMaxHealth(100);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.admin"))
                {
                    player.setMaxHealth(1000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.owner"))
                {
                    player.setMaxHealth(10000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены.");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.laggs"))
                {
                    player.setMaxHealth(100000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены (осторожно, на сервере могут возникнуть лаги).");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("enable") && player.hasPermission("morehealth.ultralaggs"))
                {
                    player.setMaxHealth(1000000);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.GREEN + "Дополнительные жизни были включены (осторожно, на сервере могут возникнуть лаги).");
                    return true;
                }
                else if (args[0].equalsIgnoreCase("disable"))
                {
                    player.setMaxHealth(20);
                    player.sendMessage(ChatColor.BLUE + "[MoreHealth] " + ChatColor.RED + "Дополнительные жизни были выключены.");
                    return true;
                }
            }
        }
        return false;
    }

    @EventHandler
    public void onQuit(PlayerQuitEvent pqe)
    {
        Player player = pqe.getPlayer();
        player.setHealth(20);
    }
}
Я в общем спать, если кто что найдет, тому большой спасибон :D
UP.

Можно попробовать убрать это через PlayerChatTabCompleteEvent , но когда я тестировал у меня этот евент вообще не срабатывал , возможно все из-за того что я использовал spigot 1.8 .

P.S. буду рад если кто-то объяснит мне в чем проблема
 
Последнее редактирование:
Странно, лично я ошибки не нашел. Да и у меня такой ошибки не наблюдается, на 1.5.2
Ну вот... Круто конечно...Но у меня 1.7...
На 1.5.2 этого вроде и не было .



Можно попробовать убрать это через PlayerChatTabCompleteEvent , но когда я тестировал у меня этот евент вообще не срабатывал , возможно все из-за того что я использовал spigot 1.8 .

P.S. буду рад если кто-то объяснит мне в чем проблема.
Блин, неужели это надо обязательно какими-то костылями убирать?!! Во всех же плагинах нормально!!!
P.S. Также буду рад если кто-то объяснит мне в чем проблема.
Такое чувство... Что моя КРИВОРУКОСТЬ ЗАШКАЛИВАЕТ!!...
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх