diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 11e2923..9f56021 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -1,7 +1,7 @@
[issue]: https://github.com/PlaceholderAPI/PlaceholderAPI/issues/new
[discord]: https://helpch.at/discord
[code of conduct]: https://github.com/PlaceholderAPI/PlaceholderAPI/blob/master/CODE_OF_CONDUCT.md
-[wiki]: https://github.com/PlaceholderAPI/PlaceholderAPI/blob/docs/wiki/wiki
+[wiki]: https://github.com/PlaceholderAPI/PlaceholderAPI/blob/wiki
[master]: https://github.com/PlaceholderAPI/PlaceholderAPI/tree/master
[docs-wiki]: https://github.com/PlaceholderAPI/PlaceholderAPI/tree/docs/wiki
[style]: https://github.com/PlaceholderAPI/PlaceholderAPI/tree/master/config/style
@@ -40,7 +40,8 @@ In those cases should you report the issue to the issue tracker of the expansion
## Pull requests
As an open source project are we welcoming all contributions to improve PlaceholderAPI, being it changes to its code, or contributions to its documentation such as the [Wiki] or the Javadocs.
-**When contributing, make sure to both base of and target the mentioned branch. Pull requests targeting the wrong branch may get closed without a warning.**
+> [!IMPORTANT]
+> When contributing, make sure to both base of and target the mentioned branch. Pull requests targeting the wrong branch may get closed without a warning.
### Code contributions
> **Source and Target Branch:** [`master`][master]
@@ -56,12 +57,10 @@ Javadocs changes should usually be combined with [code contributions](#code-cont
\*This branch may change in the future.
### Wiki contributions
-> **Source and Target Branch:** [`docs/wiki`][docs-wiki]
+> **Source and Target Branch:** [`wiki`][docs-wiki]
-The Wiki of PlaceholderAPI has a unique quirk by having a dedicated [`wiki` folder][wiki] hosting the pages found on the actual wiki itself.
-If you find outdated information, want to add missing expansions/plugins or just like to correct some wrong spelling should you both base of and target your contributions on the `docs/wiki` branch.
-
-**Please only PR changes for the `wiki` folder on the `docs/wiki` branch! Pull requests not following this guidelines will be closed unnanounced.**
+The Wiki of PlaceholderAPI is located on its own dedicated branch, hosting all the assets and files that get used to create it through the usage of GitHub Actions and GitHub Pages.
+We welcome contributions that update outdated information, add new expansions/plugins supporting PlaceholderAPI or even correct spelling mistakes and typos.
## Code of Conduct
We have a [Code of Conduct] to maintain a welcoming atmosphere in this project.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 87244dc..f8075c7 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -25,4 +25,4 @@ Closes N/A
-[Wiki]: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki
+[Wiki]: https://wiki.placeholderapi.com
diff --git a/.github/label-commenter-config.yml b/.github/label-commenter-config.yml
index 852b4bb..a8922ea 100644
--- a/.github/label-commenter-config.yml
+++ b/.github/label-commenter-config.yml
@@ -1,8 +1,8 @@
comment:
footer: "\
----\n\n
- > **Note**\n
- > *This is an automated response created by a **GitHub Action***\n
+ > [!NOTE]\n
+ > *This is an automated response created by a **GitHub Action***
> *Mentioning the bot won't have any effect!*
"
diff --git a/README.md b/README.md
index a6c7291..99868d9 100644
--- a/README.md
+++ b/README.md
@@ -7,18 +7,20 @@
[discord]: https://helpch.at/discord
[spigot]: https://www.spigotmc.org/resources/6245/
-[Expansions cloud]: https://api.extendedclip.com/home
+[hangar]: https://hangar.papermc.io/HelpChat/PlaceholderAPI
+[bbb]: https://builtbybit.com/resources/placeholderapi.24306
+[Expansions cloud]: https://api.placeholderapi.net/home
[placeholder list]: https://helpch.at/placeholders
[statistics]: https://bstats.org/plugin/bukkit/PlaceholderAPI
[ci]: http://ci.extendedclip.com/job/PlaceholderAPI/
[ciImg]: http://ci.extendedclip.com/buildStatus/icon?job=PlaceholderAPI
-[APIversionImg]: https://img.shields.io/nexus/placeholderapi/me.clip/placeholderapi?server=https%3A%2F%2Frepo.extendedclip.com&label=API%20Version
-[logo]: https://raw.githubusercontent.com/PlaceholderAPI/PlaceholderAPI/wiki/img/papi-logo.png
+[APIversionImg]: https://repo.extendedclip.com/api/badge/latest/releases/me/clip/placeholderapi?name=API%20Version
+[logo]: https://wiki.placeholderapi.com/assets/img/papi-logo.png
[contributing]: https://github.com/PlaceholderAPI/PlaceholderAPI/blob/master/.github/CONTRIBUTING.md
-[placeholderexpansion]: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/PlaceholderExpansion
+[placeholderexpansion]: https://wiki.placeholderapi.com/developers/creating-a-placeholderexpansion/
[![logo]][spigot]
@@ -30,7 +32,7 @@
Support for specific plugins are provided either by the plugin itself or through expansions. The expansions may be downloaded in-game through the PAPI Expansion Cloud. There are currently over 240+ expansions that support a wide variety of plugins, such as Essentials, Factions, LuckPerms, and Vault.
-PlaceholderAPI has been downloaded over 1,000,000 times and has been used concurrently on over 40,000 servers, which makes it a must-have for a server of any type or scale.
+PlaceholderAPI has been downloaded over 1,700,000 times on Spigot and has been used concurrently on over 45,000 servers, which makes it a must-have for a server of any type or scale.
## Contribute
If you would like to contribute towards PlaceholderAPI should you take a look at our [Contributing file][contributing] for the ins and outs on how you can do that and what you need to keep in mind.
@@ -47,4 +49,6 @@ If you would like to create your own Placeholder Expansion for PlaceholderAPI, t
- [Expansions Cloud]
- [Placeholder List]
- [Spigot Page][spigot]
+- [Hangar Page][hangar]
+- [BuiltByBit Page][bbb]
- [Plugin Statistics][statistics]
diff --git a/build.gradle.kts b/build.gradle.kts
index ba02025..a26bb6d 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -4,11 +4,11 @@ plugins {
`java-library`
`maven-publish`
id("com.github.hierynomus.license") version "0.16.1"
- id("com.github.johnrengelman.shadow") version "8.1.0"
+ id("io.github.goooler.shadow") version "8.1.7"
}
group = "me.clip"
-version = "2.11.4-DEV-${System.getProperty("BUILD_NUMBER")}"
+version = "2.11.7-DEV-${System.getProperty("BUILD_NUMBER")}"
description = "An awesome placeholder provider!"
@@ -24,9 +24,9 @@ repositories {
dependencies {
implementation("org.bstats:bstats-bukkit:3.0.1")
- implementation("net.kyori:adventure-platform-bukkit:4.3.0")
+ implementation("net.kyori:adventure-platform-bukkit:4.3.3")
- compileOnly("org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT")
+ compileOnly("org.spigotmc:spigot-api:1.21-R0.1-SNAPSHOT")
compileOnlyApi("org.jetbrains:annotations:23.0.0")
testImplementation("org.openjdk.jmh:jmh-core:1.32")
@@ -54,7 +54,7 @@ license {
encoding = "UTF-8"
ext {
- set("year", 2021)
+ set("year", 2024)
}
}
@@ -71,6 +71,7 @@ tasks {
withType {
options.encoding = "UTF-8"
+ options.release = 8
}
withType {
@@ -88,6 +89,8 @@ tasks {
relocate("org.bstats", "me.clip.placeholderapi.metrics")
relocate("net.kyori", "me.clip.placeholderapi.libs.kyori")
+
+ exclude("META-INF/versions/**")
}
test {
diff --git a/config/headers/jsonmessage.txt b/config/headers/jsonmessage.txt
index 9fddec6..fab9d03 100644
--- a/config/headers/jsonmessage.txt
+++ b/config/headers/jsonmessage.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2018-2021 Peter Blood
+Copyright (c) 2018-2024 Peter Blood
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7454180..ccebba7 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e1bef7e..2617362 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
+networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index c53aefa..79a61d4 100755
--- a/gradlew
+++ b/gradlew
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright 2015-2021 the original authors.
+# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -32,10 +32,10 @@
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
-# * expansions $var, ${var}, ${var:-default}, ${var+SET},
-# ${var#prefix}, ${var%suffix}, and $( cmd );
-# * compound commands having a testable exit status, especially case;
-# * various built-in commands including command, set, and ulimit.
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,10 +80,10 @@ do
esac
done
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-APP_NAME="Gradle"
+# This is normally unused
+# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -143,12 +143,16 @@ fi
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -205,6 +209,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/gradlew.bat b/gradlew.bat
index 107acd3..93e3f59 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +25,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
diff --git a/src/main/java/me/clip/placeholderapi/PlaceholderAPI.java b/src/main/java/me/clip/placeholderapi/PlaceholderAPI.java
index a5228db..97b6c48 100644
--- a/src/main/java/me/clip/placeholderapi/PlaceholderAPI.java
+++ b/src/main/java/me/clip/placeholderapi/PlaceholderAPI.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -136,8 +136,8 @@ public final class PlaceholderAPI {
* @return String containing all translated placeholders
*/
@NotNull
- public static List setBracketPlaceholders(final OfflinePlayer player,
- @NotNull final List text) {
+ public static List<@NotNull String> setBracketPlaceholders(final OfflinePlayer player,
+ @NotNull final List<@NotNull String> text) {
return text.stream().map(line -> setBracketPlaceholders(player, line))
.collect(Collectors.toList());
}
@@ -150,7 +150,8 @@ public final class PlaceholderAPI {
* @param text Text to set the placeholder values in
* @return String containing all translated placeholders
*/
- public static String setBracketPlaceholders(Player player, String text) {
+ @NotNull
+ public static String setBracketPlaceholders(Player player, @NotNull String text) {
return setBracketPlaceholders((OfflinePlayer) player, text);
}
@@ -162,7 +163,8 @@ public final class PlaceholderAPI {
* @param text List of Strings to set the placeholder values in
* @return String containing all translated placeholders
*/
- public static List setBracketPlaceholders(Player player, List text) {
+ @NotNull
+ public static List setBracketPlaceholders(Player player, @NotNull List text) {
return setBracketPlaceholders((OfflinePlayer) player, text);
}
diff --git a/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java b/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java
index 1fc84bf..e4af6e0 100644
--- a/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java
+++ b/src/main/java/me/clip/placeholderapi/PlaceholderAPIPlugin.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,6 +21,7 @@
package me.clip.placeholderapi;
import java.text.SimpleDateFormat;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import me.clip.placeholderapi.commands.PlaceholderCommandRouter;
@@ -55,7 +56,17 @@ public final class PlaceholderAPIPlugin extends JavaPlugin {
private static PlaceholderAPIPlugin instance;
static {
- final String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
+ String version = Bukkit.getServer().getBukkitVersion().split("-")[0];
+ String suffix;
+ if (version.chars()
+ .filter(c -> c == '.')
+ .count() == 1) {
+ suffix = "R1";
+ version = 'v' + version.replace('.', '_') + '_' + suffix;
+ } else {
+ int minor = Integer.parseInt(version.split("\\.")[2].charAt(0) + "");
+ version = 'v' + version.replace('.', '_').replace("_" + minor, "") + '_' + "R" + (minor - 1);
+ }
boolean isSpigot;
try {
@@ -127,6 +138,7 @@ public final class PlaceholderAPIPlugin extends JavaPlugin {
}
}
+ @Deprecated
public static Version getServerVersion() {
return VERSION;
}
diff --git a/src/main/java/me/clip/placeholderapi/PlaceholderHook.java b/src/main/java/me/clip/placeholderapi/PlaceholderHook.java
index 622260f..9906b8a 100644
--- a/src/main/java/me/clip/placeholderapi/PlaceholderHook.java
+++ b/src/main/java/me/clip/placeholderapi/PlaceholderHook.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@ public abstract class PlaceholderHook {
@Nullable
public String onRequest(final OfflinePlayer player, @NotNull final String params) {
if (player != null && player.isOnline()) {
- return onPlaceholderRequest((Player) player, params);
+ return onPlaceholderRequest(player.getPlayer(), params);
}
return onPlaceholderRequest(null, params);
diff --git a/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommand.java b/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommand.java
index 53d7c8e..8136168 100644
--- a/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommand.java
+++ b/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommand.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java b/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java
index cf6b191..7ea3f42 100644
--- a/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java
+++ b/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloud.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloud.java
index 5ebbd70..4d03de1 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloud.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloud.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudClear.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudClear.java
index 6d6121c..6083d5d 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudClear.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudClear.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudDownload.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudDownload.java
index 5717447..1085eb8 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudDownload.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudDownload.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
package me.clip.placeholderapi.commands.impl.cloud;
+import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
@@ -37,6 +38,16 @@ public final class CommandECloudDownload extends PlaceholderCommand {
super("download");
}
+ private boolean isBlockedExpansion(String name) {
+ String env = System.getenv("PAPI_BLOCKED_EXPANSIONS");
+ if (env == null) {
+ return false;
+ }
+
+ return Arrays.stream(env.split(","))
+ .anyMatch(s -> s.equalsIgnoreCase(name));
+ }
+
@Override
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin,
@NotNull final CommandSender sender, @NotNull final String alias,
@@ -47,6 +58,12 @@ public final class CommandECloudDownload extends PlaceholderCommand {
return;
}
+ if (isBlockedExpansion(params.get(0))) {
+ Msg.msg(sender,
+ "&cThis expansion can't be downloaded.");
+ return;
+ }
+
final CloudExpansion expansion = plugin.getCloudExpansionManager()
.findCloudExpansionByName(params.get(0)).orElse(null);
if (expansion == null) {
@@ -55,6 +72,11 @@ public final class CommandECloudDownload extends PlaceholderCommand {
return;
}
+ if (!expansion.isVerified()) {
+ Msg.msg(sender, "&cThe expansion '&f" + params.get(0) + "&c' is not verified and can only be downloaded manually from &fhttps://placeholderapi.com/ecloud");
+ return;
+ }
+
final CloudExpansion.Version version;
if (params.size() < 2) {
version = expansion.getVersion(expansion.getLatestVersion());
@@ -86,9 +108,7 @@ public final class CommandECloudDownload extends PlaceholderCommand {
.getVersion() + "] &ato file: &f" + file.getName(),
"&aMake sure to type &f/papi reload &ato enable your new expansion!");
- plugin.getCloudExpansionManager().clean();
- plugin.getCloudExpansionManager()
- .fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
+ plugin.getCloudExpansionManager().load();
});
}
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionInfo.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionInfo.java
index 7e0c5b2..d7b9b97 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionInfo.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionInfo.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionList.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionList.java
index 9334a73..e5075bb 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionList.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionList.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionPlaceholders.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionPlaceholders.java
index e1def67..f379365 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionPlaceholders.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudExpansionPlaceholders.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudRefresh.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudRefresh.java
index fb11086..c814d9e 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudRefresh.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudRefresh.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -38,9 +38,7 @@ public final class CommandECloudRefresh extends PlaceholderCommand {
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin,
@NotNull final CommandSender sender, @NotNull final String alias,
@NotNull @Unmodifiable final List params) {
- plugin.getCloudExpansionManager().clean();
- plugin.getCloudExpansionManager()
- .fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
+ plugin.getCloudExpansionManager().load();
Msg.msg(sender,
"&aThe eCloud manager has been refreshed!");
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudStatus.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudStatus.java
index b8e6ab1..b9b7ee6 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudStatus.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudStatus.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudUpdate.java b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudUpdate.java
index cdd8233..4aa8454 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudUpdate.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/cloud/CommandECloudUpdate.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandDump.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandDump.java
index 6d236d1..f9d848a 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandDump.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandDump.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -200,7 +200,9 @@ public final class CommandDump extends PlaceholderCommand {
for (final Plugin other : plugins) {
builder.append(" ")
.append(String.format("%-" + size + "s", other.getName()))
- .append(" [Version: ")
+ .append(" [Authors: [")
+ .append(String.join(", ", other.getDescription().getAuthors()))
+ .append("], Version: ")
.append(other.getDescription().getVersion())
.append("]")
.append("\n");
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionRegister.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionRegister.java
index c6085b6..a37d793 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionRegister.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionRegister.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@ public final class CommandExpansionRegister extends PlaceholderCommand {
final LocalExpansionManager manager = plugin.getLocalExpansionManager();
final File file = new File(manager.getExpansionsFolder(), params.get(0));
- if (!file.exists()) {
+ if (!file.exists() || !file.getParentFile().equals(manager.getExpansionsFolder())) {
Msg.msg(sender,
"&cThe file &f" + file.getName() + "&c doesn't exist!");
return;
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionUnregister.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionUnregister.java
index bf0861b..ff6c6da 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionUnregister.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandExpansionUnregister.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandHelp.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandHelp.java
index b648f1d..47c1da8 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandHelp.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandHelp.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandInfo.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandInfo.java
index 3d98b61..95e84c1 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandInfo.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandInfo.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandList.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandList.java
index 6d8506b..0284b89 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandList.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandList.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandParse.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandParse.java
index 3793116..1ff59b9 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandParse.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandParse.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -87,7 +87,8 @@ public final class CommandParse extends PlaceholderCommand {
final boolean command) {
if (params.size() < 2) {
Msg.msg(sender,
- "&cYou must supply a target, and a message: &b/papi " + (broadcast ? "bcparse" : "parse")
+ "&cYou must provide a target and message: &b/papi "
+ + (command ? "cmdparse" : (broadcast ? "bcparse" : "parse"))
+ " &7{target} &a{message}");
return;
}
@@ -132,24 +133,49 @@ public final class CommandParse extends PlaceholderCommand {
@NotNull @Unmodifiable final List params) {
if (params.size() < 3) {
Msg.msg(sender,
- "&cYou must supply two targets, and a message: &b/papi parserel &7{target one} {target two} &a{message}");
+ "&cYou must supply two targets, and a message: &b/papi parserel &7{target one} "
+ + "{target two} &a{message}");
return;
}
-
- final OfflinePlayer targetOne = resolvePlayer(params.get(0));
- if (targetOne == null || !targetOne.isOnline()) {
+
+ OfflinePlayer playerOne;
+
+ if ("me".equalsIgnoreCase(params.get(0))) {
+ if (!(sender instanceof Player)) {
+ Msg.msg(sender, "&cYou must be a player to use &7me&c as a target!");
+ return;
+ }
+
+ playerOne = ((Player) sender);
+ } else {
+ playerOne = resolvePlayer(params.get(0));
+ }
+
+ if (playerOne == null || !playerOne.isOnline()) {
Msg.msg(sender, "&cFailed to find player: &f" + params.get(0));
return;
}
-
- final OfflinePlayer targetTwo = resolvePlayer(params.get(1));
- if (targetTwo == null || !targetTwo.isOnline()) {
+
+ OfflinePlayer playerTwo;
+
+ if ("me".equalsIgnoreCase(params.get(1))) {
+ if (!(sender instanceof Player)) {
+ Msg.msg(sender, "&cYou must be a player to use &7me&c as a target!");
+ return;
+ }
+
+ playerTwo = ((Player) sender);
+ } else {
+ playerTwo = resolvePlayer(params.get(1));
+ }
+
+ if (playerTwo == null || !playerTwo.isOnline()) {
Msg.msg(sender, "&cFailed to find player: &f" + params.get(1));
return;
}
final String message = PlaceholderAPI
- .setRelationalPlaceholders(((Player) targetOne), ((Player) targetTwo),
+ .setRelationalPlaceholders((Player) playerOne, (Player) playerTwo,
String.join(" ", params.subList(2, params.size())));
sender.sendMessage(message);
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandReload.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandReload.java
index ca48275..44e1b43 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandReload.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandReload.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandVersion.java b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandVersion.java
index 0c7a285..f637d9c 100644
--- a/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandVersion.java
+++ b/src/main/java/me/clip/placeholderapi/commands/impl/local/CommandVersion.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/configuration/ExpansionSort.java b/src/main/java/me/clip/placeholderapi/configuration/ExpansionSort.java
index ed4211d..87a795c 100644
--- a/src/main/java/me/clip/placeholderapi/configuration/ExpansionSort.java
+++ b/src/main/java/me/clip/placeholderapi/configuration/ExpansionSort.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/configuration/PlaceholderAPIConfig.java b/src/main/java/me/clip/placeholderapi/configuration/PlaceholderAPIConfig.java
index e10733e..0dc895b 100644
--- a/src/main/java/me/clip/placeholderapi/configuration/PlaceholderAPIConfig.java
+++ b/src/main/java/me/clip/placeholderapi/configuration/PlaceholderAPIConfig.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -38,10 +38,6 @@ public final class PlaceholderAPIConfig {
return plugin.getConfig().getBoolean("check_updates");
}
- public boolean cloudAllowUnverifiedExpansions() {
- return plugin.getConfig().getBoolean("cloud_allow_unverified_expansions");
- }
-
public boolean isCloudEnabled() {
return plugin.getConfig().getBoolean("cloud_enabled");
diff --git a/src/main/java/me/clip/placeholderapi/events/ExpansionRegisterEvent.java b/src/main/java/me/clip/placeholderapi/events/ExpansionRegisterEvent.java
index f50ea75..21df3ab 100644
--- a/src/main/java/me/clip/placeholderapi/events/ExpansionRegisterEvent.java
+++ b/src/main/java/me/clip/placeholderapi/events/ExpansionRegisterEvent.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/events/ExpansionUnregisterEvent.java b/src/main/java/me/clip/placeholderapi/events/ExpansionUnregisterEvent.java
index 0e630d9..e899b60 100644
--- a/src/main/java/me/clip/placeholderapi/events/ExpansionUnregisterEvent.java
+++ b/src/main/java/me/clip/placeholderapi/events/ExpansionUnregisterEvent.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/events/ExpansionsLoadedEvent.java b/src/main/java/me/clip/placeholderapi/events/ExpansionsLoadedEvent.java
index 56e7ae8..872d275 100644
--- a/src/main/java/me/clip/placeholderapi/events/ExpansionsLoadedEvent.java
+++ b/src/main/java/me/clip/placeholderapi/events/ExpansionsLoadedEvent.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/events/PlaceholderHookUnloadEvent.java b/src/main/java/me/clip/placeholderapi/events/PlaceholderHookUnloadEvent.java
index 48d2edf..e0a8ce5 100644
--- a/src/main/java/me/clip/placeholderapi/events/PlaceholderHookUnloadEvent.java
+++ b/src/main/java/me/clip/placeholderapi/events/PlaceholderHookUnloadEvent.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/exceptions/NoDefaultCommandException.java b/src/main/java/me/clip/placeholderapi/exceptions/NoDefaultCommandException.java
index 203c48e..99c9602 100644
--- a/src/main/java/me/clip/placeholderapi/exceptions/NoDefaultCommandException.java
+++ b/src/main/java/me/clip/placeholderapi/exceptions/NoDefaultCommandException.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/Cacheable.java b/src/main/java/me/clip/placeholderapi/expansion/Cacheable.java
index 0ebc2a8..a12a595 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/Cacheable.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/Cacheable.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/Cleanable.java b/src/main/java/me/clip/placeholderapi/expansion/Cleanable.java
index 48967f5..ae14598 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/Cleanable.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/Cleanable.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/Configurable.java b/src/main/java/me/clip/placeholderapi/expansion/Configurable.java
index ad38418..8b2558e 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/Configurable.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/Configurable.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/NMSVersion.java b/src/main/java/me/clip/placeholderapi/expansion/NMSVersion.java
index 37c18b8..a9a8940 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/NMSVersion.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/NMSVersion.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -46,7 +46,12 @@ public enum NMSVersion {
SPIGOT_1_18_R1("v1_18_R1"),
SPIGOT_1_19_R1("v1_19_R1"),
SPIGOT_1_19_R2("v1_19_R2"),
- SPIGOT_1_19_R3("v1_19_R3");
+ SPIGOT_1_19_R3("v1_19_R3"),
+ SPIGOT_1_20_R1("v1_20_R1"),
+ SPIGOT_1_20_R2("v1_20_R2"),
+ SPIGOT_1_20_R3("v1_20_R3"),
+ SPIGOT_1_20_R4("v1_20_R4"),
+ SPIGOT_1_21_R1("v1_21_R1");
private final String version;
diff --git a/src/main/java/me/clip/placeholderapi/expansion/PlaceholderExpansion.java b/src/main/java/me/clip/placeholderapi/expansion/PlaceholderExpansion.java
index 5cd3029..3fb24f9 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/PlaceholderExpansion.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/PlaceholderExpansion.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -40,6 +40,14 @@ import org.jetbrains.annotations.Nullable;
*/
public abstract class PlaceholderExpansion extends PlaceholderHook {
+ /**
+ * The type is {@link Type#INTERNAL} by default.
+ * For external expansions, the type is updated on {@link me.clip.placeholderapi.expansion.manager.LocalExpansionManager#register(Class) register}.
+ * @since 2.11.4
+ */
+ @ApiStatus.Internal
+ protected Type expansionType = Type.INTERNAL;
+
/**
* The placeholder identifier of this expansion. May not contain {@literal %},
* {@literal {}} or _
@@ -159,6 +167,27 @@ public abstract class PlaceholderExpansion extends PlaceholderHook {
return PlaceholderAPIPlugin.getInstance();
}
+ /**
+ * Get the type of the expansion
+ *
+ * @return the type of the expansion
+ * @since 2.11.4
+ */
+ @ApiStatus.Internal
+ public Type getExpansionType() {
+ return expansionType;
+ }
+
+ /**
+ * Set the type of the expansion
+ * @param expansionType the new type
+ * @since 2.11.4
+ */
+ @ApiStatus.Internal
+ public void setExpansionType(Type expansionType) {
+ this.expansionType = expansionType;
+ }
+
// === Configuration ===
/**
@@ -166,7 +195,7 @@ public abstract class PlaceholderExpansion extends PlaceholderHook {
* null when not specified.
*
You may use the {@link Configurable} interface to define default values set
*
- * @return ConfigurationSection that this epxpansion has.
+ * @return ConfigurationSection that this expansion has.
*/
@Nullable
public final ConfigurationSection getConfigSection() {
@@ -394,8 +423,8 @@ public abstract class PlaceholderExpansion extends PlaceholderHook {
*/
@Override
public final String toString() {
- return String.format("PlaceholderExpansion[name: '%s', author: '%s', version: '%s']", getName(),
- getAuthor(), getVersion());
+ return String.format("PlaceholderExpansion[name: '%s', author: '%s', version: '%s', type: '%s']", getName(),
+ getAuthor(), getVersion(), getExpansionType());
}
// === Deprecated API ===
@@ -432,4 +461,19 @@ public abstract class PlaceholderExpansion extends PlaceholderHook {
public String getLink() {
return null;
}
+
+ public enum Type {
+
+ /**
+ * An expansion provided by a plugin is considered internal
+ */
+ INTERNAL,
+
+ /**
+ * An expansion loaded from the expansions folder is considered external
+ */
+ EXTERNAL
+
+ }
+
}
diff --git a/src/main/java/me/clip/placeholderapi/expansion/Relational.java b/src/main/java/me/clip/placeholderapi/expansion/Relational.java
index 9d39785..4b7c7d4 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/Relational.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/Relational.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/Taskable.java b/src/main/java/me/clip/placeholderapi/expansion/Taskable.java
index a26b661..b4bea67 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/Taskable.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/Taskable.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/Version.java b/src/main/java/me/clip/placeholderapi/expansion/Version.java
index 4cbb1ab..d9ac195 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/Version.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/Version.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
package me.clip.placeholderapi.expansion;
+@Deprecated
public final class Version {
private final boolean isSpigot;
diff --git a/src/main/java/me/clip/placeholderapi/expansion/VersionSpecific.java b/src/main/java/me/clip/placeholderapi/expansion/VersionSpecific.java
index 97ddf42..51080cc 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/VersionSpecific.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/VersionSpecific.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -27,7 +27,10 @@ package me.clip.placeholderapi.expansion;
* with that version.
*
* @author Ryan McCarthy
+ *
+ * @deprecated Will be removed in a future release.
*/
+@Deprecated
public interface VersionSpecific {
/**
diff --git a/src/main/java/me/clip/placeholderapi/expansion/cloud/CloudExpansion.java b/src/main/java/me/clip/placeholderapi/expansion/cloud/CloudExpansion.java
index cc644d7..f5d158f 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/cloud/CloudExpansion.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/cloud/CloudExpansion.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/expansion/manager/CloudExpansionManager.java b/src/main/java/me/clip/placeholderapi/expansion/manager/CloudExpansionManager.java
index 11d7cb3..ed152b7 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/manager/CloudExpansionManager.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/manager/CloudExpansionManager.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ import org.jetbrains.annotations.Unmodifiable;
public final class CloudExpansionManager {
@NotNull
- private static final String API_URL = "http://api.extendedclip.com/v2/";
+ private static final String API_URL = "http://api.placeholderapi.net/v2/";
@NotNull
private static final Gson GSON = new Gson();
@@ -100,7 +100,7 @@ public final class CloudExpansionManager {
public void load() {
clean();
- fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
+ fetch();
}
public void kill() {
@@ -170,7 +170,7 @@ public final class CloudExpansionManager {
await.clear();
}
- public void fetch(final boolean allowUnverified) {
+ public void fetch() {
plugin.getLogger().info("Fetching available expansion information...");
ASYNC_EXECUTOR.submit(
@@ -190,9 +190,6 @@ public final class CloudExpansionManager {
|| expansion.getVersion(expansion.getLatestVersion()) == null) {
toRemove.add(entry.getKey());
}
- if (!allowUnverified && !expansion.isVerified()) {
- toRemove.add(entry.getKey());
- }
}
for (String name : toRemove) {
@@ -203,7 +200,7 @@ public final class CloudExpansionManager {
plugin.getLogger().log(Level.WARNING, "Failed to download expansion information", e);
}
- // loop thru what's left on the main thread
+ // loop through what's left on the main thread
plugin
.getServer()
.getScheduler()
diff --git a/src/main/java/me/clip/placeholderapi/expansion/manager/LocalExpansionManager.java b/src/main/java/me/clip/placeholderapi/expansion/manager/LocalExpansionManager.java
index 80c785a..1584a5f 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/manager/LocalExpansionManager.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/manager/LocalExpansionManager.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -187,6 +187,8 @@ public final class LocalExpansionManager implements Listener {
return Optional.empty();
}
}
+
+ expansion.setExpansionType(PlaceholderExpansion.Type.EXTERNAL);
if (!expansion.register()) {
Msg.warn("Cannot load expansion %s due to an unknown issue.", expansion.getIdentifier());
@@ -209,6 +211,11 @@ public final class LocalExpansionManager implements Listener {
return Optional.empty();
}
+ /**
+ * Attempt to register a {@link PlaceholderExpansion}
+ * @param expansion the expansion to register
+ * @return if the expansion was registered
+ */
@ApiStatus.Internal
public boolean register(@NotNull final PlaceholderExpansion expansion) {
final String identifier = expansion.getIdentifier().toLowerCase(Locale.ROOT);
@@ -216,10 +223,10 @@ public final class LocalExpansionManager implements Listener {
if (!expansion.canRegister()) {
return false;
}
-
- if (expansions.containsKey(identifier)) {
- Msg.warn("Failed to load expansion %s. Identifier is already in use.",
- expansion.getIdentifier());
+
+ // Avoid loading two external expansions with the same identifier
+ if (expansion.getExpansionType() == PlaceholderExpansion.Type.EXTERNAL && expansions.containsKey(identifier)) {
+ Msg.warn("Failed to load external expansion %s. Identifier is already in use.", expansion.getIdentifier());
return false;
}
@@ -287,21 +294,24 @@ public final class LocalExpansionManager implements Listener {
Bukkit.getPluginManager().registerEvents(((Listener) expansion), plugin);
}
- Msg.info("Successfully registered expansion: %s [%s]", expansion.getIdentifier(),
- expansion.getVersion());
+ Msg.info(
+ "Successfully registered %s expansion: %s [%s]",
+ expansion.getExpansionType().name().toLowerCase(),
+ expansion.getIdentifier(),
+ expansion.getVersion()
+ );
if (expansion instanceof Taskable) {
((Taskable) expansion).start();
}
- if (plugin.getPlaceholderAPIConfig().isCloudEnabled()) {
- final Optional cloudExpansionOptional =
- plugin.getCloudExpansionManager().findCloudExpansionByName(identifier);
+ // Check eCloud for updates only if the expansion is external
+ if (plugin.getPlaceholderAPIConfig().isCloudEnabled() && expansion.getExpansionType() == PlaceholderExpansion.Type.EXTERNAL) {
+ final Optional cloudExpansionOptional = plugin.getCloudExpansionManager().findCloudExpansionByName(identifier);
if (cloudExpansionOptional.isPresent()) {
CloudExpansion cloudExpansion = cloudExpansionOptional.get();
cloudExpansion.setHasExpansion(true);
- cloudExpansion.setShouldUpdate(
- !cloudExpansion.getLatestVersion().equals(expansion.getVersion()));
+ cloudExpansion.setShouldUpdate(!cloudExpansion.getLatestVersion().equals(expansion.getVersion()));
}
}
diff --git a/src/main/java/me/clip/placeholderapi/expansion/manager/MethodSignature.java b/src/main/java/me/clip/placeholderapi/expansion/manager/MethodSignature.java
index 87519b1..095c5b5 100644
--- a/src/main/java/me/clip/placeholderapi/expansion/manager/MethodSignature.java
+++ b/src/main/java/me/clip/placeholderapi/expansion/manager/MethodSignature.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/listeners/ServerLoadEventListener.java b/src/main/java/me/clip/placeholderapi/listeners/ServerLoadEventListener.java
index ca8703d..7fdfba3 100644
--- a/src/main/java/me/clip/placeholderapi/listeners/ServerLoadEventListener.java
+++ b/src/main/java/me/clip/placeholderapi/listeners/ServerLoadEventListener.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/replacer/CharsReplacer.java b/src/main/java/me/clip/placeholderapi/replacer/CharsReplacer.java
index 8848648..e0fdc88 100644
--- a/src/main/java/me/clip/placeholderapi/replacer/CharsReplacer.java
+++ b/src/main/java/me/clip/placeholderapi/replacer/CharsReplacer.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/replacer/Replacer.java b/src/main/java/me/clip/placeholderapi/replacer/Replacer.java
index b96140a..e0c6e48 100644
--- a/src/main/java/me/clip/placeholderapi/replacer/Replacer.java
+++ b/src/main/java/me/clip/placeholderapi/replacer/Replacer.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/updatechecker/UpdateChecker.java b/src/main/java/me/clip/placeholderapi/updatechecker/UpdateChecker.java
index 8001d61..ac3b137 100644
--- a/src/main/java/me/clip/placeholderapi/updatechecker/UpdateChecker.java
+++ b/src/main/java/me/clip/placeholderapi/updatechecker/UpdateChecker.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/util/FileUtil.java b/src/main/java/me/clip/placeholderapi/util/FileUtil.java
index 83c4a1f..5d41c8f 100644
--- a/src/main/java/me/clip/placeholderapi/util/FileUtil.java
+++ b/src/main/java/me/clip/placeholderapi/util/FileUtil.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/util/Format.java b/src/main/java/me/clip/placeholderapi/util/Format.java
index 0a6bfcf..a149ec5 100644
--- a/src/main/java/me/clip/placeholderapi/util/Format.java
+++ b/src/main/java/me/clip/placeholderapi/util/Format.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/util/Futures.java b/src/main/java/me/clip/placeholderapi/util/Futures.java
index c29892f..deb0e46 100644
--- a/src/main/java/me/clip/placeholderapi/util/Futures.java
+++ b/src/main/java/me/clip/placeholderapi/util/Futures.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/util/Msg.java b/src/main/java/me/clip/placeholderapi/util/Msg.java
index 98b9e09..84307c7 100644
--- a/src/main/java/me/clip/placeholderapi/util/Msg.java
+++ b/src/main/java/me/clip/placeholderapi/util/Msg.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/util/TimeFormat.java b/src/main/java/me/clip/placeholderapi/util/TimeFormat.java
index 29bd2d7..f66f9da 100644
--- a/src/main/java/me/clip/placeholderapi/util/TimeFormat.java
+++ b/src/main/java/me/clip/placeholderapi/util/TimeFormat.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/java/me/clip/placeholderapi/util/TimeUtil.java b/src/main/java/me/clip/placeholderapi/util/TimeUtil.java
index 17c261f..d23a571 100644
--- a/src/main/java/me/clip/placeholderapi/util/TimeUtil.java
+++ b/src/main/java/me/clip/placeholderapi/util/TimeUtil.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 6fa0861..26f937a 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,17 +1,16 @@
# PlaceholderAPI
-# Version: @version@
+# Version: ${version}
# Created by: extended_clip
# Contributors: https://github.com/PlaceholderAPI/PlaceholderAPI/graphs/contributors
# Issues: https://github.com/PlaceholderAPI/PlaceholderAPI/issues
-# Expansions: https://api.extendedclip.com/all/
-# Wiki: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki
+# Expansions: https://placeholderapi.com/ecloud
+# Wiki: https://wiki.placeholderapi.com/
# Discord: https://helpch.at/discord
# No placeholders are provided with this plugin by default.
# Download placeholders: /papi ecloud
check_updates: true
cloud_enabled: true
cloud_sorting: "name"
-cloud_allow_unverified_expansions: false
boolean:
'true': 'yes'
'false': 'no'
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 077b274..84c3f5f 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -37,7 +37,6 @@ permissions:
placeholderapi.ecloud.info: true
placeholderapi.ecloud.list: true
placeholderapi.ecloud.clear: true
- placeholderapi.ecloud.toggle: true
placeholderapi.ecloud.status: true
placeholderapi.ecloud.update: true
placeholderapi.ecloud.refresh: true
@@ -82,9 +81,6 @@ permissions:
placeholderapi.ecloud.clear:
default: "op"
description: "Allows you to clear the local eCloud expansion cache"
- placeholderapi.ecloud.toggle:
- default: "op"
- description: "Allows you to toggle/enable/disable the eCloud manager"
placeholderapi.ecloud.status:
default: "op"
description: "Allows you to view the status of eCloud expansions"
@@ -99,4 +95,4 @@ permissions:
description: "Allows you to download an expansion from the eCloud"
placeholderapi.ecloud.placeholders:
default: "op"
- description: "Allows you to view the placeholders of a eCloud expansion"
\ No newline at end of file
+ description: "Allows you to view the placeholders of a eCloud expansion"
diff --git a/src/test/java/me/clip/placeholderapi/Values.java b/src/test/java/me/clip/placeholderapi/Values.java
index f985ad9..d3d1f63 100644
--- a/src/test/java/me/clip/placeholderapi/Values.java
+++ b/src/test/java/me/clip/placeholderapi/Values.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/test/java/me/clip/placeholderapi/replacer/ReplacerBenchmarks.java b/src/test/java/me/clip/placeholderapi/replacer/ReplacerBenchmarks.java
index a824318..e08de47 100644
--- a/src/test/java/me/clip/placeholderapi/replacer/ReplacerBenchmarks.java
+++ b/src/test/java/me/clip/placeholderapi/replacer/ReplacerBenchmarks.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/test/java/me/clip/placeholderapi/replacer/ReplacerUnitTester.java b/src/test/java/me/clip/placeholderapi/replacer/ReplacerUnitTester.java
index 5f1148e..bb079e2 100644
--- a/src/test/java/me/clip/placeholderapi/replacer/ReplacerUnitTester.java
+++ b/src/test/java/me/clip/placeholderapi/replacer/ReplacerUnitTester.java
@@ -2,7 +2,7 @@
* This file is part of PlaceholderAPI
*
* PlaceholderAPI
- * Copyright (c) 2015 - 2021 PlaceholderAPI Team
+ * Copyright (c) 2015 - 2024 PlaceholderAPI Team
*
* PlaceholderAPI free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by