Skip to content

Commit

Permalink
Implement PrefixSuffixFormatter from api
Browse files Browse the repository at this point in the history
  • Loading branch information
GeorgH93 committed Jul 16, 2019
1 parent 6af2cee commit e0b948c
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 36 deletions.
13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Auto detect text files and perform LF normalization
* text=auto

*.java text diff=java encoding=utf-8
*.xml text
*.yml text encoding=utf-8
*.md text

# Ignore for export
.gitattributes export-ignore
.gitignore export-ignore
.travis export-ignore
/.github/ export-ignore
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>at.pcgamingfreaks</groupId>
<artifactId>MarriageMaster</artifactId>
<version>2.0-RC4</version>
<version>2.0-RC5</version>

<scm>
<connection>scm:git:[email protected]:GeorgH93/MarriageMaster.git</connection>
Expand Down Expand Up @@ -77,7 +77,7 @@
<dependency>
<groupId>at.pcgamingfreaks</groupId>
<artifactId>MarriageMaster-API</artifactId>
<version>2.0-RC4</version>
<version>2.0</version>
</dependency>
<!-- For documentation -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import at.pcgamingfreaks.MarriageMaster.Bukkit.API.Marriage;
import at.pcgamingfreaks.MarriageMaster.Bukkit.API.MarriagePlayer;
import at.pcgamingfreaks.MarriageMaster.Bukkit.API.PrefixSuffixFormatter;
import at.pcgamingfreaks.MarriageMaster.Bukkit.MarriageMaster;

import org.bukkit.ChatColor;
Expand All @@ -27,14 +28,14 @@
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;

