Skip to content

Commit f637ccc

Browse files
committed
Fix leak when running /newbie add on already protected players
#725
1 parent a04177c commit f637ccc

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ public AddNewbieCommand(final PlayerManager ph) {
126126
public void execute(final CommandSender sender, final String label, final List<CommandArgument> args) {
127127
final Player targetPlayer = getArgument(args, ARG_PLAYER).getAsPlayer();
128128
final CombatPlayer target = ph.get(targetPlayer);
129+
if (target.isNewbie()) {
130+
sender.sendMessage(ChatUtils.colorize(Lang.PREFIX + " &#FFFF55" + target.getName() + " &#FFAAAAalready has newbie protection"));
131+
return;
132+
}
129133
target.setNewbie(true);
130134
sender.sendMessage(ChatUtils.colorize(Lang.PREFIX + " Added newbie protection to &#FFFF55" + target.getName()));
131135
}
@@ -147,6 +151,10 @@ public RemoveNewbieCommand(final PlayerManager ph) {
147151
public void execute(final CommandSender sender, final String label, final List<CommandArgument> args) {
148152
final Player targetPlayer = getArgument(args, ARG_PLAYER).getAsPlayer();
149153
final CombatPlayer target = ph.get(targetPlayer);
154+
if (!target.isNewbie()) {
155+
sender.sendMessage(ChatUtils.colorize(Lang.PREFIX + " &#FFFF55" + target.getName() + " &#FFAAAAdoesn't have newbie protection"));
156+
return;
157+
}
150158
target.setNewbie(false);
151159
sender.sendMessage(ChatUtils.colorize(Lang.PREFIX + " Removed newbie protection from &#FFFF55" + target.getName()));
152160
}

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,13 @@ public final void setNewbie(final boolean newbie) {
129129
}
130130

131131
public final void setNewbie(final boolean newbie, final long time) {
132-
if (newbie) {
133-
this.newbieTask = new NewbieTask(this, time);
134-
} else if (this.newbie && newbieTask != null) {
132+
if (newbieTask != null) {
135133
newbieTask.cancel();
136134
this.newbieTask = null;
137135
}
136+
if (newbie) {
137+
this.newbieTask = new NewbieTask(this, time);
138+
}
138139

139140
// Fire event if the newbie state actually changed
140141
if (this.newbie != newbie) {

0 commit comments

Comments
 (0)