mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
Merge branch 'v5' into v6
This commit is contained in:
commit
18f13b7d15
@ -92,6 +92,7 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.block.data.Waterlogged;
|
import org.bukkit.block.data.Waterlogged;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import org.bukkit.entity.ArmorStand;
|
import org.bukkit.entity.ArmorStand;
|
||||||
|
import org.bukkit.entity.Boat;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
@ -107,6 +108,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.entity.EntityPickupItemEvent;
|
import org.bukkit.event.entity.EntityPickupItemEvent;
|
||||||
|
import org.bukkit.event.entity.EntityPlaceEvent;
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
|
||||||
import org.bukkit.event.hanging.HangingPlaceEvent;
|
import org.bukkit.event.hanging.HangingPlaceEvent;
|
||||||
@ -1115,6 +1117,34 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Boats can sometimes be placed on interactable blocks such as levers,
|
||||||
|
// see PS-175. Armor stands, minecarts and end crystals (the other entities
|
||||||
|
// supported by this event) don't have this issue.
|
||||||
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
|
public void onBoatPlace(EntityPlaceEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if (player == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Entity placed = event.getEntity();
|
||||||
|
if (!(placed instanceof Boat)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BukkitPlayer pp = BukkitUtil.getPlayer(player);
|
||||||
|
PlotArea area = pp.getPlotAreaAbs();
|
||||||
|
if (area == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PlayerBlockEventType eventType = PlayerBlockEventType.PLACE_VEHICLE;
|
||||||
|
Block block = event.getBlock();
|
||||||
|
BlockType blockType = BukkitAdapter.asBlockType(block.getType());
|
||||||
|
Location location = BukkitUtil.getLocation(block.getLocation());
|
||||||
|
if (!PlotSquared.get().getEventDispatcher()
|
||||||
|
.checkPlayerBlockEvent(pp, eventType, location, blockType, true)) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onBucketEmpty(PlayerBucketEmptyEvent event) {
|
public void onBucketEmpty(PlayerBucketEmptyEvent event) {
|
||||||
BlockFace bf = event.getBlockFace();
|
BlockFace bf = event.getBlockFace();
|
||||||
|
@ -63,7 +63,7 @@ import java.util.List;
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void setGenerator(@Nullable final String worldName, @Nullable final String generator) {
|
protected void setGenerator(@Nullable final String worldName, @Nullable final String generator) {
|
||||||
if (generator == null) {
|
if (generator == null || worldName != null && worldName.contains(".")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
File file = new File("bukkit.yml").getAbsoluteFile();
|
File file = new File("bukkit.yml").getAbsoluteFile();
|
||||||
|
@ -47,7 +47,6 @@ import java.util.Collection;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@CommandDeclaration(command = "setowner",
|
@CommandDeclaration(command = "setowner",
|
||||||
@ -176,18 +175,7 @@ public class Owner extends SetCommand {
|
|||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(value, (uuid, throwable) -> {
|
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(value, (uuid, throwable) -> uuidConsumer.accept(uuid));
|
||||||
if (throwable instanceof TimeoutException) {
|
|
||||||
player.sendMessage(TranslatableCaption.of("players.fetching_players_timeout"));
|
|
||||||
} else if (throwable != null) {
|
|
||||||
player.sendMessage(
|
|
||||||
TranslatableCaption.of("errors.invalid_player"),
|
|
||||||
Template.of("value", value)
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
uuidConsumer.accept(uuid);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user