mirror of
https://github.com/GeyserMC/Floodgate.git
synced 2025-12-21 15:59:21 +00:00
Finished news. Added git properties, closes GeyserMC/Floodgate#127
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
This commit is contained in:
@@ -47,6 +47,8 @@ import org.geysermc.floodgate.link.PlayerLinkLoader;
|
|||||||
import org.geysermc.floodgate.module.ConfigLoadedModule;
|
import org.geysermc.floodgate.module.ConfigLoadedModule;
|
||||||
import org.geysermc.floodgate.module.PostInitializeModule;
|
import org.geysermc.floodgate.module.PostInitializeModule;
|
||||||
import org.geysermc.floodgate.news.NewsChecker;
|
import org.geysermc.floodgate.news.NewsChecker;
|
||||||
|
import org.geysermc.floodgate.util.FloodgateInfoHolder;
|
||||||
|
import org.geysermc.floodgate.util.GitProperties;
|
||||||
import org.geysermc.floodgate.util.PrefixCheckTask;
|
import org.geysermc.floodgate.util.PrefixCheckTask;
|
||||||
import org.geysermc.floodgate.util.TimeSyncerHolder;
|
import org.geysermc.floodgate.util.TimeSyncerHolder;
|
||||||
|
|
||||||
@@ -60,6 +62,9 @@ public class FloodgatePlatform {
|
|||||||
private FloodgateConfig config;
|
private FloodgateConfig config;
|
||||||
private Injector guice;
|
private Injector guice;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private GitProperties properties;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public FloodgatePlatform(
|
public FloodgatePlatform(
|
||||||
FloodgateApi api,
|
FloodgateApi api,
|
||||||
@@ -102,6 +107,11 @@ public class FloodgatePlatform {
|
|||||||
TimeSyncerHolder.init();
|
TimeSyncerHolder.init();
|
||||||
|
|
||||||
InstanceHolder.set(api, link, this.injector, packetHandlers, handshakeHandlers, KEY);
|
InstanceHolder.set(api, link, this.injector, packetHandlers, handshakeHandlers, KEY);
|
||||||
|
|
||||||
|
// for Geyser dump
|
||||||
|
FloodgateInfoHolder.setGitProperties(properties.getProperties());
|
||||||
|
|
||||||
|
guice.getInstance(NewsChecker.class).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean enable(Module... postInitializeModules) {
|
public boolean enable(Module... postInitializeModules) {
|
||||||
@@ -124,7 +134,6 @@ public class FloodgatePlatform {
|
|||||||
|
|
||||||
PrefixCheckTask.checkAndExecuteDelayed(config, logger);
|
PrefixCheckTask.checkAndExecuteDelayed(config, logger);
|
||||||
|
|
||||||
guice.getInstance(NewsChecker.class).start();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ import org.geysermc.floodgate.player.FloodgateHandshakeHandler;
|
|||||||
import org.geysermc.floodgate.pluginmessage.PluginMessageManager;
|
import org.geysermc.floodgate.pluginmessage.PluginMessageManager;
|
||||||
import org.geysermc.floodgate.skin.SkinApplier;
|
import org.geysermc.floodgate.skin.SkinApplier;
|
||||||
import org.geysermc.floodgate.skin.SkinUploadManager;
|
import org.geysermc.floodgate.skin.SkinUploadManager;
|
||||||
|
import org.geysermc.floodgate.util.GitProperties;
|
||||||
import org.geysermc.floodgate.util.LanguageManager;
|
import org.geysermc.floodgate.util.LanguageManager;
|
||||||
|
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -175,11 +176,27 @@ public class CommonModule extends AbstractModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
public NewsChecker newsChecker(CommandUtil commandUtil, FloodgateLogger logger) {
|
public GitProperties gitProperties() {
|
||||||
|
return new GitProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
public NewsChecker newsChecker(
|
||||||
|
CommandUtil commandUtil,
|
||||||
|
FloodgateLogger logger,
|
||||||
|
GitProperties properties) {
|
||||||
// will be loaded after enabling, so we can use the link instance in InstanceHolder
|
// will be loaded after enabling, so we can use the link instance in InstanceHolder
|
||||||
PlayerLink link = InstanceHolder.getPlayerLink();
|
PlayerLink link = InstanceHolder.getPlayerLink();
|
||||||
logger.info(link.getName());
|
logger.info(link.getName());
|
||||||
return new NewsChecker(link, commandUtil, logger, null, -1);
|
|
||||||
|
String branch = properties.getProperty("git.branch");
|
||||||
|
String build = properties.getProperty("git.build.number");
|
||||||
|
int buildNumber = -1;
|
||||||
|
if (build != null) {
|
||||||
|
buildNumber = Integer.parseInt(build);
|
||||||
|
}
|
||||||
|
return new NewsChecker(link, commandUtil, logger, branch, buildNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ public class NewsChecker {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String fullDatabaseName = Constants.NEWS_PROJECT_NAME + link.getName();
|
String fullDatabaseName = Constants.NEWS_PROJECT_NAME + '/' + link.getName();
|
||||||
if (!fullDatabaseName.equals(item.getProject())) {
|
if (!fullDatabaseName.equals(item.getProject())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2019-2021 GeyserMC. http://geysermc.org
|
||||||
|
*
|
||||||
|
* 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:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*
|
||||||
|
* @author GeyserMC
|
||||||
|
* @link https://github.com/GeyserMC/Floodgate
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.geysermc.floodgate.util;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class GitProperties {
|
||||||
|
private final Properties properties;
|
||||||
|
|
||||||
|
public GitProperties() {
|
||||||
|
properties = Utils.readProperties("git.properties");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Properties getProperties() {
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object get(Object key) {
|
||||||
|
return properties.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProperty(String key) {
|
||||||
|
return properties.getProperty(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProperty(String key, String defaultValue) {
|
||||||
|
return properties.getProperty(key, defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getOrDefault(Object key, Object defaultValue) {
|
||||||
|
return properties.getOrDefault(key, defaultValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -39,6 +39,7 @@ import java.nio.charset.StandardCharsets;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Properties;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -84,6 +85,16 @@ public class Utils {
|
|||||||
return new BufferedReader(reader);
|
return new BufferedReader(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Properties readProperties(String resourceFile) {
|
||||||
|
Properties properties = new Properties();
|
||||||
|
try (InputStream is = Utils.class.getClassLoader().getResourceAsStream(resourceFile)) {
|
||||||
|
properties.load(is);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
public static String getLocale(Locale locale) {
|
public static String getLocale(Locale locale) {
|
||||||
return locale.getLanguage() + "_" + locale.getCountry();
|
return locale.getLanguage() + "_" + locale.getCountry();
|
||||||
}
|
}
|
||||||
|
|||||||
35
pom.xml
35
pom.xml
@@ -98,6 +98,41 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>pl.project13.maven</groupId>
|
||||||
|
<artifactId>git-commit-id-plugin</artifactId>
|
||||||
|
<version>4.0.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>get-the-git-infos</id>
|
||||||
|
<goals>
|
||||||
|
<goal>revision</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<generateGitPropertiesFile>true</generateGitPropertiesFile>
|
||||||
|
<generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
|
||||||
|
<format>properties</format>
|
||||||
|
<failOnNoGitDirectory>false</failOnNoGitDirectory>
|
||||||
|
<failOnUnableToExtractRepoInfo>false</failOnUnableToExtractRepoInfo>
|
||||||
|
<runOnlyOnce>false</runOnlyOnce>
|
||||||
|
<verbose>true</verbose>
|
||||||
|
<skipPoms>false</skipPoms>
|
||||||
|
<excludeProperties>
|
||||||
|
<excludeProperty>git.user.*</excludeProperty>
|
||||||
|
<excludeProperty>git.*.user.*</excludeProperty>
|
||||||
|
<excludeProperty>git.closest.*</excludeProperty>
|
||||||
|
<excludeProperty>git.commit.id.describe</excludeProperty>
|
||||||
|
<excludeProperty>git.commit.id.describe-short</excludeProperty>
|
||||||
|
<excludeProperty>git.commit.message.short</excludeProperty>
|
||||||
|
</excludeProperties>
|
||||||
|
<commitIdGenerationMode>flat</commitIdGenerationMode>
|
||||||
|
<gitDescribe>
|
||||||
|
<always>true</always>
|
||||||
|
</gitDescribe>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user