Помогите Рандомные команды

EugeneRu

Новичок
Пользователь
Баллы
11
Мне нужно сделать так, чтобы при написание команды /test выполнялись рандомные команды которые будут указаны в конфиге. Как это сделать ?
 
PHP:
String command = "help" ;// TODO: получить команду

// Исполнить команду от имени игрока
player.performCommand(command); // Возможно, нужен слэш :D

// Исполнить команду от имени консоли
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
 
В каком формате указаны команды в конфиге?
 
PHP:
String command = "help" ;// TODO: получить команду

// Исполнить команду от имени игрока
player.performCommand(command); // Возможно, нужен слэш :D

// Исполнить команду от имени консоли
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
Это я знаю, мне нужно из конфига брать рандомную команду и выполнять её.
 
Этот код возьмет случайную команду:
PHP:
List<String> commands = getConfig().getStringList("commands");
Random       r        = new Random();

int low         = 0,
    high        = commands.size(),
    randNumber  = r.nextInt(high-low) + low;

String command = commands.get(randNumber);
 
Этот код возьмет случайную команду:
PHP:
List<String> commands = getConfig().getStringList("commands");
Random       r        = new Random();

int low         = 0,
    high        = commands.size(),
    randNumber  = r.nextInt(high-low) + low;

String command = commands.get(randNumber);

Не вижу смысла в строчках int low... и r.nextInt(high - low) + low, если можно сделать проще r.nextInt(high)
 
А как теперь выполнить командой /test , рандомную команду из конфига.
Зарегистрируй команду в plugin.yml:
PHP:
commands:
  test:
    description: 'test command'
Зарегистрируй исполнитель команды в главном классе плагина в методе onEnable():
PHP:
getServer().getPluginCommand("test").setExecutor(new TestCommand());

PHP:
/**
 * TestCommand.java 2018-12-15

 * @author nyanguymf

 * @version 1.0
 */
package me.nyanguymf.commands;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

/**
 * @author nyanguymf
 */
public class TestCommand implements CommandExecutor {

    /**
     *
     */
    public TestCommand() {
        // TODO Auto-generated constructor stub
    }

    /* (non-Javadoc)
     * @see org.bukkit.command.CommandExecutor#onCommand(org.bukkit.command.CommandSender, org.bukkit.command.Command, java.lang.String, java.lang.String[])
     */
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        // TODO: необходимые проверки
        Player player = (Player) sender;
     
        String toExecute = ""; // TODO: получить рандомную команду

        // Исполнить команду от имени игрока
        player.performCommand(toExecute); // Возможно, нужен слэш :D

        // Исполнить команду от имени консоли
        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), toExecute);
        return true;
    }
}
UPD: не копируй весь код - он с символами табуляций 😁 (ну или замени)
UPD2: теперь пробелы 😁
 
Последнее редактирование:
Код:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player) sender;
Random r = new Random() {
          if(label.equalsIgnoreCase("test") {
             if(r.nextFloat() > 0.5) {
                 p.teleport(loc);
             }else if(r.nextfloat() > 0.5) {
                  p.sendmessage("lol");
             }else {
                   p.sendmessage("Если все выше не выдало");
             }
         }
    }
    return false;
 }
}
 
Последнее редактирование:
PHP:
Random random = new Random();
List<String> commands = config.getStringList("commands");
player.performCommand(commands.get(random.nextInt(commands.size())));
 
Назад
Верх