51 lines
2.0 KiB
Java
51 lines
2.0 KiB
Java
package net.t2code.automatedMessages.messages;
|
|
|
|
import net.t2code.automatedMessages.config.Config;
|
|
import net.t2code.automatedMessages.objects.Message;
|
|
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
|
|
public class SendMessage {
|
|
public static void send(Message message) {
|
|
String timeStamp = new SimpleDateFormat(Config.timeFormat.valueString).format(Calendar.getInstance().getTime());
|
|
if (Config.sendConsole.valueBoolean) {
|
|
T2Csend.console(replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.prefix.valueString)));
|
|
}
|
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
|
if (player.hasPermission(message.permission) || !message.permissionNeededToSeeMessage) {
|
|
T2Csend.player(player, replace(message.message, Map.entry("[time]", timeStamp), Map.entry("[prefix]", Config.prefix.valueString), Map.entry("[player]", player.getName())));
|
|
player.playSound(player.getLocation(), message.sound, 3, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
@SafeVarargs
|
|
private static Object replace(Object object, Map.Entry<String, String>... map) {
|
|
Object o = null;
|
|
if (object instanceof List) {
|
|
ArrayList<String> res = (ArrayList<String>) object;
|
|
ArrayList<String> out = new ArrayList<>();
|
|
for (String s : res) {
|
|
String re = s;
|
|
for (Map.Entry<String, String> placeholder : map) {
|
|
re = re.replace(placeholder.getKey(), placeholder.getValue());
|
|
}
|
|
out.add(re);
|
|
}
|
|
o = out;
|
|
}
|
|
if (object instanceof String) {
|
|
String res = (String) object;
|
|
for (Map.Entry<String, String> placeholder : map) {
|
|
res = res.replace(placeholder.getKey(), placeholder.getValue());
|
|
}
|
|
o = res;
|
|
}
|
|
return o;
|
|
}
|
|
}
|