Идея Плагин для счета игроков и выдачи привилегий

  • Автор темы Автор темы elnat08
  • Дата начала Дата начала

elnat08

Активный участник
Пользователь
Баллы
78
Категория плагина: Admin|Fun

Предлагаемое название: Любое

Версия сервера: 1.8+

Что я хочу: Плагин должен выполнять несколько следующее:
  1. Счет игроков,т.е. зашел на сервер игрок и будет написано: "На сервер зашел игрок,его номер ***".Номер игрока и его ник/UUID хотелось бы хранить в файле,либо же MySQL
  2. Игрок заходит и,если он будет,допустим, 50 по счету(Указывается в конфиге),то выполняется команда,например, "/pex user %player% group add VIP"(Указывается в конфиге)


Идеи для команд: /checkplayers - посмотреть кол-во игроков


Идеи пермишенов: - checkplayers - право на команду

Когда мне это нужно? Не принципиально,но хотелось бы по быстрее.

P.s. @fromgate @Dereku @Shevchik @alexandrage кого вспомнил
 
fromgate? Shvchik? Едрить ты губу раскатил!
😬😬😬😬😬
 
Понаделают твинков и будет тебе счастье. Не перспективно.
 
https://www.dropbox.com/s/5b3x1a8886pqx8z/JoinCmd.jar?dl=0
Не тестировал. Команд нет.
Исходник:
Java:
package ru.leymooo.join;

import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
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;

public class Main extends JavaPlugin implements Listener {
    HashMap<Integer, String> cmd = new HashMap<Integer, String>();
    int c;
    String joinmsg;
    public void onEnable() {
        this.saveDefaultConfig();
        for (String a : getConfig().getConfigurationSection("number").getKeys(false)) {
            cmd.put(Integer.valueOf(a), getConfig().getString("number."+a));
        }
        c = getConfig().getInt("last");
        joinmsg = ChatColor.translateAlternateColorCodes('&', getConfig().getString("joinmsg"));
        getServer().getPluginManager().registerEvents(this, this);
    }
    public void onDisable() {
        this.saveConfig();
    }
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        if (!e.getPlayer().hasPlayedBefore()) {
            c = c+1;
            this.getConfig().set("last", c);
            for (Player p : Bukkit.getOnlinePlayers()) {
                p.sendMessage(joinmsg.replace("%player%", e.getPlayer().getName()).replace("%number%", String.valueOf(c)));
            }
            if (cmd.containsKey(c)) {
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.get(c));
            }
        }
    }
}
 
Последнее редактирование:
https://www.dropbox.com/s/5b3x1a8886pqx8z/JoinCmd.jar?dl=0
Не тестировал. Команд нет.
Исходник:
Java:
package ru.leymooo.join;

import java.util.HashMap;

import net.md_5.bungee.api.ChatColor;

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;

public class Main extends JavaPlugin implements Listener {
    HashMap<Integer, String> cmd = new HashMap<Integer, String>();
    Integer c;
    String joinmsg;
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        this.saveDefaultConfig();
        for (String a : getConfig().getConfigurationSection("number").getKeys(false)) {
            cmd.put(Integer.valueOf(a), getConfig().getString("number."+a));
        }
        c = getConfig().getInt("last");
        joinmsg = ChatColor.translateAlternateColorCodes('&', getConfig().getString("joinmsg"));
    }
    public void onDisable() {
        this.saveConfig();
    }
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        if (!e.getPlayer().hasPlayedBefore()) {
            c = Integer.valueOf(c+1);
            this.getConfig().set("last", c);
            for (Player p : Bukkit.getOnlinePlayers()) {
                p.sendMessage(joinmsg.replace("%player%", e.getPlayer().getName()).replace("%number%", String.valueOf(c)));
            }
            if (cmd.containsKey(c)) {
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.get(c));
            }
        }
    }
}
Регистрировать слушатели надо в конце, чтобы не вылетел NPE.
И за "net.md_5.bungee.api.ChatColor" пора сажать. Прекращайте использовать spigot как библиотеку, если не следите за своими импортами.
 
Регистрировать слушатели надо в конце, чтобы не вылетел NPE.
И за "net.md_5.bungee.api.ChatColor" пора сажать. Прекращайте использовать spigot как библиотеку, если не следите за своими импортами.
Я даже хз откуда он там. Скорее всего из старого проекта этот импорт остался.
 
  • public void onDisable() {
  • this.saveConfig();
  • }
А так же лучше сохранять конфиг после каждого изменения, а то кривые ручки администраторов крашнут сервер, и все сохранения за всю работу сервера от включения уйдут в никуда.
Раскритиковали как могли xD
 
А так же лучше сохранять конфиг после каждого изменения, а то кривые ручки администраторов крашнут сервер, и все сохранения за всю работу сервера от включения уйдут в никуда.
Раскритиковали как могли xD
Ну подумаешь 20 игроков откатиться.
 
Назад
Верх