public class ChatPrefixSuffix implements Listener
public class ChatPrefixSuffix implements Listener, PrefixSuffixFormatter
{
private static final String HEART = "\u2764" + ChatColor.WHITE, HEART_RED = ChatColor.RED + HEART, HEART_GRAY = ChatColor.GRAY + HEART;
private static final char[] CHAT_COLORS = new char[]{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

private MarriageMaster plugin;
private String prefix = null, suffix = null;
private boolean useStatusHeart, useMagicHeart, prefixOnLineBeginning;
private final MarriageMaster plugin;
private final String prefix, suffix;
private final boolean useStatusHeart, useMagicHeart, prefixOnLineBeginning;

public ChatPrefixSuffix(MarriageMaster marriagemaster)
{
Expand All @@ -47,10 +48,39 @@ public ChatPrefixSuffix(MarriageMaster marriagemaster)
useMagicHeart = plugin.getConfiguration().getPrefix().contains("{MagicHeart}");
prefixOnLineBeginning = plugin.getConfiguration().isPrefixOnLineBeginning();
}
else
{
prefix = null;
useStatusHeart = false;
useMagicHeart = false;
prefixOnLineBeginning = false;
}
if(plugin.getConfiguration().isSuffixEnabled() && plugin.getConfiguration().getSuffix() != null)
{
suffix = plugin.getConfiguration().getSuffix().replaceAll("\\{Surname}", "%1\\$s").replaceAll("\\{PartnerName}", "%2\\$s").replaceAll("\\{PartnerDisplayName}", "%3\\$s");
}
else suffix = null;
if(plugin.getConfiguration().isPrefixEnabled() || plugin.getConfiguration().isSuffixEnabled()) plugin.getServer().getPluginManager().registerEvents(this, plugin);
}

@Override
public String formatPrefix(Marriage marriage, MarriagePlayer partner)
{
if(prefix != null)
{
return String.format(prefix, marriage.getSurname(), partner.getName(), partner.getDisplayName(), HEART_RED, ((useMagicHeart) ? (ChatColor.COLOR_CHAR + CHAT_COLORS[marriage.hashCode() & 15] + HEART) : ""));
}
return "";
}

@Override
public String formatSuffix(Marriage marriage, MarriagePlayer partner)
{
if(suffix != null)
{
return String.format(suffix, marriage.getSurname(), partner.getName(), partner.getDisplayName());
}
return "";
}

@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
Expand All @@ -64,43 +94,32 @@ public void onPlayerChat(AsyncPlayerChatEvent event)
Marriage marriage = player.getMarriageData();
//noinspection ConstantConditions
MarriagePlayer partner = marriage.getPartner(player);
String p = "", s = "";
if(prefix != null)
{
//noinspection ConstantConditions
p = String.format(prefix, marriage.getSurname(), partner.getName(), partner.getDisplayName(), HEART_RED, ((useMagicHeart) ? (ChatColor.COLOR_CHAR + CHAT_COLORS[marriage.hashCode() & 15] + HEART) : ""));
changed = true;
}
if(suffix != null)
{
//noinspection ConstantConditions
s = String.format(suffix, marriage.getSurname(), partner.getName(), partner.getDisplayName());
changed = true;
}
if(prefixOnLineBeginning)
{
format = p + ' ' + format.replace("%1$s", "%1$s " + s);
}
else
{
format = format.replace("%1$s", p + " %1$s " + s);
}
}
else
{
if(useStatusHeart)
String p = formatPrefix(marriage, partner), s = formatSuffix(marriage, partner);
changed = !p.equals("") || !s.equals("");
if(changed)
{
if(prefixOnLineBeginning)
{
format = HEART_GRAY + ' ' + format;
format = p + ' ' + format.replace("%1$s", "%1$s " + s);
}
else
{
format = format.replace("%1$s", HEART_GRAY + " %1$s");
format = format.replace("%1$s", p + " %1$s " + s);
}
changed = true;
}
}
else if(useStatusHeart)
{
if(prefixOnLineBeginning)
{
format = HEART_GRAY + ' ' + format;
}
else
{
format = format.replace("%1$s", HEART_GRAY + " %1$s");
}
changed = true;
}
if(changed)
{
event.setFormat(format);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@

public class MarriageMaster extends JavaPlugin implements MarriageMasterPlugin, IUpdater
{
private static final String MIN_PCGF_PLUGIN_LIB_VERSION = "1.0.14-SNAPSHOT";
private static final String MIN_PCGF_PLUGIN_LIB_VERSION = "1.0.15-SNAPSHOT";
private static final String RANGE_LIMIT_PERM = "marry.bypass.rangelimit";
@Setter(AccessLevel.PRIVATE) private static Version version = null;
@Getter @Setter(AccessLevel.PRIVATE) private static MarriageMaster instance;
Expand All @@ -65,6 +65,7 @@ public class MarriageMaster extends JavaPlugin implements MarriageMasterPlugin,
@Getter private Database database = null;
@Getter private IBackpackIntegration backpacksIntegration = null;
@Getter private PluginChannelCommunicator pluginChannelCommunicator = null;
@Getter private PrefixSuffixFormatter prefixSuffixFormatter = null;
private CommandManagerImplementation commandManager = null;
private MarriageManager marriageManager = null;
private PlaceholderManager placeholderManager = null;
Expand Down Expand Up @@ -209,6 +210,7 @@ private boolean load()
commandManager = new CommandManagerImplementation(this);
commandManager.init();
marriageManager = new MarriageManager(this);
prefixSuffixFormatter = new ChatPrefixSuffix(this);

// Register Events
getServer().getPluginManager().registerEvents(new JoinLeaveWorker(this), this);
Expand All @@ -220,7 +222,6 @@ private boolean load()
}
if(config.isHPRegainEnabled()) getServer().getPluginManager().registerEvents(new RegainHealth(this), this);
if(config.isJoinLeaveInfoEnabled()) getServer().getPluginManager().registerEvents(new JoinLeaveInfo(this), this);
if(config.isPrefixEnabled() || config.isSuffixEnabled()) getServer().getPluginManager().registerEvents(new ChatPrefixSuffix(this), this);
if(config.isEconomyEnabled()) new EconomyHandler(this);
if(config.isCommandExecutorEnabled()) getServer().getPluginManager().registerEvents(new CommandExecutor(this), this);

Expand Down

0 comments on commit e0b948c

Please sign in to comment.