CraftBukkit/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java
2021-11-22 09:00:00 +11:00

63 lines
1.7 KiB
Java

package org.bukkit.craftbukkit.command;
import net.minecraft.SystemUtils;
import net.minecraft.commands.CommandListenerWrapper;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.world.level.block.entity.TileEntity;
import org.bukkit.block.Block;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.craftbukkit.util.CraftChatMessage;
/**
* Represents input from a command block
*/
public class CraftBlockCommandSender extends ServerCommandSender implements BlockCommandSender {
private final CommandListenerWrapper block;
private final TileEntity tile;
public CraftBlockCommandSender(CommandListenerWrapper commandBlockListenerAbstract, TileEntity tile) {
super();
this.block = commandBlockListenerAbstract;
this.tile = tile;
}
@Override
public Block getBlock() {
return CraftBlock.at(tile.getLevel(), tile.getBlockPos());
}
@Override
public void sendMessage(String message) {
for (IChatBaseComponent component : CraftChatMessage.fromString(message)) {
block.source.sendMessage(component, SystemUtils.NIL_UUID);
}
}
@Override
public void sendMessage(String... messages) {
for (String message : messages) {
sendMessage(message);
}
}
@Override
public String getName() {
return block.getTextName();
}
@Override
public boolean isOp() {
return true;
}
@Override
public void setOp(boolean value) {
throw new UnsupportedOperationException("Cannot change operator status of a block");
}
public CommandListenerWrapper getWrapper() {
return block;
}
}