Skip to content

Commit

Permalink
아프리카 오류 수정.
Browse files Browse the repository at this point in the history
  • Loading branch information
taromati committed Jun 17, 2024
1 parent f5114c0 commit 0d0a28d
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 11 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ Java 버전: 17 이상
1. 터미널에서 `gradlew jar` 실행

## **다운로드 방법**
1. Github(https://github.com/taromati/done-connector) 의 Release 에서 [다운로드](https://github.com/taromati/done-connector/releases/download/1.6.0/done-connector-1.6.0.jar)
1. Github(https://github.com/taromati/done-connector) 의 Release 에서 [다운로드](https://github.com/taromati/done-connector/releases/download/1.7.0/done-connector-1.7.0.jar)

## **실행 방법**

1. plugins 폴더에 done-connector-1.6.0.jar 파일을 넣고 마인크래프트 서버를 1회 실행 후 종료
1. plugins 폴더에 done-connector-1.7.0.jar 파일을 넣고 마인크래프트 서버를 1회 실행 후 종료
2. plugins 폴더에서 done-connector/config.yml 파일 수정
3. 마인크래프트 서버 실행

Expand Down
16 changes: 11 additions & 5 deletions src/main/java/me/taromati/doneconnector/DoneConnector.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.protocols.Protocol;

import java.util.*;

Expand Down Expand Up @@ -195,7 +197,7 @@ private void connectChzzk(List<Map<String, String>> chzzkUserList) throws Interr
}

ChzzkWebSocket webSocket = new ChzzkWebSocket("wss://kr-ss1.chat.naver.com/chat", chatChannelId, accessToken, extraToken, chzzkUser, donationRewards);
webSocket.connectBlocking();
webSocket.connect();
chzzkWebSocketList.add(webSocket);
} catch (Exception e) {
Logger.info(ChatColor.RED + "[ChzzkWebsocket][" + chzzkUser.get("nickname") + "] 치지직 채팅에 연결 중 오류가 발생했습니다.");
Expand All @@ -208,7 +210,7 @@ private void connectChzzk(List<Map<String, String>> chzzkUserList) throws Interr

private void disconnectChzzk(List<ChzzkWebSocket> chzzkWebSocketList) throws InterruptedException {
for (ChzzkWebSocket webSocket : chzzkWebSocketList) {
webSocket.closeBlocking();
webSocket.close();
}
chzzkWebSocketList.clear();
}
Expand All @@ -218,8 +220,12 @@ private void connectAfreecaTV(List<Map<String, String>> afreecaTVUserList) throw
String afreecaTVId = afreecaTVUser.get("id");
try {
AfreecaTVLiveInfo liveInfo = AfreecaTVApi.getPlayerLive(afreecaTVId);
AfreecaTVWebSocket webSocket = new AfreecaTVWebSocket("wss://" + liveInfo.CHDOMAIN() + ":" + liveInfo.CHPT() + "/Websocket/" + liveInfo.BJID(), liveInfo, afreecaTVUser, donationRewards);
webSocket.connectBlocking();
Draft_6455 draft6455 = new Draft_6455(
Collections.emptyList(),
Collections.singletonList(new Protocol("chat"))
);
AfreecaTVWebSocket webSocket = new AfreecaTVWebSocket("wss://" + liveInfo.CHDOMAIN() + ":" + liveInfo.CHPT() + "/Websocket/" + liveInfo.BJID(), draft6455, liveInfo, afreecaTVUser, donationRewards);
webSocket.connect();
afreecaTVWebSocketList.add(webSocket);
} catch (Exception e) {
Logger.info(ChatColor.RED + "[AfreecaTVWebsocket][" + afreecaTVUser.get("nickname") + "] 아프리카TV 채팅에 연결 중 오류가 발생했습니다.");
Expand All @@ -232,7 +238,7 @@ private void connectAfreecaTV(List<Map<String, String>> afreecaTVUserList) throw

private void disconnectAfreecaTV(List<AfreecaTVWebSocket> afreecaTVWebSocketList) throws InterruptedException {
for (AfreecaTVWebSocket webSocket : afreecaTVWebSocketList) {
webSocket.closeBlocking();
webSocket.close();
}
afreecaTVWebSocketList.clear();
}
Expand Down
34 changes: 34 additions & 0 deletions src/main/java/me/taromati/doneconnector/SSLUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package me.taromati.doneconnector;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;

public class SSLUtils {
public static SSLSocketFactory createSSLSocketFactory() {
try {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[]{new SimpleX509TrustManager()}, null);
return sslContext.getSocketFactory();
} catch (Exception e) {
throw new RuntimeException(e);
}
}

private static class SimpleX509TrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}

@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}

@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import me.taromati.doneconnector.Logger;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import me.taromati.doneconnector.SSLUtils;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.handshake.ServerHandshake;

import java.net.URI;
Expand Down Expand Up @@ -48,9 +50,10 @@ public class AfreecaTVWebSocket extends WebSocketClient {

private Map<String, AfreecaTVPacket> packetMap = new HashMap<>();

public AfreecaTVWebSocket(String serverUri, AfreecaTVLiveInfo liveInfo, Map<String, String> afreecaTVUser, HashMap<Integer, List<String>> donationRewards) {
super(URI.create(serverUri));
public AfreecaTVWebSocket(String serverUri, Draft_6455 draft6455, AfreecaTVLiveInfo liveInfo, Map<String, String> afreecaTVUser, HashMap<Integer, List<String>> donationRewards) {
super(URI.create(serverUri), draft6455);
this.setConnectionLostTimeout(0);
this.setSocketFactory(SSLUtils.createSSLSocketFactory());

this.liveInfo = liveInfo;
this.afreecaTVUser = afreecaTVUser;
Expand Down Expand Up @@ -81,7 +84,7 @@ public void onOpen(ServerHandshake handshakedata) {
}
}
} catch (InterruptedException ignore) {
// Logger.info(ChatColor.RED + "아프리카 웹소켓 핑 스레드가 종료되었습니다.");
Logger.info(ChatColor.RED + "아프리카 웹소켓 핑 스레드가 종료되었습니다.");
}
}
});
Expand Down Expand Up @@ -171,7 +174,7 @@ public void onMessage(ByteBuffer bytes) {

} catch (Exception e) {
Logger.info(ChatColor.RED + "[AfreecaTVWebsocket][" + afreecaTVUser.get("nickname") + "] 아프리카 메시지 파싱 중 오류가 발생했습니다.");
// Logger.info(ChatColor.LIGHT_PURPLE + e.getMessage());
Logger.info(ChatColor.LIGHT_PURPLE + e.getMessage());
}
}

Expand Down

0 comments on commit 0d0a28d

Please sign in to comment.