summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/modules/logs/LogEntry.java
blob: 3ccc8448bab99f78d91e002cba7cf483feb29ccf (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
64
65
66
67
68
69
70
71
package com.redstoner.modules.logs;

public class LogEntry
{
	public final int line;
	public final int global_line;
	public final String filename;
	public final String raw;
	
	public LogEntry(String raw, int line, int global_line)
	{
		this("Unkown", raw, line, global_line);
	}
	
	public LogEntry(String filename, String raw, int line, int global_line)
	{
		this.raw = resolveColors(raw);
		this.line = line;
		this.global_line = global_line;
		this.filename = filename;
	}
	
	public String applyFormat(String format, boolean colors)
	{
		// Replace escaped % with placeholder
		format = format.replace("%%", "§§");
		// Line numbers
		format = format.replace("%l", "" + line);
		format = format.replace("%L", "" + global_line);
		// Filename
		format = format.replace("%f", filename);
		// Strip colors
		if (!colors)
			format = format.replace("%r", raw.replaceAll("$.", ""));
		else
			format = format.replace("%r", raw);
		// Convert placeholder back
		format = format.replace("§§", "%");
		return format;
	}
	
	private String resolveColors(String message)
	{
		message = message.replace("", "§0");
		message = message.replace("", "§1");
		message = message.replace("", "§2");
		message = message.replace("", "§3");
		message = message.replace("", "§4");
		message = message.replace("", "§5");
		message = message.replace("", "§6");
		message = message.replace("", "§7");
		message = message.replace("", "§8");
		message = message.replace("", "§9");
		message = message.replace("", "§a");
		message = message.replace("", "§b");
		message = message.replace("", "§c");
		message = message.replace("", "§d");
		message = message.replace("", "§e");
		message = message.replace("", "§f");
		
		message = message.replace("", "§k");
		message = message.replace("", "§l");
		message = message.replace("", "§m");
		message = message.replace("", "§n");
		message = message.replace("", "§o");
		
		message = message.replace("", "§r");
		
		return message;
	}
}