Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написание плагина майнкрафт

ещкере абаба Ученик (97), на голосовании 3 месяца назад
Пишу плагин для майнкрафта на джаве 1.8,, плагин выводит 2 рандомных ника в чат с кулдауном 30 секунд как это сделать
Голосование за лучший ответ
jdjd akkaks Ученик (195) 4 месяца назад
используй плагин для чата какой нибудь, и плагин чтобы поменять сообщение которое будет выводиться в чат по кд, на рандом ник, я не помню уже ничего т.к. не играю в майн давно
jdjd akkaksУченик (195) 4 месяца назад
и плейсхолдер плагин ещё, нужно вроде чтобы плагин для чата поддерживал плейсхолдер апи или чето такое
ǫᴜᴢᴢ Мастер (1637) 4 месяца назад
Это задание по какому-то курсу типо?

 package com.example.randomnicksplugin; 

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;

public class RandomNicksPlugin extends JavaPlugin implements Listener {

private final Set players = Collections.newSetFromMap(new ConcurrentHashMap<>());
private final AtomicBoolean cooldownActive = new AtomicBoolean(false);

@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
scheduleRandomNickDisplayTask();
}

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
players.add(event.getPlayer());
}

private void scheduleRandomNickDisplayTask() {
new BukkitRunnable() {
@Override
public void run() {
if (!cooldownActive.get()) {
displayRandomNicks();
cooldownActive.set(true);
new BukkitRunnable() {
@Override
public void run() {
cooldownActive.set(false);
}
}.runTaskLater(RandomNicksPlugin.this, 20 * 30); // 30 seconds
}
}
}.runTaskTimer(this, 20, 20); // Runs every second
}

private void displayRandomNicks() {
if (players.size() < 2) {
return;
}

List shuffledPlayers = new ArrayList<>(players);
Collections.shuffle(shuffledPlayers);

Player player1 = shuffledPlayers.get(0);
Player player2 = shuffledPlayers.get(1);

broadcastRandomNickMessage(player1.getName(), player2.getName());
}

private void broadcastRandomNickMessage(String nick1, String nick2) {
Bukkit.broadcastMessage("Случайные ники: " + nick1 + " и " + nick2);
}
}
ещкере абабаУченик (97) 4 месяца назад
немного не правильно задал вопрос, все это по комманде
ǫᴜᴢᴢ Мастер (1637) ещкере абаба, Вот тут смотри -> https://otvet.mail.ru/question/238991052 отвечал на точно такой же вопрос.
Похожие вопросы