Skip to content

Commit

Permalink
fix #34
Browse files Browse the repository at this point in the history
  • Loading branch information
TheAlan404 committed Dec 12, 2023
1 parent dd5358b commit aa12f78
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 20 deletions.
2 changes: 2 additions & 0 deletions examples/forge/config/server.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
server-port=${PORT:25565}
motd=${SERVER_NAME:A Minecraft Server}
16 changes: 16 additions & 0 deletions examples/forge/server.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name = "forge"
mc_version = "1.7.10"

[jar]
type = "forge"
loader = "latest"

[variables]
PORT = "25565"

[launcher]
eula_args = true
nogui = true
preset_flags = "aikars"

[options]
7 changes: 4 additions & 3 deletions src/sources/forge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ pub static FORGE_FILENAME: &str = "${artifact}-${version}-installer.jar";
pub struct ForgeAPI<'a>(pub &'a App);

impl<'a> ForgeAPI<'a> {
/// Returns a string list of filtered versions, everything after the first dash (-)
pub async fn fetch_versions(&self) -> Result<Vec<String>> {
let (_, versions) = self
.0
Expand All @@ -20,10 +21,10 @@ impl<'a> ForgeAPI<'a> {
Ok(versions
.iter()
.filter_map(|s| {
let (m, l) = s.split_once('-')?;
let v = s.split('-').collect::<Vec<_>>();

if m == self.0.mc_version() {
Some(l.to_owned())
if v[0] == self.0.mc_version() {
Some(v[1].to_owned())
} else {
None
}
Expand Down
29 changes: 12 additions & 17 deletions src/sources/maven.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,26 +156,21 @@ impl<'a> MavenAPI<'a> {
artifact_id: &str,
version: &str,
) -> Result<String> {
let fetch_versions = || self.fetch_versions(url, group_id, artifact_id);
let (latest, versions) = self.fetch_versions(url, group_id, artifact_id).await?;

let version = match version {
"latest" => fetch_versions().await?.0,
"latest" => latest,
id => {
if id.contains('$') {
let versions = fetch_versions().await?.1;
let id = id
.replace("${artifact}", artifact_id)
.replace("${mcversion}", &self.0.mc_version())
.replace("${mcver}", &self.0.mc_version());
versions
.iter()
.find(|v| *v == &id)
.or_else(|| versions.iter().find(|v| v.contains(&id)))
.ok_or(anyhow!("Couldn't resolve maven artifact version (url={url},g={group_id},a={artifact_id})"))?
.clone()
} else {
id.to_owned()
}
let id = id
.replace("${artifact}", artifact_id)
.replace("${mcversion}", &self.0.mc_version())
.replace("${mcver}", &self.0.mc_version());
versions
.iter()
.find(|v| *v == &id)
.or_else(|| versions.iter().find(|v| v.contains(&id)))
.ok_or(anyhow!("Couldn't resolve maven artifact version (url={url},g={group_id},a={artifact_id})"))?
.clone()
}
};

Expand Down

0 comments on commit aa12f78

Please sign in to comment.