Skip to content

Commit

Permalink
Remove source from Localizer
Browse files Browse the repository at this point in the history
This can be obtained from the addon instance
  • Loading branch information
APickledWalrus committed Jun 30, 2024
1 parent 036d0b5 commit 2d94cf5
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 31 deletions.
7 changes: 2 additions & 5 deletions src/main/java/ch/njol/skript/Skript.java
Original file line number Diff line number Diff line change
Expand Up @@ -498,11 +498,8 @@ public void onEnable() {
// initialize the modern Skript instance
skript = org.skriptlang.skript.Skript.of(getClass(), getName());
unmodifiableSkript = skript.unmodifiableView();
skript.localizer().setSourceDirectories(
getClass(),
"lang",
getDataFolder().getAbsolutePath() + "lang"
);
skript.localizer().setSourceDirectories("lang",
getDataFolder().getAbsolutePath() + "lang");
// initialize the old Skript SkriptAddon instance
getAddonInstance();

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/ch/njol/skript/SkriptAddon.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public SkriptAddon loadClasses(String basePackage, String... subPackages) throws
* @return This SkriptAddon
*/
public SkriptAddon setLanguageFileDirectory(String directory) {
localizer().setSourceDirectories(plugin.getClass(), directory, plugin.getDataFolder().getAbsolutePath() + directory);
localizer().setSourceDirectories(directory, plugin.getDataFolder().getAbsolutePath() + directory);
return this;
}

Expand Down
5 changes: 2 additions & 3 deletions src/main/java/ch/njol/skript/localization/Language.java
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ public static void loadDefault(SkriptAddon addon) {
return;
}

Class<?> source = addon.localizer().source();
Class<?> source = addon.source();
assert source != null; // getSanitizedLanguageDirectory call means source should not be null
try (
InputStream defaultIs = source.getResourceAsStream("/" + languageFileDirectory + "/default.lang");
Expand Down Expand Up @@ -283,8 +283,7 @@ private static boolean load(SkriptAddon addon, String name, boolean tryUpdate) {
return false;
}

Class<?> source = addon.localizer().source();
assert source != null; // getSanitizedLanguageDirectory call means source should not be null
Class<?> source = addon.source();

// Backwards addon compatibility
if (name.equals("english")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,11 @@ static Localizer of(SkriptAddon addon) {
/**
* Sets the language file directories for this localizer.
* This method will initiate a loading of any language files in the provided directories.
* @param source A class to be used for loading resources from the jar.
* @param languageFileDirectory The path to the directory on the jar containing language files.
* @param dataFileDirectory The path to the directory on the disk containing language files.
* For example, this may include language files that have been saved to enable user customization.
*/
void setSourceDirectories(Class<?> source, String languageFileDirectory, @Nullable String dataFileDirectory);

/**
* @return A class to be used for loading resources from the jar.
*/
@Nullable Class<?> source();
void setSourceDirectories(String languageFileDirectory, @Nullable String dataFileDirectory);

/**
* @return The path to the directory on the jar containing language files.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,19 @@ final class LocalizerImpl implements Localizer {
this.addon = addon;
}

private Class<?> source;
private String languageFileDirectory;
private String dataFileDirectory;

@Override
public void setSourceDirectories(Class<?> source, String languageFileDirectory, @Nullable String dataFileDirectory) {
if (this.source != null) {
public void setSourceDirectories(String languageFileDirectory, @Nullable String dataFileDirectory) {
if (this.languageFileDirectory != null) {
throw new SkriptAPIException("A localizer's source directories may only be set once.");
}
this.source = source;
this.languageFileDirectory = languageFileDirectory;
this.dataFileDirectory = dataFileDirectory;
Language.loadDefault(addon);
}

@Override
public @Nullable Class<?> source() {
return source;
}

@Override
public @Nullable String languageFileDirectory() {
return languageFileDirectory;
Expand All @@ -57,15 +50,10 @@ static final class UnmodifiableLocalizer implements Localizer {
}

@Override
public void setSourceDirectories(Class<?> source, String languageFileDirectory, @Nullable String dataFileDirectory) {
public void setSourceDirectories(String languageFileDirectory, @Nullable String dataFileDirectory) {
throw new UnsupportedOperationException("Cannot set the source directories of an unmodifiable Localizer.");
}

@Override
public @Nullable Class<?> source() {
return localizer.source();
}

@Override
public @Nullable String languageFileDirectory() {
return localizer.languageFileDirectory();
Expand Down

0 comments on commit 2d94cf5

Please sign in to comment.