Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как получить дату и время входа игрока на сервер, для записи в файл.

Zlodey_duo

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
_X_ZLODEY_X_
Всем привет, интересует такой вопрос, особо не искал подобного в интернете так что заранее всем тем кто будет писать "Загугли, гуглить не умеешь" и т.п. Спасибо <3
Зачем гуглить и тупо копировать код, когда можно написать на этот форум и тебе здесь всё подробно объяснят)

Как получить дату и время игрока, который вошел на сервер.
Понятно что плюсом нужно использовать Event-ы
Нужен именно кусочек кода который возвращает дату/время входа игрока на сервер.

Просто хочу сделать плагин который записывает инфу о игроке, не спрашивайте зачем почему и не говорите что такой уже имеется, зачем писать то что уже есть. Пишу для себя, так скажем для ознакомления, чтобы уметь)

Хочется что-бы после получения данных и записи в файл это выглядело примерно так:

PlayerName:
DataReg: 10/01/2023 - 11:00

Или:

PlayerName:
Data: 10/01/2023
Time: 11:00

Без разницы какая запись будет в файле, поделился для понятия.
Заранее всем спасибо кто пытается/пытался помочь <3
 
У вас есть доступ к ChatGPT? По всей видимости эта популярная сегодня нейронка пишет такие хеллоуворлды на ура.
Залил вывод на Hastebin: https://hastebin.com/share/owucenodax.java
Я давно не писал под Bukkit, но код выглядит валидным, можете проверить, да и посмотреть как это примерно делается :cool:
 
PHP:
 public void onPlayerJoin(PlayerJoinEvent event) {
        String playerName = event.getPlayer().getName();
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
        String formattedDate = dateFormat.format(date);
        String formattedTime = timeFormat.format(date);
        String joinMessage = String.format("%s: Data: %s, Time: %s", playerName, formattedDate, formattedTime);
 
PHP:
 public void onPlayerJoin(PlayerJoinEvent event) {
        String playerName = event.getPlayer().getName();
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
        String formattedDate = dateFormat.format(date);
        String formattedTime = timeFormat.format(date);
        String joinMessage = String.format("%s: Data: %s, Time: %s", playerName, formattedDate, formattedTime);
}

Зачем два раза создавать формат?
PHP:
SimpleDateFormat timeanddate = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); // Wed, 4 Jul 2001 12:08:56 -0700
 
Зачем два раза создавать формат?
PHP:
SimpleDateFormat timeanddate = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); // Wed, 4 Jul 2001 12:08:56 -0700
Зависит от желаемого формата, просто человек показал, как можно разделить вывод на дату и время
 
Я правильно понял, что тебе нужен плагин, который будет записывать в конфиг дату регистрации игрока?
 
PHP:
import java.text.SimpleDateFormat;
import java.util.Date;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class PlayerJoinLogger extends JavaPlugin implements Listener {

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

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        String playerName = event.getPlayer().getName();
        Date date = new Date();
        SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss");

        String formattedDate = dateFormatter.format(date);
        String formattedTime = timeFormatter.format(date);

        FileConfiguration config = getConfig();
        config.set("player-join-log." + playerName + ".date", formattedDate);
        config.set("player-join-log." + playerName + ".time", formattedTime);

        saveConfig();
    }
}
 

Поделиться этой страницей

Назад
Верх