Add Player#openSign API to edit a placed sign
This commit is contained in:
parent
1825cc0b04
commit
27a27cdb84
@ -1,13 +1,17 @@
|
|||||||
package org.bukkit.craftbukkit.block;
|
package org.bukkit.craftbukkit.block;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
import net.minecraft.network.chat.ChatComponentText;
|
import net.minecraft.network.chat.ChatComponentText;
|
||||||
import net.minecraft.network.chat.IChatBaseComponent;
|
import net.minecraft.network.chat.IChatBaseComponent;
|
||||||
|
import net.minecraft.server.level.EntityPlayer;
|
||||||
import net.minecraft.world.item.EnumColor;
|
import net.minecraft.world.item.EnumColor;
|
||||||
import net.minecraft.world.level.block.entity.TileEntitySign;
|
import net.minecraft.world.level.block.entity.TileEntitySign;
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
|
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||||
import org.bukkit.craftbukkit.util.CraftChatMessage;
|
import org.bukkit.craftbukkit.util.CraftChatMessage;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class CraftSign extends CraftBlockEntityState<TileEntitySign> implements Sign {
|
public class CraftSign extends CraftBlockEntityState<TileEntitySign> implements Sign {
|
||||||
|
|
||||||
@ -87,6 +91,17 @@ public class CraftSign extends CraftBlockEntityState<TileEntitySign> implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void openSign(Sign sign, Player player) {
|
||||||
|
Preconditions.checkArgument(sign != null, "sign == null");
|
||||||
|
Preconditions.checkArgument(sign.isPlaced(), "Sign must be placed");
|
||||||
|
Preconditions.checkArgument(sign.getWorld() == player.getWorld(), "Sign must be in same world as Player");
|
||||||
|
|
||||||
|
TileEntitySign handle = ((CraftSign) sign).getTileEntity();
|
||||||
|
handle.isEditable = true;
|
||||||
|
|
||||||
|
((CraftPlayer) player).getHandle().openTextEdit(handle);
|
||||||
|
}
|
||||||
|
|
||||||
public static IChatBaseComponent[] sanitizeLines(String[] lines) {
|
public static IChatBaseComponent[] sanitizeLines(String[] lines) {
|
||||||
IChatBaseComponent[] components = new IChatBaseComponent[4];
|
IChatBaseComponent[] components = new IChatBaseComponent[4];
|
||||||
|
|
||||||
|
@ -96,6 +96,7 @@ import org.bukkit.Sound;
|
|||||||
import org.bukkit.Statistic;
|
import org.bukkit.Statistic;
|
||||||
import org.bukkit.WeatherType;
|
import org.bukkit.WeatherType;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.configuration.serialization.DelegateDeserialization;
|
import org.bukkit.configuration.serialization.DelegateDeserialization;
|
||||||
import org.bukkit.conversations.Conversation;
|
import org.bukkit.conversations.Conversation;
|
||||||
@ -1743,6 +1744,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||||||
getInventory().setItemInMainHand(hand);
|
getInventory().setItemInMainHand(hand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void openSign(Sign sign) {
|
||||||
|
CraftSign.openSign(sign, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showDemoScreen() {
|
public void showDemoScreen() {
|
||||||
if (getHandle().connection == null) return;
|
if (getHandle().connection == null) return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user