Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Забей в гугле "как сгенерировать рандомное число в java в определенном диапазоне"Как можно зарандомить числа от 1 до 3 и при выпадении каждого из трех чисел отправлять игроку сообщение?
P.S я уже наговнокодил это фуфло, но оно криво работало, полазил немного в гугле - не дало ожидаемых результатов. Помогите плез
Player player = **получаем игрока**;
Integer random = (Integer) (Math.random() * 3) + 1;
switch random {
case 1: {
player.sendMessage("Выпало 1");
break;
}
case 2: {
player.sendMessage("Выпало 2");
break;
}
case 3: {
player.sendMessage("Выпало 3");
break;
}
default: {
player.sendMessage("Что-то пошло не так и рандомное число не 1, не 2 и не 3. Рандомное число: " + random.toString());
break;
}
}
if(clicked.getType().equals(Material.WOODEN_DOOR) || clicked.getType().equals(Material.IRON_DOOR_BLOCK))
{
e.setCancelled(true);
int max = 3;
int rnd = rnd(max);
if(rnd == 1)
{
p.sendMessage(1+"");
}
else if(rnd == 2)
{
p.sendMessage(2+"");
}
else if(rnd == 3)
{
p.sendMessage(3+"");
}
}
public static int rnd(double max)
{
return (int) (Math.random() * ++max);
}
Смотри вышеСделал плагин - если игрок тыкает на дверь, генерится рандомное число от 1 до 3 и ему отсылается сообщение.
Я нагуглил и сделал рандом, но почему-то, при клике игроку отсылается 2 сообщения. В чем ошибка?
PHP:if(clicked.getType().equals(Material.WOODEN_DOOR) || clicked.getType().equals(Material.IRON_DOOR_BLOCK)) { e.setCancelled(true); int max = 3; int rnd = rnd(max); if(rnd == 1) { p.sendMessage(1+""); } else if(rnd == 2) { p.sendMessage(2+""); } else if(rnd == 3) { p.sendMessage(3+""); } } public static int rnd(double max) { return (int) (Math.random() * ++max); }
Вижу, уже попробовал - всё равно пишет 2 числа за 1 кликСмотри выше
Кинь весь кодВижу, уже попробовал - всё равно пишет 2 числа за 1 клик
Кинь весь код
@EventHandler
public void onClick(PlayerInteractEvent e)
{
Player p = e.getPlayer();
Block clicked = e.getClickedBlock();
if(!e.getAction().equals(Action.RIGHT_CLICK_AIR) && !e.getAction().equals(Action.LEFT_CLICK_BLOCK) && !e.getAction().equals(Action.LEFT_CLICK_AIR) && e.getAction().equals(Action.RIGHT_CLICK_BLOCK))
{
if(p.getInventory().getItemInMainHand().hasItemMeta() && p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equalsIgnoreCase(Utils.getColor(main.getConfig().getString("settings.hackName"))))
{
if(clicked.getType().equals(Material.WOODEN_DOOR) || clicked.getType().equals(Material.IRON_DOOR_BLOCK))
{
e.setCancelled(true);
int random = (int) (Math.random() * 3) + 1;
switch(random)
{
case 1:
{
p.sendMessage("Выпало 1");
break;
}
case 2:
{
p.sendMessage("Выпало 2");
break;
}
case 3:
{
p.sendMessage("Выпало 3");
break;
}
default:
{
p.sendMessage("Что-то пошло не так и рандомное число не 1, не 2 и не 3. Рандомное число: " + random);
break;
}
}
}
}
}
}
Проверяй руку. Там эвент срабатывает для каждой руки.Все еще надеюсь на помощь
Лучше так:int random = (int) (Math.random() * 3) + 1;
int random = ThreadLocalRandom.current().nextInt(3) + 1;
А разве эта часть не является проверкой руки и проверкой айтема в ней одновременно??Проверяй руку. Там эвент срабатывает для каждой руки.
if(p.getInventory().getItemInMainHand().hasItemMeta() && p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equalsIgnoreCase(Utils.getColor(main.getConfig().getString("settings.hackName"))))
if(event.getHand().equals(EquipmentSlot.HAND)) {...А разве эта часть не является проверкой руки и проверкой айтема в ней одновременно??
PHP:if(p.getInventory().getItemInMainHand().hasItemMeta() && p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equalsIgnoreCase(Utils.getColor(main.getConfig().getString("settings.hackName"))))
Спасибо!if(event.getHand().equals(EquipmentSlot.HAND)) {...
На форуме уже поднимали эту тему много раз.
http://rubukkit.org/threads/proverka-ruki.157507/