mirror of
https://github.com/PikaMug/Quests.git
synced 2024-10-05 10:27:40 +02:00
* Make /quest removecompletedquest
offline player compatible
This commit is contained in:
parent
150e524855
commit
b294b59788
@ -2477,8 +2477,14 @@ public class Quester {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #getPlayer is faster
|
||||||
|
OfflinePlayer represented_player = getPlayer();
|
||||||
|
if (represented_player == null) {
|
||||||
|
represented_player = getOfflinePlayer();
|
||||||
|
}
|
||||||
|
|
||||||
data.set("hasJournal", hasJournal);
|
data.set("hasJournal", hasJournal);
|
||||||
data.set("lastKnownName", getPlayer().getName());
|
data.set("lastKnownName", represented_player.getName());
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
|
||||||
|
@ -1594,10 +1594,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player target_online_player = PlayerFinder.findOnlinePlayerByExactCaseInsensitiveNameMatch(args[1]);
|
OfflinePlayer target_offline_player = PlayerFinder.findOfflinePlayerWithNameByExactCaseInsensitiveNameMatch(args[1]);
|
||||||
|
|
||||||
// Reject usage without matching online player
|
// According to CraftBukkit implementation, OfflinePlayer#getName could be null,
|
||||||
if (target_online_player == null) {
|
// meaning the player has NOT been seen on current server
|
||||||
|
// To avoid saving data with name `null`, we consider this as player not found
|
||||||
|
if (target_offline_player == null) {
|
||||||
cs.sendMessage(YELLOW + Lang.get("playerNotFound"));
|
cs.sendMessage(YELLOW + Lang.get("playerNotFound"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1608,16 +1610,16 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
UUID target_online_player_uuid = target_online_player.getUniqueId();
|
UUID player_uuid = target_offline_player.getUniqueId();
|
||||||
Quester quester = getQuester(target_online_player_uuid);
|
Quester quester = getQuester(player_uuid);
|
||||||
|
|
||||||
// We do NOT care whather the quester is taking the quest
|
// We do NOT care whather the quester is taking the quest
|
||||||
|
|
||||||
String msg = Lang.get("removedQuestFromQuesterCompletedQuests");
|
String msg = Lang.get("removedQuestFromQuesterCompletedQuests");
|
||||||
msg = msg.replaceAll("<player>", GREEN + target_online_player.getName() + GOLD);
|
msg = msg.replaceAll("<player>", GREEN + target_offline_player.getName() + GOLD);
|
||||||
msg = msg.replaceAll("<quest>", ChatColor.DARK_PURPLE + quest_to_be_remove.name + ChatColor.AQUA);
|
msg = msg.replaceAll("<quest>", ChatColor.DARK_PURPLE + quest_to_be_remove.name + ChatColor.AQUA);
|
||||||
cs.sendMessage(GOLD + msg);
|
cs.sendMessage(GOLD + msg);
|
||||||
cs.sendMessage(PURPLE + " UUID: " + DARKAQUA + target_online_player_uuid);
|
cs.sendMessage(PURPLE + " UUID: " + DARKAQUA + player_uuid);
|
||||||
|
|
||||||
quester.removeCompletedQuests(quest_to_be_remove);
|
quester.removeCompletedQuests(quest_to_be_remove);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user