mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-30 22:23:54 +01:00
#534 Get default messages from the JAR's messages_en.yml
- Using new File(class.getResource(path)) apparently is the wrong approach for in-JAR files
This commit is contained in:
parent
8511a257ed
commit
511f961d29
@ -8,6 +8,8 @@ import org.bukkit.configuration.file.FileConfiguration;
|
|||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for retrieving and sending translatable messages to players.
|
* Class for retrieving and sending translatable messages to players.
|
||||||
@ -16,7 +18,7 @@ public class Messages {
|
|||||||
|
|
||||||
private FileConfiguration configuration;
|
private FileConfiguration configuration;
|
||||||
private String fileName;
|
private String fileName;
|
||||||
private final File defaultFile;
|
private final String defaultFile;
|
||||||
private FileConfiguration defaultConfiguration;
|
private FileConfiguration defaultConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,7 +27,7 @@ public class Messages {
|
|||||||
* @param messageFile The messages file to use
|
* @param messageFile The messages file to use
|
||||||
* @param defaultFile The file with messages to use as default if missing
|
* @param defaultFile The file with messages to use as default if missing
|
||||||
*/
|
*/
|
||||||
public Messages(File messageFile, File defaultFile) {
|
public Messages(File messageFile, String defaultFile) {
|
||||||
initializeFile(messageFile);
|
initializeFile(messageFile);
|
||||||
this.defaultFile = defaultFile;
|
this.defaultFile = defaultFile;
|
||||||
}
|
}
|
||||||
@ -117,7 +119,8 @@ public class Messages {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (defaultConfiguration == null) {
|
if (defaultConfiguration == null) {
|
||||||
defaultConfiguration = YamlConfiguration.loadConfiguration(defaultFile);
|
InputStream stream = Messages.class.getResourceAsStream(defaultFile);
|
||||||
|
defaultConfiguration = YamlConfiguration.loadConfiguration(new InputStreamReader(stream));
|
||||||
}
|
}
|
||||||
String message = defaultConfiguration.getString(code);
|
String message = defaultConfiguration.getString(code);
|
||||||
return message == null ? getDefaultErrorMessage(code) : message;
|
return message == null ? getDefaultErrorMessage(code) : message;
|
||||||
|
@ -18,7 +18,6 @@ import org.yaml.snakeyaml.Yaml;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -110,18 +109,12 @@ public class NewSetting {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the default messages file within the JAR that should contain all messages.
|
* Return the path to the default messages file within the JAR.
|
||||||
*
|
*
|
||||||
* @return The default messages file, or {@code null} if it could not be retrieved
|
* @return The default messages file path
|
||||||
*/
|
*/
|
||||||
public File getDefaultMessagesFile() {
|
public String getDefaultMessagesFile() {
|
||||||
String defaultFilePath = "/messages/messages_en.yml";
|
return "/messages/messages_en.yml";
|
||||||
URL url = NewSetting.class.getResource(defaultFilePath);
|
|
||||||
if (url == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
File file = new File(url.getFile());
|
|
||||||
return file.exists() ? file : null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getEmailMessage() {
|
public String getEmailMessage() {
|
||||||
|
@ -50,8 +50,7 @@ public class MessagesIntegrationTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setUpMessages() {
|
public void setUpMessages() {
|
||||||
File testFile = TestHelper.getJarFile(YML_TEST_FILE);
|
File testFile = TestHelper.getJarFile(YML_TEST_FILE);
|
||||||
File defaultFile = TestHelper.getJarFile(YML_DEFAULT_TEST_FILE);
|
messages = new Messages(testFile, YML_DEFAULT_TEST_FILE);
|
||||||
messages = new Messages(testFile, defaultFile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -7,7 +7,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.internal.stubbing.answers.ReturnsArgumentAt;
|
import org.mockito.internal.stubbing.answers.ReturnsArgumentAt;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
@ -55,17 +56,19 @@ public class NewSettingTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldReturnDefaultFile() {
|
public void shouldReturnDefaultFile() throws IOException {
|
||||||
// given
|
// given
|
||||||
YamlConfiguration configuration = mock(YamlConfiguration.class);
|
YamlConfiguration configuration = mock(YamlConfiguration.class);
|
||||||
NewSetting settings = new NewSetting(configuration, null, null);
|
NewSetting settings = new NewSetting(configuration, null, null);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
File defaultFile = settings.getDefaultMessagesFile();
|
String defaultFile = settings.getDefaultMessagesFile();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(defaultFile, not(nullValue()));
|
assertThat(defaultFile, not(nullValue()));
|
||||||
assertThat(defaultFile.exists(), equalTo(true));
|
InputStream stream = this.getClass().getResourceAsStream(defaultFile);
|
||||||
|
assertThat(stream, not(nullValue()));
|
||||||
|
assertThat(stream.read(), not(equalTo(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <T> void setReturnValue(YamlConfiguration config, Property<T> property, T value) {
|
private static <T> void setReturnValue(YamlConfiguration config, Property<T> property, T value) {
|
||||||
|
@ -35,7 +35,7 @@ public final class TestConfiguration implements SettingsClass {
|
|||||||
newProperty(PropertyType.STRING_LIST, "features.boring.colors");
|
newProperty(PropertyType.STRING_LIST, "features.boring.colors");
|
||||||
|
|
||||||
public static final Property<Integer> DUST_LEVEL =
|
public static final Property<Integer> DUST_LEVEL =
|
||||||
newProperty(PropertyType.INTEGER, "features.boring.dustLevel", -1);
|
newProperty("features.boring.dustLevel", -1);
|
||||||
|
|
||||||
public static final Property<Boolean> USE_COOL_FEATURES =
|
public static final Property<Boolean> USE_COOL_FEATURES =
|
||||||
newProperty("features.cool.enabled", false);
|
newProperty("features.cool.enabled", false);
|
||||||
|
Loading…
Reference in New Issue
Block a user