Fixed message formatting
This commit is contained in:
parent
f6bf85c654
commit
f5f8ba67e9
4 changed files with 178 additions and 161 deletions
|
@ -3,13 +3,14 @@ package nl.SBDeveloper.V10Lift.Managers;
|
|||
import nl.SBDeveloper.V10Lift.Utils.XMaterial;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class AntiCopyBlockManager {
|
||||
private ArrayList<XMaterial> antiCopy = new ArrayList<>();
|
||||
private HashSet<XMaterial> antiCopy = new HashSet<>();
|
||||
|
||||
public AntiCopyBlockManager() {
|
||||
//TODO Add more anti copy materials
|
||||
//TODO Add to config
|
||||
antiCopy.add(XMaterial.REDSTONE_TORCH);
|
||||
antiCopy.add(XMaterial.REDSTONE_WALL_TORCH);
|
||||
antiCopy.add(XMaterial.REPEATER);
|
||||
|
@ -56,6 +57,26 @@ public class AntiCopyBlockManager {
|
|||
antiCopy.add(XMaterial.DETECTOR_RAIL);
|
||||
antiCopy.add(XMaterial.ACTIVATOR_RAIL);
|
||||
antiCopy.add(XMaterial.LADDER);
|
||||
|
||||
/* Because of datatypes */
|
||||
antiCopy.add(XMaterial.BEEHIVE);
|
||||
antiCopy.add(XMaterial.BELL);
|
||||
antiCopy.add(XMaterial.BREWING_STAND);
|
||||
antiCopy.add(XMaterial.BUBBLE_COLUMN);
|
||||
antiCopy.add(XMaterial.CAKE);
|
||||
antiCopy.add(XMaterial.CAMPFIRE);
|
||||
antiCopy.add(XMaterial.COCOA);
|
||||
antiCopy.add(XMaterial.COMMAND_BLOCK);
|
||||
antiCopy.add(XMaterial.CHAIN_COMMAND_BLOCK);
|
||||
antiCopy.add(XMaterial.REPEATING_COMMAND_BLOCK);
|
||||
antiCopy.add(XMaterial.DAYLIGHT_DETECTOR);
|
||||
antiCopy.add(XMaterial.DISPENSER);
|
||||
antiCopy.add(XMaterial.END_PORTAL_FRAME);
|
||||
antiCopy.add(XMaterial.FARMLAND);
|
||||
antiCopy.add(XMaterial.FIRE);
|
||||
antiCopy.add(XMaterial.FURNACE);
|
||||
antiCopy.add(XMaterial.HOPPER);
|
||||
antiCopy.add(XMaterial.JUKEBOX);
|
||||
}
|
||||
|
||||
public boolean isAntiCopy(Material mat) {
|
||||
|
|
|
@ -3,20 +3,14 @@ package nl.SBDeveloper.V10Lift.Managers;
|
|||
import nl.SBDeveloper.V10Lift.Utils.XMaterial;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class ForbiddenBlockManager {
|
||||
private ArrayList<XMaterial> forbidden = new ArrayList<>();
|
||||
private HashSet<XMaterial> forbidden = new HashSet<>();
|
||||
|
||||
public ForbiddenBlockManager() {
|
||||
//TODO Add more forbidden materials
|
||||
/*forbidden.add(XMaterial.ACACIA_DOOR);
|
||||
forbidden.add(XMaterial.BIRCH_DOOR);
|
||||
forbidden.add(XMaterial.DARK_OAK_DOOR);
|
||||
forbidden.add(XMaterial.IRON_DOOR);
|
||||
forbidden.add(XMaterial.JUNGLE_DOOR);
|
||||
forbidden.add(XMaterial.OAK_DOOR);
|
||||
forbidden.add(XMaterial.SPRUCE_DOOR);*/
|
||||
//TODO Add to config
|
||||
forbidden.add(XMaterial.BLACK_BED);
|
||||
forbidden.add(XMaterial.BLUE_BED);
|
||||
forbidden.add(XMaterial.BROWN_BED);
|
||||
|
|
|
@ -32,14 +32,18 @@ public class ConfigUtil {
|
|||
* @param path The path to look for
|
||||
*/
|
||||
public static void sendMessage(CommandSender p, @Nonnull String path) {
|
||||
String fileMessage = V10LiftPlugin.getMessages().getFile().getString(path);
|
||||
if (fileMessage == null) {
|
||||
if (V10LiftPlugin.getMessages().getFile().get(path) == null) {
|
||||
throw new NullPointerException("Message " + path + " not found in messages.yml!");
|
||||
}
|
||||
|
||||
String[] messages = fileMessage.split("\n");
|
||||
for (String message : messages) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', message));
|
||||
if (V10LiftPlugin.getMessages().getFile().isList(path)) {
|
||||
//Multi line message
|
||||
for (String message : V10LiftPlugin.getMessages().getFile().getStringList(path)) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', message));
|
||||
}
|
||||
} else {
|
||||
//Single line message
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(V10LiftPlugin.getMessages().getFile().getString(path))));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,33 +55,43 @@ public class ConfigUtil {
|
|||
* @param replacement The replacements -> key: %Name% = value: TheName
|
||||
*/
|
||||
public static void sendMessage(CommandSender p, @Nonnull String path, Map<String, String> replacement) {
|
||||
String fileMessage = V10LiftPlugin.getMessages().getFile().getString(path);
|
||||
if (fileMessage == null) {
|
||||
if (V10LiftPlugin.getMessages().getFile().get(path) == null) {
|
||||
throw new NullPointerException("Message " + path + " not found in messages.yml!");
|
||||
}
|
||||
|
||||
if (V10LiftPlugin.getMessages().getFile().isList(path)) {
|
||||
//Multi line message
|
||||
for (String message : V10LiftPlugin.getMessages().getFile().getStringList(path)) {
|
||||
p.sendMessage(formatMessage(message, replacement));
|
||||
}
|
||||
} else {
|
||||
//Single line message
|
||||
String message = V10LiftPlugin.getMessages().getFile().getString(path);
|
||||
p.sendMessage(formatMessage(message, replacement));
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private static String formatMessage(String message, @Nonnull Map<String, String> replacement) {
|
||||
Map<String, String> fixedMap = new HashMap<>();
|
||||
for (Map.Entry<String, String> ent : replacement.entrySet()) {
|
||||
fixedMap.put(ent.getKey().replaceAll("%", ""), ent.getValue());
|
||||
}
|
||||
|
||||
String[] messages = fileMessage.split("\n");
|
||||
for (String message : messages) {
|
||||
Pattern pattern = Pattern.compile("%(.*?)%");
|
||||
Matcher matcher = pattern.matcher(message);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int i = 0;
|
||||
while (matcher.find()) {
|
||||
String repl = fixedMap.get(matcher.group(1));
|
||||
builder.append(message, i, matcher.start());
|
||||
if (repl == null)
|
||||
builder.append(matcher.group(0));
|
||||
else
|
||||
builder.append(repl);
|
||||
i = matcher.end();
|
||||
}
|
||||
builder.append(message.substring(i));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', builder.toString()));
|
||||
Pattern pattern = Pattern.compile("%(.*?)%");
|
||||
Matcher matcher = pattern.matcher(Objects.requireNonNull(message));
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int i = 0;
|
||||
while (matcher.find()) {
|
||||
String repl = fixedMap.get(matcher.group(1));
|
||||
builder.append(message, i, matcher.start());
|
||||
if (repl == null)
|
||||
builder.append(matcher.group(0));
|
||||
else
|
||||
builder.append(repl);
|
||||
i = matcher.end();
|
||||
}
|
||||
builder.append(message.substring(i));
|
||||
return ChatColor.translateAlternateColorCodes('&', builder.toString());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue