Some bugfixes related to slabs, half blocks and some improved messages
This commit is contained in:
parent
efd1ea40dd
commit
1dcc0246a5
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
name: AncientGates
|
||||
version: 1.0.0
|
||||
version: 1.0.1
|
||||
main: org.mcteam.ancientgates.Plugin
|
||||
commands:
|
||||
gate:
|
||||
|
@ -30,6 +30,7 @@ public class CommandList extends BaseCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
sendMessage("There are currently "+ids.size()+" gates on this server: ");
|
||||
sendMessage(TextUtil.implode(ids, Conf.colorSystem+", "));
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package org.mcteam.ancientgates.commands;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
public class CommandOpen extends BaseCommand {
|
||||
|
||||
public CommandOpen() {
|
||||
@ -22,6 +24,11 @@ public class CommandOpen extends BaseCommand {
|
||||
sendMessage("To fix that: " + new CommandSetTo().getUseageTemplate(true, true));
|
||||
}
|
||||
|
||||
if (gate.getFrom().getBlock().getType() != Material.AIR) {
|
||||
sendMessage("The gate could not open. The from location is not air.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (gate.open()) {
|
||||
sendMessage("The gate was opened.");
|
||||
} else {
|
||||
|
@ -1,5 +1,8 @@
|
||||
package org.mcteam.ancientgates.commands;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.mcteam.ancientgates.Gate;
|
||||
|
||||
public class CommandSetFrom extends BaseCommand {
|
||||
@ -13,7 +16,20 @@ public class CommandSetFrom extends BaseCommand {
|
||||
}
|
||||
|
||||
public void perform() {
|
||||
gate.setFrom(player.getLocation());
|
||||
// The player might stand in a halfblock or a sign or whatever
|
||||
// Therefore we load som extra locations and blocks
|
||||
Block playerBlock = player.getLocation().getBlock();
|
||||
Block upBlock = playerBlock.getFace(BlockFace.UP);
|
||||
|
||||
if (playerBlock.getType() == Material.AIR) {
|
||||
gate.setFrom(playerBlock.getLocation());
|
||||
} else if (upBlock.getType() == Material.AIR) {
|
||||
gate.setFrom(upBlock.getLocation());
|
||||
} else {
|
||||
sendMessage("There is not enough room for a gate to open here");
|
||||
return;
|
||||
}
|
||||
|
||||
sendMessage("From location for gate \""+gate.getId()+"\" is now where you stand.");
|
||||
sendMessage("Build a frame around that block and:");
|
||||
sendMessage(new CommandOpen().getUseageTemplate(true, true));
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.mcteam.ancientgates.Conf;
|
||||
@ -22,11 +23,14 @@ public class PluginPlayerListener extends PlayerListener {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getTo().getBlock().getType() != Material.PORTAL) {
|
||||
Block blockTo = event.getTo().getBlock();
|
||||
Block blockToUp = blockTo.getFace(BlockFace.UP);
|
||||
|
||||
if (blockTo.getType() != Material.PORTAL && blockToUp.getType() != Material.PORTAL) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Ok so a player walks into a partal block
|
||||
// Ok so a player walks into a portal block
|
||||
// Find the nearest gate!
|
||||
Gate nearestGate = null;
|
||||
Location playerLocation = event.getPlayer().getLocation();
|
||||
|
Loading…
x
Reference in New Issue
Block a user