Skip to content

Commit 50b4b01

Browse files
WunderoWundero
Wundero
authored and
Wundero
committed
Refactoring
Moved all interfaces (including annotations) to main package, and all other classes into impl subpackages. Added ExpansionBuilder interface for better support for other potentially implementing plugins. At some point I should test to make sure I can replace this plugin with another one which does the same thing. (I will eventually make Expansion an interface detailing what the current class does, and rename the current ExpansionImpl, but until then I will leave this as is.) Better builder docs in one place. Better builder creation through service. In reality, it would make no sense for another plugin to implement the service; it supports functions that are simply signatures of the code in this plugin, and the code in this plugin is already here; it would be like implementing SpongeCommon again. One big example is the annotations system: sure, someone else could do it, but why go through the extra effort to create something either (a): the exact same, using ASM bytecode generation, which I should mention took A LONG TIME to figure out, even with aids; or (b): slower than the current implementation, by using reflection method calls, which can be 3 to 4 times slower than the INVOKEVIRTUAL opcode (and for a plugin like this, where speed can be important for parsing due to the fact that certain plugins using the service may require placeholders to update 20 times per second, this does make a difference. Of course, if the implementation of the expansion is slow, it makes no difference, but for the default placeholders and/or properly coded placeholders (that use caches and high-speed calls), it is nice to be able to do this quickly.) Because of this, I will likely not have true support for other implementing plugins for some time, if ever, so I wouldn't expect much change in the future moving towards that goal. My personal goal is to offload as much as possible into the plugin, so that users of the service can have minimal boilderplate code. Unfortunately for now, the ExpansionBuilder is a bit of a step back, but I will try to provide quick defaults in the future. I think I type too much lol.
1 parent dd6d105 commit 50b4b01

27 files changed

+730
-301
lines changed

src/main/java/me/rojo8399/placeholderapi/ExpansionBuilder.java

Lines changed: 504 additions & 0 deletions
Large diffs are not rendered by default.

src/main/java/me/rojo8399/placeholderapi/placeholder/Listening.java renamed to src/main/java/me/rojo8399/placeholderapi/Listening.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi;
2525

