65 lines
1.6 KiB
Java
65 lines
1.6 KiB
Java
/*
|
|
* Copyright (C) 2020-2023 Daniel Saukel
|
|
*
|
|
* All rights reserved.
|
|
*/
|
|
package de.erethon.dungeonsxxl.sign;
|
|
|
|
import de.erethon.dungeonsxl.api.DungeonsAPI;
|
|
import de.erethon.dungeonsxl.api.world.InstanceWorld;
|
|
import de.erethon.dungeonsxl.player.DPermission;
|
|
import de.erethon.dungeonsxl.sign.passive.InteractSign;
|
|
import de.erethon.dungeonsxl.trigger.InteractTrigger;
|
|
import de.erethon.bedrock.misc.NumberUtil;
|
|
import de.erethon.dungeonsxl.util.BlockUtilCompat;
|
|
import de.erethon.dungeonsxl.world.DGameWorld;
|
|
import org.bukkit.block.Sign;
|
|
|
|
/**
|
|
* This sign adds an interact trigger to an attached block, like a "suspicious wall".
|
|
*
|
|
* @author Daniel Saukel
|
|
*/
|
|
public class InteractWallSign extends InteractSign {
|
|
|
|
public InteractWallSign(DungeonsAPI api, Sign sign, String[] lines, InstanceWorld instance) {
|
|
super(api, sign, lines, instance);
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return "InteractWall";
|
|
}
|
|
|
|
@Override
|
|
public String getBuildPermission() {
|
|
return DPermission.SIGN.getNode() + ".interactwall";
|
|
}
|
|
|
|
@Override
|
|
public boolean isOnDungeonInit() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isProtected() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean isSetToAir() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void initialize() {
|
|
InteractTrigger trigger = InteractTrigger.getOrCreate(NumberUtil.parseInt(getSign().getLine(1)),
|
|
BlockUtilCompat.getAttachedBlock(getSign().getBlock()), (DGameWorld) getGameWorld());
|
|
if (trigger != null) {
|
|
trigger.addListener(this);
|
|
addTrigger(trigger);
|
|
}
|
|
}
|
|
|
|
}
|