forked from Upstream/mmocore
!Fixed temp blocks, drops and default configs
This commit is contained in:
parent
400180f5a1
commit
4e189ac6e4
@ -88,6 +88,10 @@ public class BlockInfo {
|
||||
return regen != null;
|
||||
}
|
||||
|
||||
public boolean regenerates() {
|
||||
return regen != null;
|
||||
}
|
||||
|
||||
public RegenInfo getRegenerationInfo() {
|
||||
return regen;
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ public class BlockListener implements Listener {
|
||||
* apply drop tables
|
||||
*/
|
||||
if (info.hasDropTable()) {
|
||||
Location dropLocation = getSafeDropLocation(block, true);
|
||||
Location dropLocation = getSafeDropLocation(block, !(info.regenerates() && info.getRegenerationInfo().hasTemporaryBlock()));
|
||||
for (ItemStack drop : called.getDrops())
|
||||
if (drop.getType() != Material.AIR && drop.getAmount() > 0)
|
||||
block.getWorld().dropItemNaturally(dropLocation, drop);
|
||||
@ -120,7 +120,6 @@ public class BlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void b(BlockPlaceEvent event) {
|
||||
event.getBlock().setMetadata("player_placed", new FixedMetadataValue(MMOCore.plugin, true));
|
||||
@ -134,12 +133,11 @@ public class BlockListener implements Listener {
|
||||
BlockFace direction = event.getDirection();
|
||||
movedBlock = movedBlock.getRelative(direction, 2);
|
||||
|
||||
for (Block b : event.getBlocks()) {
|
||||
for (Block b : event.getBlocks())
|
||||
if (b.hasMetadata("player_placed")) {
|
||||
movedBlock = b.getRelative(direction);
|
||||
movedBlock.setMetadata("player_placed", new FixedMetadataValue(MMOCore.plugin, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -158,10 +156,12 @@ public class BlockListener implements Listener {
|
||||
if (block.getType() == Material.AIR && self)
|
||||
return block.getLocation();
|
||||
|
||||
Block relative;
|
||||
for (BlockFace face : order)
|
||||
if (!(relative = block.getRelative(face)).getType().isSolid())
|
||||
return relative.getLocation().add(block.getLocation().subtract(relative.getLocation()).multiply(.3));
|
||||
for (BlockFace face : order) {
|
||||
Block relative = block.getRelative(face);
|
||||
if (!relative.getType().isSolid())
|
||||
return relative.getLocation().add(block.getLocation().subtract(relative.getLocation()).multiply(.6));
|
||||
}
|
||||
|
||||
return block.getLocation();
|
||||
}
|
||||
}
|
||||
|
@ -90,7 +90,12 @@ public class RestrictionManager {
|
||||
|
||||
// recursive function to check for parent permissions
|
||||
public boolean canMine(BlockType type) {
|
||||
return mineable.contains(type) || (parent != null && parent.canMine(type));
|
||||
String key = type.generateKey();
|
||||
for (BlockType mineable : this.mineable)
|
||||
if (mineable.generateKey().equals(key))
|
||||
return true;
|
||||
|
||||
return parent != null && parent.canMine(type);
|
||||
}
|
||||
|
||||
public Material getTool() {
|
||||
|
@ -20,20 +20,20 @@ exp-curve: mining
|
||||
# Block Regen is currently only possible using custom mining.
|
||||
on-mine:
|
||||
emerald:
|
||||
material: EMERALD_ORE
|
||||
material: vanilla{type=EMERALD_ORE}
|
||||
drop-table:
|
||||
items:
|
||||
- 'vanilla{type=EMERALD} 1 1-9'
|
||||
vanilla-drops: false
|
||||
regen:
|
||||
time: 2000
|
||||
temp-block: STONE
|
||||
temp-block: vanilla{type=STONE}
|
||||
triggers:
|
||||
- 'exp{profession=mining;amount=32}'
|
||||
|
||||
diamond:
|
||||
# The material you need to mine
|
||||
material: DIAMOND_ORE
|
||||
material: vanilla{type=DIAMOND_ORE}
|
||||
|
||||
# Refer to drop-tables.yml
|
||||
# The drop table used by the block.
|
||||
@ -63,4 +63,4 @@ on-mine:
|
||||
# When using the temp-block option, make sure you choose
|
||||
# one temp block and don't use it anywhere else in the
|
||||
# configuration so that block regens do not affect each other
|
||||
temp-block: STONE
|
||||
temp-block: vanilla{type=STONE}
|
@ -10,11 +10,11 @@ WOODEN_PICKAXE:
|
||||
|
||||
# What the tool can mine.
|
||||
can-mine:
|
||||
- COAL_ORE
|
||||
- vanilla{type=COAL_ORE}
|
||||
|
||||
STONE_PICKAXE:
|
||||
can-mine:
|
||||
- IRON_ORE
|
||||
- vanilla{type=IRON_ORE}
|
||||
|
||||
# The block break permissions the tool inherits.
|
||||
# e.g a stone pickaxe can mine iron ores PLUS
|
||||
@ -25,16 +25,16 @@ STONE_PICKAXE:
|
||||
IRON_PICKAXE:
|
||||
parent: STONE_PICKAXE
|
||||
can-mine:
|
||||
- GOLD_ORE
|
||||
- vanilla{type=GOLD_ORE}
|
||||
|
||||
GOLDEN_PICKAXE:
|
||||
parent: IRON_PICKAXE
|
||||
can-mine:
|
||||
- LAPIS_ORE
|
||||
- vanilla{type=LAPIS_ORE}
|
||||
|
||||
DIAMOND_PICKAXE:
|
||||
parent: GOLDEN_PICKAXE
|
||||
can-mine:
|
||||
- DIAMOND_ORE
|
||||
- EMERALD_ORE
|
||||
- REDSTONE_ORE
|
||||
- vanilla{type=DIAMOND_ORE}
|
||||
- vanilla{type=EMERALD_ORE}
|
||||
- vanilla{type=REDSTONE_ORE}
|
||||
|
Loading…
Reference in New Issue
Block a user