2626
/**
2727
* This annotation denotes whether the class should be registered for listeners.

src/main/java/me/rojo8399/placeholderapi/placeholder/Observer.java renamed to src/main/java/me/rojo8399/placeholderapi/Observer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi;
2525

2626
import static java.lang.annotation.ElementType.PARAMETER;
2727
import static java.lang.annotation.RetentionPolicy.RUNTIME;

src/main/java/me/rojo8399/placeholderapi/placeholder/Placeholder.java renamed to src/main/java/me/rojo8399/placeholderapi/Placeholder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi;
2525

2626
import static java.lang.annotation.ElementType.METHOD;
2727
import static java.lang.annotation.RetentionPolicy.RUNTIME;

src/main/java/me/rojo8399/placeholderapi/PlaceholderService.java

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@ of this software and associated documentation files (the "Software"), to deal
3232
import org.spongepowered.api.text.Text;
3333
import org.spongepowered.api.text.TextTemplate;
3434

35-
import me.rojo8399.placeholderapi.placeholder.Expansion;
36-
import me.rojo8399.placeholderapi.placeholder.ExpansionBuilder;
37-
import me.rojo8399.placeholderapi.utils.TextUtils;
38-
import me.rojo8399.placeholderapi.utils.TypeUtils;
35+
import me.rojo8399.placeholderapi.impl.placeholder.Expansion;
36+
import me.rojo8399.placeholderapi.impl.utils.TextUtils;
37+
import me.rojo8399.placeholderapi.impl.utils.TypeUtils;
3938

4039
public interface PlaceholderService {
4140

@@ -51,10 +50,48 @@ public interface PlaceholderService {
5150
*
5251
* @return the expansion builder.
5352
*/
54-
public default <S, O, V> ExpansionBuilder<S, O, V> createBuilder() {
55-
return ExpansionBuilder.builder();
53+
public <S, O, V> ExpansionBuilder<S, O, V, ?> builder();
54+
55+
/**
56+
* Create an expansion builder based off of the '@Placeholder' annotated
57+
* method with the provided id.
58+
*
59+
* This method returns a builder that is ready to register. This means that
60+
* the builder has the id, plugin and function fields filled in, and can
61+
* therefor be built and registered immediately.
62+
*
63+
* @return the expansion builder.
64+
*/
65+
public default ExpansionBuilder<?, ?, ?, ?> load(Object handle, String id, Object plugin) {
66+
return builder().from(handle, id, plugin);
5667
}
5768

69+
/**
70+
* Create new ExpansionBuilders for all methods annotated with
71+
* '@Placeholder' in an object.
72+
*
73+
* This is equivalent to calling load(handle, id, plugin) on all methods in
74+
* an object, but much faster.
75+
*
76+
* Every builder is ready to register upon reception. This means that all
77+
* builders have the necessary id, function and plugin fields filled in, and
78+
* all that is left are the optional fields.
79+
*
80+
* This method is likely to be the one primarily used by developers
81+
* registering placeholders. Since the annotated method system is more
82+
* powerful, this method allows quick use of that system and provides a
83+
* streamable list of builders. The only downside is that it takes a bit
84+
* more effort to link builders to their optional fields, but a simple
85+
* switch statement in a stream map works well.
86+
*
87+
* @param handle
88+
* The object from which to draw parsing methods.
89+
* @param plugin
90+
* The plugin which holds the placeholders.
91+
* @return The list of builders matching the methods.
92+
*/
93+
public List<? extends ExpansionBuilder<?, ?, ?, ?>> loadAll(Object handle, Object plugin);
94+
5895
/**
5996
* Register an Expansion.
6097
*

src/main/java/me/rojo8399/placeholderapi/placeholder/Relational.java renamed to src/main/java/me/rojo8399/placeholderapi/Relational.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi;
2525

2626
import static java.lang.annotation.ElementType.METHOD;
2727
import static java.lang.annotation.RetentionPolicy.RUNTIME;

src/main/java/me/rojo8399/placeholderapi/placeholder/Source.java renamed to src/main/java/me/rojo8399/placeholderapi/Source.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi;
2525

2626
import static java.lang.annotation.ElementType.PARAMETER;
2727
import static java.lang.annotation.RetentionPolicy.RUNTIME;

src/main/java/me/rojo8399/placeholderapi/placeholder/Token.java renamed to src/main/java/me/rojo8399/placeholderapi/Token.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi;
2525

2626
import static java.lang.annotation.ElementType.PARAMETER;
2727
import static java.lang.annotation.RetentionPolicy.RUNTIME;

src/main/java/me/rojo8399/placeholderapi/Metrics.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/Metrics.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ system, and (b) will operate properly with a modified version
166166
Library.
167167
168168
*/
169-
package me.rojo8399.placeholderapi;
169+
package me.rojo8399.placeholderapi.impl;
170170

171171
import java.io.BufferedReader;
172172
import java.io.BufferedWriter;

src/main/java/me/rojo8399/placeholderapi/PlaceholderAPIPlugin.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/PlaceholderAPIPlugin.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi;
24+
package me.rojo8399.placeholderapi.impl;
2525

2626
import java.io.File;
2727
import java.io.IOException;
@@ -62,17 +62,17 @@ of this software and associated documentation files (the "Software"), to deal
6262

6363
import com.google.inject.Inject;
6464

65-
import me.rojo8399.placeholderapi.commands.InfoCommand;
66-
import me.rojo8399.placeholderapi.commands.ListCommand;
67-
import me.rojo8399.placeholderapi.commands.ParseCommand;
68-
import me.rojo8399.placeholderapi.commands.RefreshCommand;
69-
import me.rojo8399.placeholderapi.configs.Config;
70-
import me.rojo8399.placeholderapi.configs.JavascriptManager;
71-
import me.rojo8399.placeholderapi.configs.Messages;
72-
import me.rojo8399.placeholderapi.placeholder.Expansion;
73-
import me.rojo8399.placeholderapi.placeholder.ExpansionBuilder;
74-
import me.rojo8399.placeholderapi.placeholder.Store;
75-
import me.rojo8399.placeholderapi.placeholder.impl.Defaults;
65+
import me.rojo8399.placeholderapi.PlaceholderService;
66+
import me.rojo8399.placeholderapi.impl.commands.InfoCommand;
67+
import me.rojo8399.placeholderapi.impl.commands.ListCommand;
68+
import me.rojo8399.placeholderapi.impl.commands.ParseCommand;
69+
import me.rojo8399.placeholderapi.impl.commands.RefreshCommand;
70+
import me.rojo8399.placeholderapi.impl.configs.Config;
71+
import me.rojo8399.placeholderapi.impl.configs.JavascriptManager;
72+
import me.rojo8399.placeholderapi.impl.configs.Messages;
73+
import me.rojo8399.placeholderapi.impl.placeholder.Expansion;
74+
import me.rojo8399.placeholderapi.impl.placeholder.Store;
75+
import me.rojo8399.placeholderapi.impl.placeholder.impl.Defaults;
7676
import ninja.leaping.configurate.ConfigurationNode;
7777
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
7878
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
@@ -283,7 +283,7 @@ public HashMap<String, Integer> getValues(HashMap<String, Integer> valueMap) {
283283
public void registerPlaceholders() {
284284
EconomyService ex = game.getServiceManager().provide(EconomyService.class).orElse(null);
285285
Defaults handle = new Defaults(ex, this.jsm);
286-
ExpansionBuilder.loadAll(handle, this).stream().map(builder -> {
286+
s.loadAll(handle, this).stream().map(builder -> {
287287
switch (builder.getId()) {
288288
case "player": {
289289
if (builder.isRelational()) {
@@ -322,7 +322,7 @@ public void registerPlaceholders() {
322322
exc.printStackTrace();
323323
return false;
324324
}
325-
e.setTokens(jsm.getScriptNames());
325+
((Expansion<?, ?, ?>) e).setTokens(jsm.getScriptNames());
326326
return true;
327327
}).version("2.0");
328328
case "economy":

src/main/java/me/rojo8399/placeholderapi/PlaceholderServiceImpl.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/PlaceholderServiceImpl.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi;
24+
package me.rojo8399.placeholderapi.impl;
2525

2626
import java.util.HashMap;
27+
import java.util.List;
2728
import java.util.Map;
2829
import java.util.Optional;
2930

@@ -36,8 +37,11 @@ of this software and associated documentation files (the "Software"), to deal
3637

3738
import com.google.common.base.Preconditions;
3839

39-
import me.rojo8399.placeholderapi.placeholder.Expansion;
40-
import me.rojo8399.placeholderapi.placeholder.Store;
40+
import me.rojo8399.placeholderapi.ExpansionBuilder;
41+
import me.rojo8399.placeholderapi.PlaceholderService;
42+
import me.rojo8399.placeholderapi.impl.placeholder.Expansion;
43+
import me.rojo8399.placeholderapi.impl.placeholder.ExpansionBuilderImpl;
44+
import me.rojo8399.placeholderapi.impl.placeholder.Store;
4145

4246
/**
4347
* Implement placeholder service - should not need to be replaced but is a
@@ -248,4 +252,26 @@ public boolean registerExpansion(Expansion<?, ?, ?> expansion) {
248252
return store.register(expansion);
249253
}
250254

255+
/*
256+
* (non-Javadoc)
257+
*
258+
* @see me.rojo8399.placeholderapi.PlaceholderService#builder()
259+
*/
260+
@Override
261+
public <S, O, V> ExpansionBuilder<S, O, V, ?> builder() {
262+
return ExpansionBuilderImpl.builder();
263+
}
264+
265+
/*
266+
* (non-Javadoc)
267+
*
268+
* @see
269+
* me.rojo8399.placeholderapi.PlaceholderService#loadAll(java.lang.Object,
270+
* java.lang.Object)
271+
*/
272+
@Override
273+
public List<? extends ExpansionBuilder<?, ?, ?, ?>> loadAll(Object handle, Object plugin) {
274+
return ExpansionBuilderImpl.loadAll(handle, plugin);
275+
}
276+
251277
}

src/main/java/me/rojo8399/placeholderapi/commands/InfoCommand.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/commands/InfoCommand.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.commands;
24+
package me.rojo8399.placeholderapi.impl.commands;
2525

2626
import java.util.ArrayList;
2727
import java.util.Arrays;
@@ -40,12 +40,12 @@ of this software and associated documentation files (the "Software"), to deal
4040
import org.spongepowered.api.text.action.TextActions;
4141
import org.spongepowered.api.text.format.TextColors;
4242

43-
import me.rojo8399.placeholderapi.PlaceholderAPIPlugin;
4443
import me.rojo8399.placeholderapi.PlaceholderService;
45-
import me.rojo8399.placeholderapi.configs.Messages;
46-
import me.rojo8399.placeholderapi.placeholder.Expansion;
47-
import me.rojo8399.placeholderapi.placeholder.Store;
48-
import me.rojo8399.placeholderapi.utils.TextUtils;
44+
import me.rojo8399.placeholderapi.impl.PlaceholderAPIPlugin;
45+
import me.rojo8399.placeholderapi.impl.configs.Messages;
46+
import me.rojo8399.placeholderapi.impl.placeholder.Expansion;
47+
import me.rojo8399.placeholderapi.impl.placeholder.Store;
48+
import me.rojo8399.placeholderapi.impl.utils.TextUtils;
4949

5050
public class InfoCommand implements CommandExecutor {
5151

src/main/java/me/rojo8399/placeholderapi/commands/ListCommand.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/commands/ListCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.commands;
24+
package me.rojo8399.placeholderapi.impl.commands;
2525

2626
import java.util.List;
2727
import java.util.stream.Collectors;
@@ -35,10 +35,10 @@ of this software and associated documentation files (the "Software"), to deal
3535
import org.spongepowered.api.text.action.TextActions;
3636
import org.spongepowered.api.text.format.TextColors;
3737

38-
import me.rojo8399.placeholderapi.PlaceholderAPIPlugin;
3938
import me.rojo8399.placeholderapi.PlaceholderService;
40-
import me.rojo8399.placeholderapi.configs.Messages;
41-
import me.rojo8399.placeholderapi.placeholder.Store;
39+
import me.rojo8399.placeholderapi.impl.PlaceholderAPIPlugin;
40+
import me.rojo8399.placeholderapi.impl.configs.Messages;
41+
import me.rojo8399.placeholderapi.impl.placeholder.Store;
4242

4343
public class ListCommand implements CommandExecutor {
4444

src/main/java/me/rojo8399/placeholderapi/commands/ParseCommand.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/commands/ParseCommand.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.commands;
24+
package me.rojo8399.placeholderapi.impl.commands;
2525

2626
import org.spongepowered.api.command.CommandException;
2727
import org.spongepowered.api.command.CommandResult;
@@ -31,9 +31,9 @@ of this software and associated documentation files (the "Software"), to deal
3131
import org.spongepowered.api.entity.living.player.Player;
3232
import org.spongepowered.api.text.Text;
3333

34-
import me.rojo8399.placeholderapi.PlaceholderAPIPlugin;
3534
import me.rojo8399.placeholderapi.PlaceholderService;
36-
import me.rojo8399.placeholderapi.configs.Messages;
35+
import me.rojo8399.placeholderapi.impl.PlaceholderAPIPlugin;
36+
import me.rojo8399.placeholderapi.impl.configs.Messages;
3737

3838
public class ParseCommand implements CommandExecutor {
3939

src/main/java/me/rojo8399/placeholderapi/commands/RefreshCommand.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/commands/RefreshCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.commands;
24+
package me.rojo8399.placeholderapi.impl.commands;
2525

2626
import org.spongepowered.api.command.CommandException;
2727
import org.spongepowered.api.command.CommandResult;
2828
import org.spongepowered.api.command.CommandSource;
2929
import org.spongepowered.api.command.args.CommandContext;
3030
import org.spongepowered.api.command.spec.CommandExecutor;
3131

32-
import me.rojo8399.placeholderapi.PlaceholderAPIPlugin;
33-
import me.rojo8399.placeholderapi.PlaceholderServiceImpl;
34-
import me.rojo8399.placeholderapi.configs.Messages;
32+
import me.rojo8399.placeholderapi.impl.PlaceholderAPIPlugin;
33+
import me.rojo8399.placeholderapi.impl.PlaceholderServiceImpl;
34+
import me.rojo8399.placeholderapi.impl.configs.Messages;
3535

3636
public class RefreshCommand implements CommandExecutor {
3737

src/main/java/me/rojo8399/placeholderapi/configs/Config.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/configs/Config.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.configs;
24+
package me.rojo8399.placeholderapi.impl.configs;
2525

2626
import com.google.common.reflect.TypeToken;
2727

src/main/java/me/rojo8399/placeholderapi/configs/JavascriptManager.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/configs/JavascriptManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.configs;
24+
package me.rojo8399.placeholderapi.impl.configs;
2525

2626
import java.io.BufferedReader;
2727
import java.io.File;

src/main/java/me/rojo8399/placeholderapi/configs/Messages.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/configs/Messages.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.configs;
24+
package me.rojo8399.placeholderapi.impl.configs;
2525

2626
import org.spongepowered.api.text.Text;
2727
import org.spongepowered.api.text.serializer.TextSerializers;

src/main/java/me/rojo8399/placeholderapi/placeholder/Expansion.java renamed to src/main/java/me/rojo8399/placeholderapi/impl/placeholder/Expansion.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ of this software and associated documentation files (the "Software"), to deal
2121
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
SOFTWARE.
2323
*/
24-
package me.rojo8399.placeholderapi.placeholder;
24+
package me.rojo8399.placeholderapi.impl.placeholder;
2525

2626
import java.lang.reflect.Method;
2727
import java.lang.reflect.Type;
@@ -40,7 +40,7 @@ of this software and associated documentation files (the "Software"), to deal
4040

4141
import com.google.common.base.Preconditions;
4242

43-
import me.rojo8399.placeholderapi.PlaceholderAPIPlugin;
43+
import me.rojo8399.placeholderapi.impl.PlaceholderAPIPlugin;
4444
import ninja.leaping.configurate.ConfigurationNode;
4545
import ninja.leaping.configurate.objectmapping.ObjectMapper;
4646
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
@@ -571,4 +571,4 @@ private static final String fix(String id) {
571571
return id.replace("_", "").replace(" ", "");
572572
}
573573

574-
}
574+
}

0 commit comments

Comments
 (0)