개인 자료란 (JE)

  서버 커뮤니티

Profile HeartPattern 대표칭호 없음
Profile

커뮤니티 소통 개발하기 API

MCVersions: 마인크래프트 버전 정보 라이브러리

2020.01.31 조회 수 334 추천 수 1

MCVersions

마인크래프트 버전 정보 요청 및 파싱 라이브러리

이 라이브러리는 Mojang 서버에 버전 정보를 요청하며, 요청 결과를 파싱하여 POJO로 반환합니다.

의존성 추가

Gradle(Kotlin DSL)

1
2
3
4
5
6
7
repositories {
    maven("https://maven.heartpattern.kr/repository/maven-public/")
}
 
dependencies {
    implementation("kr.heartpattern:MCVersions:1.0.0-SNAPSHOT")
}

cs

Gradle(Groovy DSL)

1
2
3
4
5
6
7
8
9
repositories {
    maven {
        url 'https://maven.heartpattern.kr/repository/maven-public/'
    }
}
 
dependencies {
    implementation 'kr.heartpattern:MCVersions:1.0.0-SNAPSHOT'
}
cs

Maven

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<repositories>
    <repository>
      <id>heartpattern</id>
    <url>https://maven.heartpattern.kr/repository/maven-public/</url>
  </repository>
</repositories>
 
<dependencies>
    <dependency>
      <groupId>kr.heartpattern</groupId>
    <artifactId>MCVersions</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </dependency>
</dependencies>
cs

사용법

Kotlin

코틀린 메서드는 Coroutine을 사용합니다. Coroutine을 선호하지 않는다면 자바 메서드를 사용하시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import kotlinx.coroutines.runBlocking
import kr.heartpattern.mcversions.MCVersions
 
val client = MCVersions() // 새로운 MCVersion Client 생성
 
runBlocking{ // Coroutine
    val versions = client.requestVersionSet() // 버전 목록 요청
    val latestVersionSummary = versions.versions.first() // 첫번째 버전을 가져옴
    val latestVersion = client.requestVersion(latestVersionSummary) // 자세한 정보 요청
  
    println(latestVersion.id)
    println(latestVersion.releaseTime)
}
 
client.close() // Client 닫기
cs

Java

자바 메서드는 Java8의 CompletableFuture를 사용합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import kr.heartpattern.mcversions.MCVersions;
import kr.heartpattern.mcversions.model.Version;
import kr.heartpattern.mcversions.model.VersionSet;
import kr.heartpattern.mcversions.model.VersionSummary;
 
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
 
class Scratch {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        MCVersions client = new MCVersions();
 
        CompletableFuture<VersionSet> versionsFuture = client.requestVersionSetAsync();
        VersionSet versions = versionsFuture.get();
 
        VersionSummary latestVersionSummary = versions.getVersions().get(0);
 
        CompletableFuture<Version> latestVersionFuture = client.requestVersionAsync(latestVersionSummary);
        Version latestVersion = latestVersionFuture.get();
 
        System.out.println(latestVersion.getId());
        System.out.println(latestVersion.getReleaseTime());
        client.close();
    }
}
cs

링크

Github: https://github.com/HeartPattern/MCVersions

Jenkins: https://jenkins.heartpattern.kr/job/HeartPattern/job/MCVersions/

Maven: https://maven.heartpattern.kr/repository/maven-public/

5개의 댓글

DDang_
2020.01.31

감사합니다

윈초
2020.02.03

버전 정보에는 어떤것들이 포함되있나요?

HeartPattern
2020.02.12
@윈초

버전 정보에는 마인크래프트 실행에 필요한 라이브러리의 이름과 다운로드 주소, 마인크래프트 파일의 주소, 버전, 릴리즈 날짜, 명령줄 인수, 메인 클래스, 로거 정보 등이 포함됩니다.

윈초
2020.02.12
@HeartPattern

기ㅣㅁ사합니다

형준hjun
2020.04.04

감사합니다

뉴스 및 창작물
/files/thumbnails/520/751/003/262x150.crop.jpg?20240328020349

레드스톤

마인크래프트 노트블록으로 만든 『 Bling‐Bang‐Bang‐Born 』 1

Sonttukk

2024-03-23

1

/files/thumbnails/467/742/003/262x150.crop.jpg?20240311163123

레드스톤

[노트블럭커버] MILGRAM -ミルグラム(밀그램)- / 아마네 「숙청 행진」 제 2심 2

리비온

2024-03-11

0

/files/thumbnails/846/741/003/262x150.crop.jpg?20240310221214

레드스톤

워든 vs 라마 200마리 1

GlassesFilm

2024-03-10

0

/files/thumbnails/542/739/003/262x150.crop.jpg?20240309070457

레드스톤

[고인의 명복을 빕니다][노트블럭]드래곤볼 GT 오프닝 - 점점 마음이 끌려

리비온

2024-03-09

0

/files/thumbnails/326/738/003/262x150.crop.jpg?20240328020414

레드스톤

마인크래프트 노트블록으로 만든 『 Build Our Machine 』

Sonttukk

2024-03-07

0