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,20 @@
package de.minebench.tresor.services.placeholder;

import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;

public interface Placeholder {

/**
* Get the key of the placeholder
* @return The key
*/
String getKey();

/**
* Request the value of the placeholder
* @param player The player to request the value for
* @return The value
*/
String request(final OfflinePlayer player);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package de.minebench.tresor.services.placeholder;

import de.minebench.tresor.services.TresorServiceProvider;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public interface Placeholders extends TresorServiceProvider {

/**
* Get all registered placeholders
* @return The placeholders
*/
Map<String, Placeholder> getRegisteredPlaceholders();

/**
* Get a placeholder by its key
* @param key The key of the placeholder
* @return The placeholder
*/
Placeholder getPlaceholder(final String key);

/**
* Register a placeholder
* @param placeholder The placeholder to register
*/
void add(final Placeholder placeholder);

/**
* Replace placeholders in a string
* @param player The player to replace the placeholders for
* @param text The text to replace the placeholders in
* @return The text with replaced placeholders
*/
String replace(final Player player, final String text);

default List<String> replace(final Player player, final List<String> text){
return text
.stream()
.map(line -> replace(player, line))
.collect(Collectors.toList());
}

/**
* Request the value of the placeholder
* @param player The player to request the value for
* @param params The parameters for the placeholder
* @return The value
*/
String request(final OfflinePlayer player, final String params);

}
8 changes: 8 additions & 0 deletions plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,14 @@
<scope>compile</scope>
</dependency>

<!-- placeholder -->
<dependency>
<groupId>de.minebench.tresor.providers</groupId>
<artifactId>placeholderapi</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>

<!-- economy -->
<dependency>
<groupId>de.minebench.tresor.providers</groupId>
Expand Down
2 changes: 2 additions & 0 deletions plugin/src/main/java/de/minebench/tresor/Tresor.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import de.minebench.tresor.services.authentication.Authentication;
import de.minebench.tresor.services.economy.ModernEconomy;
import de.minebench.tresor.services.hologram.Holograms;
import de.minebench.tresor.services.placeholder.Placeholders;
import de.themoep.hook.bukkit.HookManager;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy;
Expand Down Expand Up @@ -77,6 +78,7 @@ private void loadProviders() {
new ProviderManager(ModernEconomy.class);
new ProviderManager(Permission.class);
new ProviderManager(Chat.class);
new ProviderManager(Placeholders.class);
}

@Override
Expand Down
32 changes: 32 additions & 0 deletions providers/placeholderapi/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>de.minebench.tresor.providers</groupId>
<artifactId>placeholderapi</artifactId>

<parent>
<groupId>de.minebench.tresor</groupId>
<artifactId>tresor-providers</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<repositories>
<repository>
<id>placeholderapi</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.6</version>
<scope>provided</scope>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package de.minebench.tresor.providers.placeholderapi;

import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class PlaceholderAPIExpansion extends PlaceholderExpansion {

private final PlaceholderAPIPlaceholders provider;

public PlaceholderAPIExpansion(final PlaceholderAPIPlaceholders provider) {
this.provider = provider;
}

@Override
public @NotNull String getIdentifier() {
return "tresor";
}

@Override
public @NotNull String getAuthor() {
return "Minebench";
}

@Override
public @NotNull String getVersion() {
return "1.0.0";
}

@Override
public @Nullable String onRequest(final OfflinePlayer player, @NotNull final String params) {
return provider.request(player, params);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package de.minebench.tresor.providers.placeholderapi;

import de.minebench.tresor.Provider;
import de.minebench.tresor.services.placeholder.Placeholder;
import de.minebench.tresor.services.placeholder.Placeholders;
import me.clip.placeholderapi.PlaceholderAPI;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;

import java.util.HashMap;
import java.util.Map;

public class PlaceholderAPIPlaceholders extends Provider<Placeholders, PlaceholderAPIPlugin> implements Placeholders {

private PlaceholderAPIPlugin hooked;

private final Map<String, Placeholder> placeholders = new HashMap<>();

public PlaceholderAPIPlaceholders() {
super(Placeholders.class);

new PlaceholderAPIExpansion(this).register();
}

@Override
public PlaceholderAPIPlugin getHooked() {
if (hooked == null)
hooked = (PlaceholderAPIPlugin) Bukkit.getPluginManager().getPlugin(getName());

return hooked;
}

@Override
public boolean isEnabled() {
return getHooked() != null && getHooked().isEnabled();
}

@Override
public String getName() {
return "PlaceholderAPI";
}

@Override
public Map<String, Placeholder> getRegisteredPlaceholders() {
return this.placeholders;
}

@Override
public Placeholder getPlaceholder(final String key) {
return this.placeholders.get(key);
}

@Override
public void add(final Placeholder placeholder) {
this.placeholders.put(placeholder.getKey(), placeholder);
}

@Override
public String replace(final Player player, final String text) {
return PlaceholderAPI.setPlaceholders(player, text);
}

@Override
public String request(final OfflinePlayer player, final String params) {
final Placeholder placeholder = getPlaceholder(params);

if (placeholder == null)
return "N/A";

return placeholder.request(player);
}
}
3 changes: 3 additions & 0 deletions providers/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
<module>openlogin</module>
<module>librelogin</module>

<!-- placeholder -->
<module>placeholderapi</module>

<!-- economy -->
<module>craftconomy3</module>

Expand Down