Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package fr.maxlego08.menu.loader.actions;

import fr.maxlego08.menu.api.annotations.AutoActionLoader;
import fr.maxlego08.menu.api.loader.ActionLoader;
import fr.maxlego08.menu.api.requirement.Action;
import fr.maxlego08.menu.api.utils.TypedMapAccessor;
import fr.maxlego08.menu.requirement.actions.BroadcastMessageAction;
import org.jspecify.annotations.NonNull;

import java.io.File;
import java.util.List;

@AutoActionLoader
public class BroadcastMessageLoader extends ActionLoader {

public BroadcastMessageLoader() {
super("broadcast_message", "broadcast message");
}

@Override
public Action load(@NonNull String path, @NonNull TypedMapAccessor accessor, @NonNull File file) {

boolean miniMessage = accessor.getBoolean("minimessage", accessor.getBoolean("mini-message", true));
List<String> messages = accessor.getStringList("messages");

return new BroadcastMessageAction(messages, miniMessage);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package fr.maxlego08.menu.loader.actions;

import fr.maxlego08.menu.api.annotations.AutoActionLoader;
import fr.maxlego08.menu.api.loader.ActionLoader;
import fr.maxlego08.menu.api.requirement.Action;
import fr.maxlego08.menu.api.utils.TypedMapAccessor;
import fr.maxlego08.menu.requirement.actions.BroadcastTitleAction;
import org.jspecify.annotations.NonNull;

import java.io.File;

@AutoActionLoader
public class BroadcastTitleLoader extends ActionLoader {

public BroadcastTitleLoader() {
super("broadcast_title", "broadcast title");
}

@Override
public Action load(@NonNull String path, @NonNull TypedMapAccessor accessor, @NonNull File file) {

String title = accessor.getString("title");
String subtitle = accessor.getString("subtitle");
long start = accessor.getLong("start");
long duration = accessor.getLong("duration");
long end = accessor.getLong("end");

return new BroadcastTitleAction(title, subtitle, start, duration, end);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package fr.maxlego08.menu.requirement.actions;

import fr.maxlego08.menu.api.button.Button;
import fr.maxlego08.menu.api.engine.InventoryEngine;
import fr.maxlego08.menu.api.utils.Placeholders;
import fr.maxlego08.menu.common.utils.ActionHelper;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.jspecify.annotations.NonNull;

import java.util.List;

public class BroadcastMessageAction extends ActionHelper {

private final List<String> messages;
private final boolean miniMessage;

public BroadcastMessageAction(List<String> messages, boolean miniMessage) {
this.messages = messages;
this.miniMessage = miniMessage;
}

@Override
protected void execute(@NonNull Player player, Button button, @NonNull InventoryEngine inventory, @NonNull Placeholders placeholders) {
List<String> finalMessages = this.papi(placeholders.parse(this.messages), player);
Bukkit.getOnlinePlayers().forEach(target -> finalMessages.forEach(message -> {
String finalMessage = message.replace("%sender%", player.getName()).replace("%receiver%", target.getName());
if (this.miniMessage) {
inventory.getPlugin().getMetaUpdater().sendMessage(target, finalMessage);
} else {
target.sendMessage(finalMessage);
}
}));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package fr.maxlego08.menu.requirement.actions;

import fr.maxlego08.menu.api.button.Button;
import fr.maxlego08.menu.api.engine.InventoryEngine;
import fr.maxlego08.menu.api.utils.Placeholders;
import fr.maxlego08.menu.common.utils.ActionHelper;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.jspecify.annotations.NonNull;

public class BroadcastTitleAction extends ActionHelper {

private final String title;
private final String subtitle;
private final long start;
private final long duration;
private final long end;

public BroadcastTitleAction(String title, String subtitle, long start, long duration, long end) {
this.title = title;
this.subtitle = subtitle;
this.start = start;
this.duration = duration;
this.end = end;
}

@Override
protected void execute(@NonNull Player player, Button button, @NonNull InventoryEngine inventory, @NonNull Placeholders placeholders) {
String finalTitle = this.papi(placeholders.parse(this.title), player);
String finalSubtitle = this.papi(placeholders.parse(this.subtitle), player);
Bukkit.getOnlinePlayers().forEach(target -> inventory.getPlugin().getMetaUpdater().sendTitle(target, finalTitle, finalSubtitle, this.start, this.duration, this.end));
}

}