parent
4f6bfdf26d
commit
375f5983af
5 changed files with 177 additions and 1 deletions
@ -0,0 +1,18 @@ |
||||
package xyz.soukup.ecoCraftCore.messages; |
||||
|
||||
import org.bukkit.event.EventHandler; |
||||
import org.bukkit.event.Listener; |
||||
import org.bukkit.event.player.PlayerJoinEvent; |
||||
import org.bukkit.event.player.PlayerQuitEvent; |
||||
|
||||
public class JoinLeaveMessageSupress implements Listener { |
||||
@EventHandler |
||||
public void onJoin(PlayerJoinEvent event) { |
||||
event.joinMessage(null); |
||||
} |
||||
|
||||
@EventHandler |
||||
public void onQuit(PlayerQuitEvent event) { |
||||
event.quitMessage(null); |
||||
} |
||||
} |
||||
@ -0,0 +1,99 @@ |
||||
package xyz.soukup.ecoCraftCore.sign; |
||||
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder; |
||||
import com.mojang.brigadier.context.CommandContext; |
||||
import io.papermc.paper.command.brigadier.CommandSourceStack; |
||||
import io.papermc.paper.command.brigadier.Commands; |
||||
import io.papermc.paper.dialog.Dialog; |
||||
import io.papermc.paper.registry.data.dialog.ActionButton; |
||||
import io.papermc.paper.registry.data.dialog.DialogBase; |
||||
import io.papermc.paper.registry.data.dialog.action.DialogAction; |
||||
import io.papermc.paper.registry.data.dialog.input.DialogInput; |
||||
import io.papermc.paper.registry.data.dialog.type.DialogType; |
||||
import net.kyori.adventure.text.Component; |
||||
import net.kyori.adventure.text.event.ClickCallback; |
||||
import net.kyori.adventure.text.minimessage.MiniMessage; |
||||
import org.bukkit.Location; |
||||
import org.bukkit.block.Block; |
||||
import org.bukkit.block.BlockState; |
||||
import org.bukkit.block.Sign; |
||||
import org.bukkit.block.sign.Side; |
||||
import org.bukkit.block.sign.SignSide; |
||||
import org.bukkit.entity.Player; |
||||
import xyz.soukup.ecoCraftCore.database.objects.Shop; |
||||
import xyz.soukup.ecoCraftCore.messages.Messages; |
||||
import xyz.soukup.ecoCraftCore.regions.RegionManager; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
public class SignEditCommand { |
||||
public static LiteralArgumentBuilder<CommandSourceStack> getCommand(){ |
||||
return Commands.literal("edit-sign") |
||||
.requires(source -> source.getSender() instanceof Player) |
||||
.executes(SignEditCommand::openEditMenu); |
||||
} |
||||
|
||||
private static int openEditMenu(CommandContext<CommandSourceStack> context){ |
||||
Player player = (Player) context.getSource().getSender(); |
||||
Block block = player.getTargetBlock(null, 10); |
||||
BlockState blockState = block.getState(); |
||||
|
||||
if (!(blockState instanceof Sign sign)){ |
||||
Messages.send(player, "sign-edit.error.not-sign"); |
||||
return 1; |
||||
} |
||||
|
||||
Location location = sign.getLocation(); |
||||
|
||||
if (!RegionManager.isAllowedToInteract(player, location)){ |
||||
Messages.send(player, "region.error.not-allowed-to-interact"); |
||||
return 1; |
||||
} |
||||
|
||||
|
||||
|
||||
return 0; |
||||
} |
||||
|
||||
@SuppressWarnings("UnstableApiUsage") |
||||
public static Dialog buildEditDialog(Sign sign){ |
||||
|
||||
SignSide signSide = sign.getSide(Side.FRONT); |
||||
List<Component> lines = signSide.lines(); |
||||
MiniMessage miniMessage = MiniMessage.miniMessage(); |
||||
|
||||
List<ActionButton> actionButtons = new ArrayList<>(); |
||||
|
||||
actionButtons.add(ActionButton.builder(Messages.get("gui.shop-edit.button.confirm")) |
||||
.action(DialogAction.customClick( |
||||
(view, audience) -> {audience.closeDialog();}, |
||||
ClickCallback.Options.builder().build() |
||||
)) |
||||
.build()); |
||||
|
||||
return Dialog.create(builder -> builder.empty() |
||||
.base(DialogBase.builder(Messages.get("gui.shop-edit.title")) |
||||
.inputs(List.of( |
||||
DialogInput.text("line1", Messages.get("gui.sign-edit.inputs.line1")) |
||||
.initial(miniMessage.serialize(lines.getFirst())) |
||||
.build(), |
||||
DialogInput.text("line2", Messages.get("gui.sign-edit.inputs.line2")) |
||||
.initial(miniMessage.serialize(lines.get(1))) |
||||
.build(), |
||||
DialogInput.text("line3", Messages.get("gui.sign-edit.inputs.line3")) |
||||
.initial(miniMessage.serialize(lines.get(2))) |
||||
.build(), |
||||
DialogInput.text("line4", Messages.get("gui.sign-edit.inputs.line4")) |
||||
.initial(miniMessage.serialize(lines.get(3))) |
||||
.build() |
||||
|
||||
|
||||
)) |
||||
.build()) |
||||
.type(DialogType.multiAction(actionButtons).build()) |
||||
|
||||
); |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue