Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minemora.LobbyAFK;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.AsyncPlayerChatEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitRunnable;
- import com.google.common.io.ByteArrayDataOutput;
- import com.google.common.io.ByteStreams;
- public class LobbyAFK extends JavaPlugin implements Listener {
- FileConfiguration config = getConfig();
- String pluginMode;
- int timetosend;
- List<String> lobbies;
- List<String> afklobbies;
- Map<String,Long> lastactiontime = new HashMap<>();
- @Override
- public void onEnable() {
- this.saveDefaultConfig();
- pluginMode = config.getString("plugin_mode").toLowerCase();
- timetosend = config.getInt("time_to_send");
- lobbies = config.getStringList("lobbies");
- afklobbies = config.getStringList("afk_lobbies");
- getServer().getPluginManager().registerEvents(this, this);
- this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
- if(pluginMode.equals("lobby")) {
- new BukkitRunnable() {
- @Override
- public void run() {
- long currenttime = System.currentTimeMillis();
- for(Player p : Bukkit.getOnlinePlayers()) {
- if(currenttime - lastactiontime.get(p.getName()) >= timetosend*1000) {
- sendPlayer(p);
- }
- }
- }
- }.runTaskTimerAsynchronously(this, 0L, 100L);
- }
- getLogger().info("Loaded fine! with plugin mode: " + pluginMode);
- }
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent e) {
- updateCounter(e.getPlayer());
- }
- @EventHandler
- public void onPlayerMove(PlayerMoveEvent e) {
- updateCounter(e.getPlayer());
- }
- @EventHandler
- public void onAsyncPlayerChat(AsyncPlayerChatEvent e) {
- updateCounter(e.getPlayer());
- }
- @EventHandler
- public void onPlayerQuit(PlayerQuitEvent e) {
- lastactiontime.remove(e.getPlayer().getName());
- }
- public void updateCounter(Player p) {
- if(pluginMode.equals("afk")) {
- sendPlayer(p);
- return;
- }
- else if (pluginMode.equals("lobby")){
- lastactiontime.put(p.getName(), System.currentTimeMillis());
- }
- }
- public void sendPlayer(Player p) {
- String server = null;
- if(pluginMode.equals("afk")) {
- Random rand = new Random();
- server = lobbies.get(rand.nextInt(lobbies.size()));
- }
- else if(pluginMode.equals("lobby")) {
- Random rand = new Random();
- server = afklobbies.get(rand.nextInt(afklobbies.size()));
- }
- ByteArrayDataOutput out = ByteStreams.newDataOutput();
- out.writeUTF("Connect");
- out.writeUTF(server);
- p.sendPluginMessage(this, "BungeeCord", out.toByteArray());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement