Skip to content

Commit 653f0c8

Browse files
committed
send current voicechat mutes to new players, add BetterPerspectiveIntegration
1 parent c8e9272 commit 653f0c8

File tree

6 files changed

+85
-4
lines changed

6 files changed

+85
-4
lines changed
Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,28 @@
11
package net.labymod.serverapi.integration.betterperspective;
22

33
import com.google.auto.service.AutoService;
4+
import net.labymod.serverapi.core.AbstractLabyModPlayer;
45
import net.labymod.serverapi.core.AbstractLabyModProtocolService;
6+
import net.labymod.serverapi.core.integration.LabyModIntegrationPlayer;
57
import net.labymod.serverapi.core.integration.LabyModProtocolIntegration;
8+
import net.labymod.serverapi.core.model.moderation.Permission;
69

710
@AutoService(LabyModProtocolIntegration.class)
811
public class BetterPerspectiveIntegration implements LabyModProtocolIntegration {
912

13+
public static final Permission UNLOCK_CAMERA_PERMISSION = Permission.of(
14+
"better_perspective_unlock_camera"
15+
);
16+
17+
private AbstractLabyModProtocolService protocolService;
18+
19+
@Override
20+
public void initialize(AbstractLabyModProtocolService protocolService) {
21+
this.protocolService = protocolService;
22+
}
23+
1024
@Override
11-
public void initialize(AbstractLabyModProtocolService abstractLabyModProtocolService) {
12-
System.out.println("Initializing ToggleSneakIntegration");
25+
public LabyModIntegrationPlayer createIntegrationPlayer(AbstractLabyModPlayer<?> labyModPlayer) {
26+
return new BetterPerspectivePlayer(this.protocolService, labyModPlayer.getUniqueId());
1327
}
1428
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package net.labymod.serverapi.integration.betterperspective;
2+
3+
import net.labymod.serverapi.core.AbstractLabyModProtocolService;
4+
import net.labymod.serverapi.core.integration.LabyModIntegrationPlayer;
5+
import net.labymod.serverapi.core.packet.clientbound.game.moderation.PermissionPacket;
6+
7+
import java.util.UUID;
8+
9+
public class BetterPerspectivePlayer implements LabyModIntegrationPlayer {
10+
11+
private final AbstractLabyModProtocolService protocolService;
12+
private final UUID uniqueId;
13+
14+
protected BetterPerspectivePlayer(AbstractLabyModProtocolService protocolService, UUID uniqueId) {
15+
this.protocolService = protocolService;
16+
this.uniqueId = uniqueId;
17+
}
18+
19+
public void allowUnlockCamera() {
20+
this.protocolService.labyModProtocol().sendPacket(
21+
this.uniqueId,
22+
new PermissionPacket(BetterPerspectiveIntegration.UNLOCK_CAMERA_PERMISSION.allow())
23+
);
24+
}
25+
26+
public void denyUnlockCamera() {
27+
this.protocolService.labyModProtocol().sendPacket(
28+
this.uniqueId,
29+
new PermissionPacket(BetterPerspectiveIntegration.UNLOCK_CAMERA_PERMISSION.deny())
30+
);
31+
}
32+
33+
@Override
34+
public String toString() {
35+
return "BetterPerspectivePlayer{" +
36+
"uniqueId=" + this.uniqueId +
37+
'}';
38+
}
39+
}

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ subprojects {
4444

4545
dependencies {
4646
compileOnly("org.jetbrains:annotations:22.0.0")
47-
implementation("net.labymod.serverapi:core:0.1.7")
47+
implementation("net.labymod.serverapi:core:0.1.9")
4848
compileOnly("com.google.auto.service:auto-service:1.1.1")
4949
annotationProcessor("com.google.auto.service:auto-service:1.1.1")
5050
}

voicechat/src/main/java/net/labymod/serverapi/integration/voicechat/VoiceChatIntegration.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77
import net.labymod.serverapi.core.AddonProtocol;
88
import net.labymod.serverapi.core.integration.LabyModIntegrationPlayer;
99
import net.labymod.serverapi.core.integration.LabyModProtocolIntegration;
10+
import net.labymod.serverapi.integration.voicechat.model.VoiceChatMute;
1011
import net.labymod.serverapi.integration.voicechat.packets.VoiceChatMutePacket;
1112
import net.labymod.serverapi.integration.voicechat.packets.VoiceChatOpenChannelsPacket;
1213
import net.labymod.serverapi.integration.voicechat.packets.VoiceChatUnmutePacket;
1314
import org.jetbrains.annotations.NotNull;
1415

16+
import java.util.ArrayList;
17+
import java.util.List;
18+
1519
@AutoService(LabyModProtocolIntegration.class)
1620
public class VoiceChatIntegration implements LabyModProtocolIntegration {
1721

@@ -21,7 +25,6 @@ public class VoiceChatIntegration implements LabyModProtocolIntegration {
2125
@Override
2226
public void initialize(AbstractLabyModProtocolService protocolService) {
2327
this.protocolService = protocolService;
24-
System.out.println("Initializing VoiceChatIntegration");
2528

2629
this.addonProtocol = new AddonProtocol(protocolService, "voicechat");
2730
this.addonProtocol.registerPacket(0, VoiceChatMutePacket.class, Direction.CLIENTBOUND);
@@ -33,6 +36,18 @@ public void initialize(AbstractLabyModProtocolService protocolService) {
3336

3437
@Override
3538
public LabyModIntegrationPlayer createIntegrationPlayer(AbstractLabyModPlayer<?> labyModPlayer) {
39+
List<VoiceChatMute> mutes = new ArrayList<>();
40+
for (AbstractLabyModPlayer<?> player : this.protocolService.getPlayers()) {
41+
VoiceChatPlayer integrationPlayer = player.getIntegrationPlayer(VoiceChatPlayer.class);
42+
if (integrationPlayer != null && integrationPlayer.isMuted()) {
43+
mutes.add(integrationPlayer.getMute());
44+
}
45+
}
46+
47+
if (!mutes.isEmpty()) {
48+
labyModPlayer.sendPacket(new VoiceChatMutePacket(mutes));
49+
}
50+
3651
return new VoiceChatPlayer(
3752
this.protocolService,
3853
this.addonProtocol,

voicechat/src/main/java/net/labymod/serverapi/integration/voicechat/VoiceChatPlayer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,12 @@ public void openVoiceChatChannels() {
5757
public boolean isMuted() {
5858
return this.mute != null;
5959
}
60+
61+
@Override
62+
public String toString() {
63+
return "VoiceChatPlayer{" +
64+
"mute=" + this.mute +
65+
", uniqueId=" + this.uniqueId +
66+
'}';
67+
}
6068
}

voicechat/src/main/java/net/labymod/serverapi/integration/voicechat/packets/VoiceChatOpenChannelsPacket.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,9 @@ public void read(@NotNull PayloadReader reader) {
2424
public void write(@NotNull PayloadWriter writer) {
2525
// NO-OP
2626
}
27+
28+
@Override
29+
public String toString() {
30+
return "VoiceChatOpenChannelsPacket{}";
31+
}
2732
}

0 commit comments

Comments
 (0)