Skip to content

Commit 33ab197

Browse files
committed
[FEAT] Add APIs from PR #24
1 parent 357eb30 commit 33ab197

6 files changed

Lines changed: 141 additions & 5 deletions

File tree

src/main/java/com/hypherionmc/craterlib/nojang/advancements/BridgedAdvancement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ public Optional<BridgedDisplayInfo> displayInfo() {
1818
return Optional.empty();
1919
}
2020

21+
public Advancement toMojang() {
22+
return internal;
23+
}
24+
2125
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.hypherionmc.craterlib.nojang.advancements;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import net.minecraft.advancements.AdvancementHolder;
5+
6+
@RequiredArgsConstructor(staticName = "of")
7+
public class BridgedAdvancementHolder {
8+
9+
private final AdvancementHolder internal;
10+
11+
public BridgedAdvancement value() {
12+
return BridgedAdvancement.of(internal.value());
13+
}
14+
15+
public AdvancementHolder toMojang() {
16+
return internal;
17+
}
18+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.hypherionmc.craterlib.nojang.advancements;
2+
3+
import com.hypherionmc.craterlib.utils.ChatUtils;
4+
import lombok.RequiredArgsConstructor;
5+
import net.kyori.adventure.text.Component;
6+
import net.minecraft.advancements.AdvancementProgress;
7+
import org.jetbrains.annotations.Nullable;
8+
9+
import java.time.Instant;
10+
11+
@RequiredArgsConstructor(staticName = "of")
12+
public class BridgedAdvancementProgress {
13+
14+
private final AdvancementProgress internal;
15+
16+
public boolean isDone() {
17+
return internal.isDone();
18+
}
19+
20+
public boolean hasProgress() {
21+
return internal.hasProgress();
22+
}
23+
24+
public float getPercent() {
25+
return internal.getPercent();
26+
}
27+
28+
public Component getProgressText() {
29+
return ChatUtils.mojangToAdventure(internal.getProgressText());
30+
}
31+
32+
public Iterable<String> getRemainingCriteria() {
33+
return internal.getRemainingCriteria();
34+
}
35+
36+
public Iterable<String> getCompletedCriteria() {
37+
return internal.getCompletedCriteria();
38+
}
39+
40+
@Nullable
41+
public Instant getFirstProgressDate() {
42+
return internal.getFirstProgressDate();
43+
}
44+
45+
public int compareTo(BridgedAdvancementProgress other) {
46+
return internal.compareTo(other.internal);
47+
}
48+
49+
public AdvancementProgress toMojang() {
50+
return internal;
51+
}
52+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.hypherionmc.craterlib.nojang.advancements;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import net.minecraft.server.PlayerAdvancements;
5+
6+
@RequiredArgsConstructor(staticName = "of")
7+
public class BridgedPlayerAdvancements {
8+
9+
private final PlayerAdvancements internal;
10+
11+
public BridgedAdvancementProgress getOrStartProgress(BridgedAdvancementHolder advancement) {
12+
return BridgedAdvancementProgress.of(internal.getOrStartProgress(advancement.toMojang()));
13+
}
14+
15+
public PlayerAdvancements toMojang() {
16+
return internal;
17+
}
18+
19+
}

src/main/java/com/hypherionmc/craterlib/nojang/client/server/BridgedIntegratedServer.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
package com.hypherionmc.craterlib.nojang.client.server;
22

3+
import com.hypherionmc.craterlib.nojang.advancements.BridgedAdvancementHolder;
4+
import com.hypherionmc.craterlib.nojang.advancements.BridgedPlayerAdvancements;
35
import lombok.RequiredArgsConstructor;
6+
import net.minecraft.advancements.AdvancementHolder;
47
import net.minecraft.client.server.IntegratedServer;
58

9+
import java.util.Collection;
10+
import java.util.LinkedList;
11+
import java.util.UUID;
12+
613
@RequiredArgsConstructor(staticName = "of")
714
public class BridgedIntegratedServer {
815

@@ -16,4 +23,21 @@ public IntegratedServer toMojang() {
1623
return internal;
1724
}
1825

19-
}
26+
public BridgedPlayerAdvancements getPlayerAdvancements(UUID uuid) {
27+
return BridgedPlayerAdvancements.of(internal.getPlayerList().getPlayer(uuid).getAdvancements());
28+
}
29+
30+
public Collection<BridgedAdvancementHolder> getAdvancements() {
31+
Collection<AdvancementHolder> ah = internal.getAdvancements().getAllAdvancements();
32+
LinkedList<BridgedAdvancementHolder> ret = new LinkedList<>();
33+
for(AdvancementHolder a: ah) {
34+
BridgedAdvancementHolder bah = BridgedAdvancementHolder.of(a);
35+
ret.add(bah);
36+
}
37+
return ret;
38+
}
39+
40+
public boolean isHardcore() {
41+
return internal.isHardcore();
42+
}
43+
}

src/main/java/com/hypherionmc/craterlib/nojang/server/BridgedMinecraftServer.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.hypherionmc.craterlib.nojang.server;
22

3+
import com.hypherionmc.craterlib.nojang.advancements.BridgedAdvancementHolder;
4+
import com.hypherionmc.craterlib.nojang.advancements.BridgedPlayerAdvancements;
35
import com.hypherionmc.craterlib.nojang.authlib.BridgedGameProfile;
46
import com.hypherionmc.craterlib.nojang.client.multiplayer.BridgedClientLevel;
57
import com.hypherionmc.craterlib.nojang.commands.BridgedFakePlayer;
@@ -9,12 +11,12 @@
911
import lombok.RequiredArgsConstructor;
1012
import net.kyori.adventure.text.Component;
1113
import net.minecraft.SharedConstants;
14+
import net.minecraft.advancements.AdvancementHolder;
1215
import net.minecraft.server.MinecraftServer;
1316
import net.minecraft.server.players.UserBanListEntry;
1417
import net.minecraft.server.players.UserWhiteListEntry;
1518

16-
import java.util.ArrayList;
17-
import java.util.List;
19+
import java.util.*;
1820

1921
@RequiredArgsConstructor(staticName = "of")
2022
public class BridgedMinecraftServer {
@@ -79,7 +81,7 @@ public List<BridgedPlayer> getPlayers() {
7981
}
8082

8183
public BridgedGameRules getGameRules() {
82-
return BridgedGameRules.bridge(internal.getGameRules());
84+
return BridgedGameRules.bridge(internal.getWorldData().getGameRules());
8385
}
8486

8587
public void banPlayer(BridgedGameProfile profile) {
@@ -94,4 +96,21 @@ public MinecraftServer toMojang() {
9496
return internal;
9597
}
9698

97-
}
99+
public BridgedPlayerAdvancements getPlayerAdvancements(UUID uuid) {
100+
return BridgedPlayerAdvancements.of(internal.getPlayerList().getPlayer(uuid).getAdvancements());
101+
}
102+
103+
public Collection<BridgedAdvancementHolder> getAdvancements() {
104+
Collection<AdvancementHolder> ah = internal.getAdvancements().getAllAdvancements();
105+
LinkedList<BridgedAdvancementHolder> ret = new LinkedList<>();
106+
for(AdvancementHolder a: ah) {
107+
BridgedAdvancementHolder bah = BridgedAdvancementHolder.of(a);
108+
ret.add(bah);
109+
}
110+
return ret;
111+
}
112+
113+
public boolean isHardcore() {
114+
return internal.isHardcore();
115+
}
116+
}

0 commit comments

Comments
 (0)