forked from Upstream/mmocore
Better handling of fake events
This commit is contained in:
parent
44d0785f73
commit
7d93031aeb
@ -65,7 +65,6 @@ public class BlockInfo {
|
|||||||
if (condition instanceof BlockCondition)
|
if (condition instanceof BlockCondition)
|
||||||
conditions.add((BlockCondition) condition);
|
conditions.add((BlockCondition) condition);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getOption(BlockInfoOption option) {
|
public boolean getOption(BlockInfoOption option) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.Indyuce.mmocore.api.player.profess.event.trigger;
|
package net.Indyuce.mmocore.api.player.profess.event.trigger;
|
||||||
|
|
||||||
|
import io.lumine.mythic.lib.UtilityMethods;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
@ -17,6 +18,8 @@ public class BlockBrokenTrigger implements EventTriggerHandler {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
public void a(BlockBreakEvent event) {
|
public void a(BlockBreakEvent event) {
|
||||||
|
if (UtilityMethods.isFake(event)) return;
|
||||||
|
|
||||||
PlayerData player = PlayerData.get(event.getPlayer());
|
PlayerData player = PlayerData.get(event.getPlayer());
|
||||||
if (player.getProfess().hasEventTriggers("break-block"))
|
if (player.getProfess().hasEventTriggers("break-block"))
|
||||||
player.getProfess().getEventTriggers("break-block").getTriggers().forEach(trigger -> trigger.apply(player));
|
player.getProfess().getEventTriggers("break-block").getTriggers().forEach(trigger -> trigger.apply(player));
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.Indyuce.mmocore.api.quest.objective;
|
package net.Indyuce.mmocore.api.quest.objective;
|
||||||
|
|
||||||
|
import io.lumine.mythic.lib.UtilityMethods;
|
||||||
import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
|
import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
|
||||||
import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
|
import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
|
||||||
import net.Indyuce.mmocore.api.quest.QuestProgress;
|
import net.Indyuce.mmocore.api.quest.QuestProgress;
|
||||||
@ -42,6 +43,8 @@ public class MineBlockObjective extends Objective {
|
|||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void a(BlockBreakEvent event) {
|
public void a(BlockBreakEvent event) {
|
||||||
if(!getQuestProgress().getPlayer().isOnline()) return;
|
if(!getQuestProgress().getPlayer().isOnline()) return;
|
||||||
|
if (UtilityMethods.isFake(event)) return;
|
||||||
|
|
||||||
if ((!playerPlaced) && event.getBlock().hasMetadata("player_placed"))
|
if ((!playerPlaced) && event.getBlock().hasMetadata("player_placed"))
|
||||||
return;
|
return;
|
||||||
if (event.getPlayer().equals(getQuestProgress().getPlayer().getPlayer()) && event.getBlock().getType() == block) {
|
if (event.getPlayer().equals(getQuestProgress().getPlayer().getPlayer()) && event.getBlock().getType() == block) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package net.Indyuce.mmocore.experience.source;
|
package net.Indyuce.mmocore.experience.source;
|
||||||
|
|
||||||
import io.lumine.mythic.lib.MythicLib;
|
import io.lumine.mythic.lib.MythicLib;
|
||||||
|
import io.lumine.mythic.lib.UtilityMethods;
|
||||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
|
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
|
||||||
@ -21,7 +22,7 @@ public class MineBlockExperienceSource extends SpecificExperienceSource<Material
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set to false by default.
|
* Set to false by default.
|
||||||
*
|
* <p>
|
||||||
* When set to true, the exp source will trigger when breaking
|
* When set to true, the exp source will trigger when breaking
|
||||||
* blocks that were placed by players. This can be used for crops
|
* blocks that were placed by players. This can be used for crops
|
||||||
*/
|
*/
|
||||||
@ -39,12 +40,11 @@ public class MineBlockExperienceSource extends SpecificExperienceSource<Material
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ExperienceSourceManager<MineBlockExperienceSource> newManager() {
|
public ExperienceSourceManager<MineBlockExperienceSource> newManager() {
|
||||||
return
|
return new ExperienceSourceManager<MineBlockExperienceSource>() {
|
||||||
new ExperienceSourceManager<MineBlockExperienceSource>() {
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void a(BlockBreakEvent event) {
|
public void a(BlockBreakEvent event) {
|
||||||
if (event.getPlayer().getGameMode() != GameMode.SURVIVAL)
|
if (event.getPlayer().getGameMode() != GameMode.SURVIVAL) return;
|
||||||
return;
|
if (UtilityMethods.isFake(event)) return;
|
||||||
|
|
||||||
PlayerData data = PlayerData.get(event.getPlayer());
|
PlayerData data = PlayerData.get(event.getPlayer());
|
||||||
|
|
||||||
|
@ -75,6 +75,9 @@ public class BlockListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Broken can be broken, if event is fake then skip it.
|
||||||
|
if (UtilityMethods.isFake(event)) return;
|
||||||
|
|
||||||
boolean canBreak = true;
|
boolean canBreak = true;
|
||||||
ItemStack item = player.getInventory().getItemInMainHand();
|
ItemStack item = player.getInventory().getItemInMainHand();
|
||||||
if (!MMOCore.plugin.restrictionManager.checkPermissions(item, info.getBlock())) {
|
if (!MMOCore.plugin.restrictionManager.checkPermissions(item, info.getBlock())) {
|
||||||
@ -148,6 +151,7 @@ public class BlockListener implements Listener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
public void unregisterPlayerPlacedBlocksTag(BlockBreakEvent event) {
|
public void unregisterPlayerPlacedBlocksTag(BlockBreakEvent event) {
|
||||||
|
if (UtilityMethods.isFake(event)) return;
|
||||||
event.getBlock().removeMetadata("player_placed", MMOCore.plugin);
|
event.getBlock().removeMetadata("player_placed", MMOCore.plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user