mirror of
https://github.com/PikaMug/Quests.git
synced 2025-02-21 15:01:19 +01:00
Patch multi-stack item delivery, fixes #1821
This commit is contained in:
parent
5c166f2041
commit
ee97390f8e
@ -77,8 +77,6 @@ import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
//import de.erethon.dungeonsxl.player.DGroup;
|
||||
|
||||
public class Quester implements Comparable<Quester> {
|
||||
|
||||
private final Quests plugin;
|
||||
@ -2217,7 +2215,7 @@ public class Quester implements Comparable<Quester> {
|
||||
}
|
||||
if (newAmount >= toDeliver) {
|
||||
found.setAmount(toDeliver);
|
||||
getQuestData(quest).itemsDelivered.set(items.indexOf(found), found);
|
||||
getQuestData(quest).itemsDelivered.set(items.indexOf(found), found.clone());
|
||||
if ((itemStack.getAmount() + amount) >= toDeliver) {
|
||||
// Take away remaining amount to be delivered
|
||||
final ItemStack clone = itemStack.clone();
|
||||
@ -2232,14 +2230,14 @@ public class Quester implements Comparable<Quester> {
|
||||
|
||||
// Multiplayer
|
||||
dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> {
|
||||
q.getQuestData(quest).itemsDelivered.set(items.indexOf(found), found);
|
||||
q.getQuestData(quest).itemsDelivered.set(items.indexOf(found), found.clone());
|
||||
q.finishObjective(quest, new Objective(type, new ItemStack(m, 1), found), null, null, null,
|
||||
null, null, null, null);
|
||||
return null;
|
||||
});
|
||||
} else {
|
||||
found.setAmount(newAmount);
|
||||
getQuestData(quest).itemsDelivered.set(items.indexOf(found), found);
|
||||
getQuestData(quest).itemsDelivered.set(items.indexOf(found), found.clone());
|
||||
player.getInventory().setItem(index, null);
|
||||
player.updateInventory();
|
||||
final String[] message = ConfigUtil.parseStringWithPossibleLineBreaks(getCurrentStage(quest)
|
||||
|
@ -206,13 +206,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
|
||||
// 8 - Setup commands
|
||||
if (getCommand("quests") != null) {
|
||||
Objects.requireNonNull(getCommand("quests")).setExecutor(cmdExecutor);
|
||||
Objects.requireNonNull(getCommand("quests")).setExecutor(getCommandExecutor());
|
||||
}
|
||||
if (getCommand("questadmin") != null) {
|
||||
Objects.requireNonNull(getCommand("questadmin")).setExecutor(cmdExecutor);
|
||||
Objects.requireNonNull(getCommand("questadmin")).setExecutor(getCommandExecutor());
|
||||
}
|
||||
if (getCommand("quest") != null) {
|
||||
Objects.requireNonNull(getCommand("quest")).setExecutor(cmdExecutor);
|
||||
Objects.requireNonNull(getCommand("quest")).setExecutor(getCommandExecutor());
|
||||
}
|
||||
|
||||
// 9 - Build conversation factories
|
||||
@ -226,18 +226,18 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
.withLocalEcho(false).addConversationAbandonedListener(this);
|
||||
|
||||
// 10 - Register listeners
|
||||
getServer().getPluginManager().registerEvents(blockListener, this);
|
||||
getServer().getPluginManager().registerEvents(itemListener, this);
|
||||
getServer().getPluginManager().registerEvents(getBlockListener(), this);
|
||||
getServer().getPluginManager().registerEvents(getItemListener(), this);
|
||||
depends.linkCitizens();
|
||||
getServer().getPluginManager().registerEvents(playerListener, this);
|
||||
getServer().getPluginManager().registerEvents(getPlayerListener(), this);
|
||||
if (settings.getStrictPlayerMovement() > 0) {
|
||||
final long ticks = settings.getStrictPlayerMovement() * 20L;
|
||||
getServer().getScheduler().scheduleSyncRepeatingTask(this, moveThread, ticks, ticks);
|
||||
getServer().getScheduler().scheduleSyncRepeatingTask(this, getPlayerMoveThread(), ticks, ticks);
|
||||
}
|
||||
if (depends.getPartyProvider() != null) {
|
||||
getServer().getPluginManager().registerEvents(uniteListener, this);
|
||||
getServer().getPluginManager().registerEvents(getUniteListener(), this);
|
||||
} else if (depends.getPartiesApi() != null) {
|
||||
getServer().getPluginManager().registerEvents(partiesListener, this);
|
||||
getServer().getPluginManager().registerEvents(getPartiesListener(), this);
|
||||
}
|
||||
|
||||
// 11 - Attempt to check for updates
|
||||
@ -472,7 +472,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
* @return a collection of all online Questers
|
||||
*/
|
||||
public Collection<Quester> getOnlineQuesters() {
|
||||
final Collection<Quester> questers = new ConcurrentSkipListSet<>();;
|
||||
final Collection<Quester> questers = new ConcurrentSkipListSet<>();
|
||||
for (final Quester q : getOfflineQuesters()) {
|
||||
if (q.getOfflinePlayer().isOnline()) {
|
||||
// Workaround for issues with the compass on fast join
|
||||
@ -3147,7 +3147,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
+ stageNum + ".sheep-to-shear");
|
||||
final List<Integer> shearAmounts = config.getIntegerList("quests." + questKey
|
||||
+ ".stages.ordered." + stageNum + ".sheep-amounts");
|
||||
for (String color : sheep) {
|
||||
for (final String color : sheep) {
|
||||
DyeColor dc = null;
|
||||
if (color.equalsIgnoreCase("NULL")) {
|
||||
dc = DyeColor.WHITE;
|
||||
|
Loading…
Reference in New Issue
Block a user