This repository has been archived on 2023-02-05. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
DeathCoordinates/src/com/elnu/DeathCoordinates.java
2021-11-27 16:23:50 -08:00

51 lines
2 KiB
Java

package com.elnu;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class DeathCoordinates extends JavaPlugin {
DeathListener deathListener;
@Override
public void onEnable() {
deathListener = new DeathListener();
Bukkit.getPluginManager().registerEvents(deathListener, this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("announcedeath")) {
var senderName = sender.getName();
try {
var playerDeathInfoMap = deathListener.getPlayerDeathInfoMap();
var deathInfo = playerDeathInfoMap.get(senderName);
var location = deathInfo.getLocation();
var time = deathInfo.getTime();
var now = LocalDateTime.now();
var minutesSinceDeath = time.until(now, ChronoUnit.MINUTES);
var secondsSinceDeath = time.until(now, ChronoUnit.SECONDS);
playerDeathInfoMap.remove(senderName);
Bukkit.getServer().broadcastMessage(ChatColor.RED + String.format(
"%s is announcing that they died at (%d, %d, %d) in %s, %d minutes and %d seconds ago.",
senderName,
location.getBlockX(),
location.getBlockY(),
location.getBlockZ(),
location.getWorld().getEnvironment(),
minutesSinceDeath,
secondsSinceDeath
));
} catch(NullPointerException e) {
sender.sendMessage(ChatColor.YELLOW + "No death coordinates to announce.");
}
return true;
}
return false;
}
}