Skip to content

Commit 5cf0a6e

Browse files
Merge pull request #50 from TeamKun/develop
🔖chore: v2.3
2 parents d3fea08 + 9698caa commit 5cf0a6e

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.kunmc.lab</groupId>
88
<artifactId>TeamKunPluginManager</artifactId>
9-
<version>2.2.4</version>
9+
<version>2.3</version>
1010
<packaging>jar</packaging>
1111

1212
<name>TeamKunPluginManager</name>

src/main/java/net/kunmc/lab/teamkunpluginmanager/utils/GitHubURLBuilder.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class GitHubURLBuilder
1515
{
1616
private static final String GITHUB_REPO_RELEASES_URL = "https://api.github.com/repos/%s/releases";
1717
private static final String GITHUB_REPO_RELEASE_NAME_URL = GITHUB_REPO_RELEASES_URL + "/tags/%s";
18-
private static final Pattern GITHUB_REPO_PATTERN = Pattern.compile("^/(?<repo>[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}/[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,100})(/?|(?:/(?:releases/?|tag/?)(?:(?<tagNameNF>[.a-zA-Z0-9\\-+]+)|(?:download/(?<tagName>[.a-zA-Z0-9\\-+]+)/(?<file>[^/]+?\\.jar)))?)?)$");
18+
private static final Pattern GITHUB_REPO_PATTERN = Pattern.compile("^/(?<repo>[a-zA-Z\\d](?:[a-zA-Z\\d]|-(?=[a-zA-Z\\d])){0,38}/[a-zA-Z\\d](?:[a-zA-Z\\d]|-(?=[a-zA-Z\\d])){0,100})(?:/?$|/(?:tag|release)s(?:/?$|/(?:tag/(?<tag>[^/]+)/?$|download/(?<dlTag>[^/]+)/(?<fileName>[^/]+))))/?$");
1919

2020
/**
2121
* GitHubのリリースへのAPIのURlをビルドします。
@@ -45,7 +45,7 @@ private static Pair<String, String> buildAPIUrl(String repository, @Nullable Str
4545
* @param urlName 適当なURL
4646
* @return GitHubのURl
4747
*/
48-
public static String urlValidate(String urlName)
48+
public static String urlValidate(String urlName, String version)
4949
{
5050
URL url;
5151
try
@@ -68,9 +68,9 @@ public static String urlValidate(String urlName)
6868
while (matcher.find())
6969
{
7070
String repository = matcher.group("repo");
71-
String tag = matcher.group("tagName");
72-
String tagNF = matcher.group("tagNameNF");
73-
String file = matcher.group("file");
71+
String tag = matcher.group("dlTag");
72+
String tagNF = matcher.group("tag");
73+
String file = matcher.group("fileName");
7474

7575
if (file != null && !file.equals(""))
7676
return urlName;
@@ -84,6 +84,9 @@ else if (tagNF != null && !tagNF.equals(""))
8484
tagName = tagNF;
8585
}
8686

87+
if (tagName == null && version != null)
88+
tagName = version;
89+
8790
Pair<String, String> urlPair = buildAPIUrl(repoName, tagName);
8891

8992
switch (urlPair.getKey())

src/main/java/net/kunmc/lab/teamkunpluginmanager/utils/PluginResolver.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,32 @@ public class PluginResolver
2020
*/
2121
public static String asUrl(String query)
2222
{
23+
String[] q = StringUtils.split(query, "@");
24+
25+
String s = q[0];
26+
String ver = q.length > 1 ? q[1]: null;
27+
2328
if (UrlValidator.getInstance().isValid(query))
2429
{
2530
if (DevBukkit.isMatch(query))
2631
return DevBukkit.toDownloadUrl(query);
2732
else if (Spigotmc.isMatch(query))
2833
return Spigotmc.toDownloadUrl(query);
29-
return GitHubURLBuilder.urlValidate(query);
34+
return GitHubURLBuilder.urlValidate(s, ver);
3035
}
3136

3237
if (KnownPlugins.isKnown(query))
3338
return PluginResolver.asUrl(KnownPlugins.getKnown(query).url);
34-
else if (StringUtils.split("/", query).length == 2)
35-
return GitHubURLBuilder.urlValidate("https://github.com/" + query);
39+
else if (StringUtils.split(query, "/").length == 2)
40+
return GitHubURLBuilder.urlValidate("https://github.com/" + s, ver);
3641

3742
//configのorgを順番にfetch
3843

3944
Object obj = TeamKunPluginManager.plugin.getConfig().get("gitHubName");
4045

4146
if (obj instanceof String)
42-
if (GitHubURLBuilder.isRepoExists(obj + "/" + query))
43-
return GitHubURLBuilder.urlValidate("https://github.com/" + obj + "/" + query);
47+
if (GitHubURLBuilder.isRepoExists(obj + "/" + s))
48+
return GitHubURLBuilder.urlValidate("https://github.com/" + obj + "/" + s, ver);
4449
else
4550
return "ERROR " + query + "が見つかりませんでした。";
4651

@@ -51,7 +56,7 @@ else if (StringUtils.split("/", query).length == 2)
5156
for (String str : TeamKunPluginManager.config.getStringList("gitHubName"))
5257
{
5358
if (GitHubURLBuilder.isRepoExists(str + "/" + query))
54-
return GitHubURLBuilder.urlValidate("https://github.com/" + str + "/" + query);
59+
return GitHubURLBuilder.urlValidate("https://github.com/" + str + "/" + s, ver);
5560
}
5661

5762
return "ERROR " + query + "が見つかりませんでした。";

0 commit comments

Comments
 (0)