Skip to content

Commit e6f098a

Browse files
committed
Allow specific messages to display on action bar (Closes #648)
1 parent 148c651 commit e6f098a

17 files changed

Lines changed: 250 additions & 85 deletions

File tree

pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Newbie.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void execute(final CommandSender sender, final String label, final List<C
5858
final CombatPlayer combatPlayer = ph.get(player);
5959

6060
if (!combatPlayer.isNewbie()) {
61-
combatPlayer.message(Lang.ERROR_NOT_NEWBIE.msg());
61+
combatPlayer.message(Lang.ERROR_NOT_NEWBIE);
6262
return;
6363
}
6464
combatPlayer.setNewbie(false);
@@ -90,7 +90,7 @@ public void execute(final CommandSender sender, final String label, final List<C
9090
final CombatPlayer combatPlayer = ph.get(player);
9191

9292
if (!combatPlayer.isNewbie()) {
93-
combatPlayer.message(Lang.ERROR_NOT_NEWBIE.msg());
93+
combatPlayer.message(Lang.ERROR_NOT_NEWBIE);
9494
} else {
9595
combatPlayer.message(Lang.NEWBIE_TIME_CHECK.msgTime(combatPlayer.getNewbieTimeLeft()));
9696
}

pvpmanager/src/main/java/me/chancesd/pvpmanager/command/Tag.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void execute(final CommandSender sender, final String label, final List<C
4949
final CommandArgument targetArg = getArgument(args, ARG_TARGET);
5050
final CommandArgument timeArg = getArgument(args, ARG_TIME);
5151
final long timeInMs = timeArg.getAsInt() * 1000L;
52-
52+
5353
if (timeInMs <= 0) {
5454
ChatUtils.send(sender, Lang.PREFIX + " &#FF5555Combat time must be positive (greater than 0)");
5555
return;
@@ -65,7 +65,7 @@ public void execute(final CommandSender sender, final String label, final List<C
6565

6666
private void showPlayerTagStatus(final CombatPlayer pvPlayer) {
6767
if (!pvPlayer.isInCombat()) {
68-
pvPlayer.message(Lang.TAG_NOT_IN_COMBAT.msg());
68+
pvPlayer.message(Lang.TAG_NOT_IN_COMBAT);
6969
return;
7070
}
7171
pvPlayer.message(Lang.TAG_TIME_LEFT.msgTime(pvPlayer.getTagTimeLeft()));

pvpmanager/src/main/java/me/chancesd/pvpmanager/integration/hook/worldguard/WorldGuardModernHook.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,14 @@ private boolean shouldCheckPvPFlag(final Player defender) {
146146
private void disableNewbieProtection(final CombatPlayer player) {
147147
if (player.isNewbie()) {
148148
player.setNewbie(false);
149-
player.message(Lang.NEWBIE_FORCE_REMOVED_WG.msg());
149+
player.message(Lang.NEWBIE_FORCE_REMOVED_WG);
150150
}
151151
}
152152

153153
private void disablePvPProtection(final CombatPlayer player) {
154154
if (!player.hasPvPEnabled()) {
155155
player.setPvP(true);
156-
player.message(Lang.PVP_FORCE_ENABLED_WG.msg());
156+
player.message(Lang.PVP_FORCE_ENABLED_WG);
157157
}
158158
}
159159

pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/BlockedActionsListener.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public final void onBlockPlace(final BlockPlaceEvent event) {
5151
final CombatPlayer combatPlayer = playerHandler.get(event.getPlayer());
5252
if (Conf.BLOCK_PLACE_BLOCKS.asBool() && combatPlayer.isInCombat() || Conf.NEWBIE_BLOCK_PLACE.asBool() && combatPlayer.isNewbie()) {
5353
event.setCancelled(true);
54-
combatPlayer.sendActionBar(Lang.BLOCK_PLACE_BLOCKED_IN_COMBAT.msg(), 1000);
54+
combatPlayer.message(Lang.BLOCK_PLACE_BLOCKED_IN_COMBAT);
5555
}
5656
}
5757

@@ -63,7 +63,7 @@ public final void onBlockBreak(final BlockBreakEvent event) {
6363
final CombatPlayer combatPlayer = playerHandler.get(event.getPlayer());
6464
if (Conf.BLOCK_BREAK_BLOCKS.asBool() && combatPlayer.isInCombat() || Conf.NEWBIE_BLOCK_BREAK.asBool() && combatPlayer.isNewbie()) {
6565
event.setCancelled(true);
66-
combatPlayer.sendActionBar(Lang.BLOCK_BREAK_BLOCKED_IN_COMBAT.msg(), 1000);
66+
combatPlayer.message(Lang.BLOCK_BREAK_BLOCKED_IN_COMBAT);
6767
}
6868
}
6969

@@ -94,7 +94,7 @@ public final void onFireworkUseWhileGliding(final PlayerInteractEvent event) {
9494

9595
if (Conf.BLOCK_FIREWORKS_IN_COMBAT.asBool()) {
9696
event.setCancelled(true);
97-
pvPlayer.sendActionBar(Lang.FIREWORK_BLOCKED_IN_COMBAT.msg(), 1000);
97+
pvPlayer.message(Lang.FIREWORK_BLOCKED_IN_COMBAT);
9898
return;
9999
}
100100

@@ -104,7 +104,7 @@ public final void onFireworkUseWhileGliding(final PlayerInteractEvent event) {
104104
final FireworkMeta meta = (FireworkMeta) item.getItemMeta();
105105
if (meta != null && meta.getPower() > powerLimit) {
106106
event.setCancelled(true);
107-
pvPlayer.sendActionBar(Lang.FIREWORK_POWER_LIMITED_IN_COMBAT.msg(meta.getPower()), 1000);
107+
pvPlayer.message(Lang.FIREWORK_POWER_LIMITED_IN_COMBAT, meta.getPower());
108108
}
109109
}
110110
}
@@ -125,7 +125,7 @@ public final void onPlayerBlockInteract(final PlayerInteractEvent e) {
125125
for (final String material : Conf.BLOCK_INTERACT_ITEM_LIST.asList()) {
126126
if (blockType.name().endsWith(material)) {
127127
e.setCancelled(true);
128-
combatPlayer.sendActionBar(Lang.INTERACT_BLOCKED_IN_COMBAT.msg(), 1000);
128+
combatPlayer.message(Lang.INTERACT_BLOCKED_IN_COMBAT);
129129
return;
130130
}
131131
}
@@ -139,7 +139,7 @@ public final void onPlayerPickup(final PlayerPickupItemEvent e) {
139139
final CombatPlayer player = playerHandler.get(e.getPlayer());
140140
if (player.isNewbie()) {
141141
e.setCancelled(true);
142-
player.sendActionBar(Lang.NEWBIE_PICKUP_ITEM_BLOCKED.msg(), 1000);
142+
player.message(Lang.NEWBIE_PICKUP_ITEM_BLOCKED);
143143
}
144144
}
145145
}
@@ -191,7 +191,7 @@ public final void onCommand(final PlayerCommandPreprocessEvent event) {
191191
}
192192
if (player.isNewbie() && CombatUtils.recursiveContainsCommand(givenCommand, Conf.NEWBIE_BLACKLIST.asList())) {
193193
event.setCancelled(true);
194-
player.message(Lang.NEWBIE_COMMAND_BLOCKED.msg());
194+
player.message(Lang.NEWBIE_COMMAND_BLOCKED);
195195
}
196196
}
197197
}
@@ -203,7 +203,7 @@ public final void onInventoryOpen(final InventoryOpenEvent event) {
203203
final CombatPlayer combatPlayer = playerHandler.get((Player) event.getPlayer());
204204
if (combatPlayer.isInCombat()) {
205205
event.setCancelled(true);
206-
combatPlayer.sendActionBar(Lang.INVENTORY_BLOCKED_IN_COMBAT.msg(), 1000);
206+
combatPlayer.message(Lang.INVENTORY_BLOCKED_IN_COMBAT);
207207
}
208208
}
209209

pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/EntityListener1_9.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void onEntityGlide(final EntityToggleGlideEvent event) {
4747
final Player player = (Player) event.getEntity();
4848
final CombatPlayer combatPlayer = ph.get(player);
4949
if (combatPlayer.isInCombat()) {
50-
combatPlayer.sendActionBar(Lang.ELYTRA_BLOCKED_IN_COMBAT.msg(), 1000);
50+
combatPlayer.message(Lang.ELYTRA_BLOCKED_IN_COMBAT);
5151
event.setCancelled(true);
5252

5353
final UUID playerId = player.getUniqueId();

pvpmanager/src/main/java/me/chancesd/pvpmanager/listener/PlayerListener.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import me.chancesd.pvpmanager.setting.Conf;
3838
import me.chancesd.pvpmanager.utils.CombatUtils;
3939
import me.chancesd.sdutils.scheduler.ScheduleUtils;
40+
import me.chancesd.sdutils.utils.TimeUtil;
4041

4142
public class PlayerListener implements Listener {
4243

@@ -55,12 +56,12 @@ public final void onPlayerEat(final PlayerItemConsumeEvent event) {
5556
final CombatPlayer player = playerManager.get(event.getPlayer());
5657
if (Conf.BLOCK_EAT.asBool() && player.isInCombat() && type.isEdible()) {
5758
event.setCancelled(true);
58-
playerManager.get(event.getPlayer()).sendActionBar(Lang.EAT_BLOCKED_IN_COMBAT.msg(), 1000);
59+
player.message(Lang.EAT_BLOCKED_IN_COMBAT);
5960
}
6061
if (Conf.ITEM_COOLDOWNS.asMap().containsKey(type)) {
6162
if (player.hasItemCooldown(type)) {
6263
event.setCancelled(true);
63-
player.message(Lang.ITEM_COOLDOWN.msgTimeUntil(player.getItemCooldown(type)));
64+
player.message(Lang.ITEM_COOLDOWN, TimeUtil.getDiffUntil(Lang.ITEM_COOLDOWN, player.getItemCooldown(type)));
6465
return;
6566
}
6667
player.setItemCooldown(type, Conf.ITEM_COOLDOWNS.asMap().get(type));
@@ -115,16 +116,16 @@ public final void onPlayerCooldown(final PlayerInteractEvent e) {
115116

116117
final Material type = e.getMaterial();
117118
if ((e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) && Conf.ITEM_COOLDOWNS.asMap().containsKey(type)) {
118-
final CombatPlayer pvplayer = playerManager.get(player);
119-
if (pvplayer.hasItemCooldown(type)) {
120-
final String msg = Lang.ITEM_COOLDOWN.msgTimeUntil(pvplayer.getItemCooldown(type));
119+
final CombatPlayer combatPlayer = playerManager.get(player);
120+
if (combatPlayer.hasItemCooldown(type)) {
121+
final String msg = Lang.ITEM_COOLDOWN.msgTimeUntil(combatPlayer.getItemCooldown(type));
121122
if (!msg.equals(msgCooldown.getIfPresent(player.getUniqueId()))) {
122-
pvplayer.message(msg);
123+
combatPlayer.message(Lang.ITEM_COOLDOWN, TimeUtil.getDiffUntil(Lang.ITEM_COOLDOWN, combatPlayer.getItemCooldown(type)));
123124
msgCooldown.put(player.getUniqueId(), msg);
124125
}
125126
e.setCancelled(true);
126127
} else if (!type.isEdible()) {
127-
ScheduleUtils.runPlatformTask(() -> pvplayer.setItemCooldown(type, Conf.ITEM_COOLDOWNS.asMap().get(type)));
128+
ScheduleUtils.runPlatformTask(() -> combatPlayer.setItemCooldown(type, Conf.ITEM_COOLDOWNS.asMap().get(type)));
128129
}
129130
}
130131
}
@@ -149,7 +150,7 @@ public final void onPlayerInteract(final PlayerInteractEvent e) {
149150
}
150151
final CombatPlayer target = playerManager.get(p);
151152
if ((!target.hasPvPEnabled() || !pvplayer.hasPvPEnabled()) && clickedBlock.getLocation().distanceSquared(p.getLocation()) < 9) {
152-
pvplayer.message(Lang.ATTACK_DENIED_OTHER.msg(target.getName()));
153+
pvplayer.message(Lang.ATTACK_DENIED_OTHER, target.getName());
153154
e.setCancelled(true);
154155
return;
155156
}
@@ -171,7 +172,7 @@ public final void onBucketEmpty(final PlayerBucketEmptyEvent event) {
171172
final Location playerLocation = p.getLocation();
172173
if ((!target.hasPvPEnabled() || !combatPlayer.hasPvPEnabled())
173174
&& playerLocation != null && clickedBlock.getLocation().distanceSquared(playerLocation) < 25) {
174-
combatPlayer.message(Lang.ATTACK_DENIED_OTHER.msg(target.getName()));
175+
combatPlayer.message(Lang.ATTACK_DENIED_OTHER, target.getName());
175176
event.setCancelled(true);
176177
return;
177178
}

pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/ConfigManager.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,10 @@ public boolean isMajorVersionUpgrade() {
147147
return oldVersion != 0 && oldVersion < 200;
148148
}
149149

150+
public int getOldVersion() {
151+
return oldVersion;
152+
}
153+
150154
public YamlConfiguration getHooksConfig() {
151155
return pluginHooksConfig;
152156
}

pvpmanager/src/main/java/me/chancesd/pvpmanager/manager/DeathHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private void handlePvPDeath(final Player player, final CombatPlayer pvPlayer, fi
7575
final int expWon = pKiller.giveExp(pvPlayer);
7676
event.setDroppedExp(0);
7777
event.setNewExp(player.getTotalExperience() - expWon);
78-
pvPlayer.message(Lang.EXP_STOLEN.msg(pKiller.getName(), expWon));
78+
pvPlayer.message(Lang.EXP_STOLEN, pKiller.getName(), expWon);
7979
}
8080
}
8181
}

pvpmanager/src/main/java/me/chancesd/pvpmanager/player/BasePlayer.java

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.UUID;
44

55
import me.chancesd.pvpmanager.player.world.CombatWorld;
6+
import me.chancesd.pvpmanager.setting.DisplayMode;
67
import me.chancesd.pvpmanager.setting.Lang;
78
import me.chancesd.pvpmanager.setting.Permissions;
89
import me.chancesd.pvpmanager.utils.CombatUtils;
@@ -72,16 +73,37 @@ public final void message(final String message) {
7273
}
7374
}
7475

75-
public final void message(final Lang message, final String... args) {
76-
if (isOnline()) {
77-
getPlayer().sendMessage(message.msg(args));
76+
/**
77+
* Sends a message according to its display mode (chat or action bar)
78+
*
79+
* @param message The Lang message to be sent
80+
* @param duration The duration for action bar messages (ignored for chat)
81+
* @param args Optional arguments for message replacements
82+
*/
83+
public final void messageWithDuration(final Lang message, final long duration, final Object... args) {
84+
if (!isOnline()) {
85+
return;
7886
}
79-
}
8087

81-
public final void message(final Lang message) {
82-
if (isOnline()) {
83-
getPlayer().sendMessage(message.msg());
88+
final String formattedMessage = args.length > 0 ? message.msg(args) : message.msg();
89+
if (formattedMessage.isEmpty()) {
90+
return;
8491
}
92+
if (message.getDisplayMode() == DisplayMode.ACTION_BAR) {
93+
sendActionBar(formattedMessage, duration);
94+
} else {
95+
getPlayer().sendMessage(formattedMessage);
96+
}
97+
}
98+
99+
/**
100+
* Sends a message according to its display mode (chat or action bar) with default duration
101+
*
102+
* @param message The Lang message to be sent
103+
* @param args Optional arguments for message replacements
104+
*/
105+
public final void message(final Lang message, final Object... args) {
106+
messageWithDuration(message, 1000, args);
85107
}
86108

87109
/**

pvpmanager/src/main/java/me/chancesd/pvpmanager/player/CombatPlayer.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,11 @@ public final synchronized void tag(final boolean isAttacker, final CombatPlayer
192192
ScheduleUtils.runAsync(nametag::setInCombat);
193193
}
194194

195-
final String message;
196195
if (isAttacker) {
197-
message = Lang.TAGGED_ATTACKER.msg(other.getName());
196+
message(Lang.TAGGED_ATTACKER, other.getName());
198197
} else {
199-
message = Lang.TAGGED_DEFENDER.msg(other.getName());
198+
message(Lang.TAGGED_DEFENDER, other.getName());
200199
}
201-
message(message);
202200

203201
this.tagged = true;
204202
}
@@ -284,7 +282,7 @@ public final void addVictim(final Player victimPlayer) {
284282
victim.put(victimName, totalKills);
285283
}
286284
if (Conf.KILL_ABUSE_WARN.asBool() && totalKills + 1 == Conf.KILL_ABUSE_MAX.asInt()) {
287-
message(Lang.KILL_ABUSE_WARNING.msg());
285+
message(Lang.KILL_ABUSE_WARNING);
288286
}
289287
if (totalKills >= Conf.KILL_ABUSE_MAX.asInt()) {
290288
untag(UntagReason.KICKED);

0 commit comments

Comments
 (0)