mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-25 12:15:59 +01:00
Address several multiplayer objective issues, by @AlessioDP
This commit is contained in:
parent
8e2f5dd13e
commit
3b8e0aa7af
@ -70,18 +70,13 @@ public class BlockListener implements Listener {
|
|||||||
.replace("<quest>", quest.getName()));
|
.replace("<quest>", quest.getName()));
|
||||||
} else {
|
} else {
|
||||||
quester.breakBlock(quest, blockItemStack);
|
quester.breakBlock(quest, blockItemStack);
|
||||||
|
|
||||||
|
quester.dispatchMultiplayerEverything(quest, breakType, (final Quester q) -> {
|
||||||
|
q.breakBlock(quest, blockItemStack);
|
||||||
|
return null;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
quester.dispatchMultiplayerEverything(quest, breakType, (final Quester q) -> {
|
|
||||||
if (quest.getOptions().canIgnoreSilkTouch()
|
|
||||||
&& player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
|
||||||
player.sendMessage(ChatColor.RED + Lang.get(player, "optionSilkTouchFail")
|
|
||||||
.replace("<quest>", quest.getName()));
|
|
||||||
} else {
|
|
||||||
quester.breakBlock(quest, blockItemStack);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
if (quester.getCurrentQuests().containsKey(quest)
|
if (quester.getCurrentQuests().containsKey(quest)
|
||||||
&& quester.getCurrentStage(quest).containsObjective(placeType)) {
|
&& quester.getCurrentStage(quest).containsObjective(placeType)) {
|
||||||
for (final ItemStack is : quester.getQuestData(quest).blocksPlaced) {
|
for (final ItemStack is : quester.getQuestData(quest).blocksPlaced) {
|
||||||
@ -115,7 +110,7 @@ public class BlockListener implements Listener {
|
|||||||
for (final ItemStack is : q.getQuestData(quest).blocksPlaced) {
|
for (final ItemStack is : q.getQuestData(quest).blocksPlaced) {
|
||||||
if (evt.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) {
|
if (evt.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) {
|
||||||
ItemStack toPlace = new ItemStack(is.getType(), 64);
|
ItemStack toPlace = new ItemStack(is.getType(), 64);
|
||||||
for (final ItemStack stack : quester.getCurrentStage(quest).getBlocksToPlace()) {
|
for (final ItemStack stack : q.getCurrentStage(quest).getBlocksToPlace()) {
|
||||||
if (ItemUtil.compareItems(is, stack, true) == 0) {
|
if (ItemUtil.compareItems(is, stack, true) == 0) {
|
||||||
toPlace = stack;
|
toPlace = stack;
|
||||||
}
|
}
|
||||||
@ -123,7 +118,7 @@ public class BlockListener implements Listener {
|
|||||||
|
|
||||||
final ObjectiveType type = ObjectiveType.PLACE_BLOCK;
|
final ObjectiveType type = ObjectiveType.PLACE_BLOCK;
|
||||||
final QuesterPreUpdateObjectiveEvent preEvent
|
final QuesterPreUpdateObjectiveEvent preEvent
|
||||||
= new QuesterPreUpdateObjectiveEvent(quester, quest,
|
= new QuesterPreUpdateObjectiveEvent(q, quest,
|
||||||
new Objective(type, is.getAmount(), toPlace.getAmount()));
|
new Objective(type, is.getAmount(), toPlace.getAmount()));
|
||||||
plugin.getServer().getPluginManager().callEvent(preEvent);
|
plugin.getServer().getPluginManager().callEvent(preEvent);
|
||||||
|
|
||||||
@ -133,7 +128,7 @@ public class BlockListener implements Listener {
|
|||||||
q.getQuestData(quest).blocksPlaced.set(index, is);
|
q.getQuestData(quest).blocksPlaced.set(index, is);
|
||||||
|
|
||||||
final QuesterPostUpdateObjectiveEvent postEvent
|
final QuesterPostUpdateObjectiveEvent postEvent
|
||||||
= new QuesterPostUpdateObjectiveEvent(quester, quest,
|
= new QuesterPostUpdateObjectiveEvent(q, quest,
|
||||||
new Objective(type, newAmount, toPlace.getAmount()));
|
new Objective(type, newAmount, toPlace.getAmount()));
|
||||||
plugin.getServer().getPluginManager().callEvent(postEvent);
|
plugin.getServer().getPluginManager().callEvent(postEvent);
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ public class ItemListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
quester.dispatchMultiplayerEverything(quest, type, (final Quester q) -> {
|
quester.dispatchMultiplayerEverything(quest, type, (final Quester q) -> {
|
||||||
quester.enchantItem(quest, enchantedItem);
|
q.enchantItem(quest, enchantedItem);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -180,7 +180,7 @@ public class ItemListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
quester.dispatchMultiplayerEverything(quest, type, (final Quester q) -> {
|
quester.dispatchMultiplayerEverything(quest, type, (final Quester q) -> {
|
||||||
quester.consumeItem(quest, consumedItem);
|
q.consumeItem(quest, consumedItem);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user