summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/modules/ModuleLogger.java
blob: b68343b47c9629b2824ab409d4aa93dff915ff9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.redstoner.modules;

import com.redstoner.annotations.Version;
import net.nemez.chatapi.ChatAPI;
import net.nemez.chatapi.click.Message;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;

@Version (major = 4, minor = 0, revision = 0, compatible = -1)
public class ModuleLogger {
	public static final String PREFIX_WARN  = "§8[§eWARN§8]:§7 ";
	public static final String PREFIX_ERROR = "§8[§cERROR§8]:§7 ";
	public static final String PREFIX_INFO  = "§8[§fINFO§8]:§7 ";

	private String name;

	public ModuleLogger(final String name) {
		this.name = name;
	}

	public void info(final String message) {
		Bukkit.getConsoleSender().sendMessage(PREFIX_INFO + getPrefix() + ChatAPI.colorify(null, message));
	}

	public String getPrefix() {
		return getPrefix(false);
	}

	public String getPrefix(final boolean error) {
		return "§8[§" + (error ? 'c' : '2') + name + "§8]§7 ";
	}

	public void warn(final String message) {
		Bukkit.getConsoleSender().sendMessage(PREFIX_WARN + getPrefix() + ChatAPI.colorify(null, message));
	}

	public void error(final String message) {
		Bukkit.getConsoleSender().sendMessage(PREFIX_ERROR + getPrefix() + ChatAPI.colorify(null, message));
	}

	public void message(final CommandSender recipient, final String... message) {
		message(recipient, false, message);
	}

	public void message(final CommandSender recipient, final boolean error, final String... message) {
		Message m = new Message(recipient, null);
		if (message.length == 1)
			m.appendText(getPrefix(error) + message[0]);
		else {
			m.appendText(getHeader());
			m.appendText("&7" + String.join("\n&7", message));
		}
		m.send();
	}

	public String getHeader() {
		return "§2--=[ " + name + " ]=--\n";
	}

	protected final void setName(final String name) {
		this.name = name;
	}
}