DiscordSRV 문서 원본 보기 ← DiscordSRV 문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. '''DiscordSRV'''는 [[마인크래프트]] 서버와 디스코드 서버를 연동하는 플러그인이다. 게임 내 채팅과 디스코드 채널을 실시간으로 동기화하고, 다양한 서버 이벤트를 디스코드로 전송할 수 있다. == 주요 기능 == === 채팅 연동 === * 양방향 채팅 동기화 * 다중 채널 지원 * 채팅 포맷 커스터마이징 * 멘션 및 이모지 지원 === 계정 연동 === * 마인크래프트-디스코드 계정 연결 * 역할 동기화 * 권한 그룹 연동 * 닉네임 동기화 === 알림 시스템 === * 서버 시작/종료 알림 * 플레이어 입장/퇴장 메시지 * 업적 달성 알림 * 죽음 메시지 === 콘솔 연동 === * 디스코드에서 콘솔 명령어 실행 * 콘솔 로그 실시간 전송 * 원격 서버 관리 == 명령어 == {| class="wikitable" ! 명령어 !! 설명 !! 권한 |- | /discord link || 계정 연동 코드 생성 || discordsrv.link |- | /discord unlink || 계정 연동 해제 || discordsrv.unlink |- | /discord linked || 연동된 계정 확인 || discordsrv.linked |- | /discord reload || 설정 리로드 || discordsrv.reload |- | /discord debug || 디버그 모드 토글 || discordsrv.debug |- | /discord broadcast <메시지> || 디스코드로 방송 || discordsrv.broadcast |} == 봇 설정 == === 디스코드 봇 생성 === <pre> # Discord Developer Portal에서 봇 생성 후 # config.yml에 토큰 입력 BotToken: "YOUR_BOT_TOKEN_HERE" # 필요한 봇 권한: # - 메시지 읽기/쓰기 # - 멤버 목록 보기 # - 역할 관리 # - 웹훅 관리 # - 이모지 사용 </pre> === 채널 설정 === <pre> # 채널 ID 설정 Channels: {"global": "000000000000000000"} # 다중 채널 설정 Channels: { "global": "111111111111111111", "admin": "222222222222222222", "trade": "333333333333333333" } # 콘솔 채널 DiscordConsoleChannelId: "444444444444444444" </pre> == 메시지 포맷 == === 게임 → 디스코드 === <pre> # Minecraft -> 디스코드 메시지 포맷 DiscordChatChannelPrefixRequiredToProcessMessage: "" DiscordChatChannelFormat: "**%primarygroup%** %displayname% » %message%" # 플레이어 입장/퇴장 DiscordChatChannelJoinMessage: ":arrow_right: **%displayname%** 님이 서버에 접속했습니다" DiscordChatChannelLeaveMessage: ":arrow_left: **%displayname%** 님이 서버를 떠났습니다" # 업적 메시지 DiscordChatChannelAchievementMessage: ":medal: **%displayname%** 님이 **%achievement%** 업적을 달성했습니다!" </pre> === 디스코드 → 게임 === <pre> # 디스코드 -> Minecraft 메시지 포맷 MinecraftChatChannelFormat: "&7[Discord] &f%toprole% %username% &7» &f%message%" # 역할별 색상 DiscordChatChannelRoleAliases: { "Admin": "&c[관리자]", "Moderator": "&9[스태프]", "VIP": "&6[VIP]" } </pre> == 계정 연동 시스템 == === 연동 설정 === <pre> # 계정 연동 설정 MinecraftDiscordAccountLinkingEnabled: true # 연동 시 역할 부여 MinecraftDiscordAccountLinkedRoleNameToAddUserTo: "Verified" # 연동 필수 여부 MinecraftDiscordAccountLinkingRequiredToJoin: false MinecraftDiscordAccountLinkingKickMessage: "&c계정 연동이 필요합니다. /discord link" </pre> === 권한 동기화 === <pre> # 그룹-역할 동기화 GroupRoleSynchronizationEnabled: true # 그룹 매핑 GroupRoleSynchronizationRoleMapping: { "Admin": "000000000000000000", "Moderator": "111111111111111111", "VIP": "222222222222222222", "Member": "333333333333333333" } # 단방향/양방향 동기화 GroupRoleSynchronizationOneWay: false </pre> == 고급 기능 == === 웹훅 설정 === <pre> # 웹훅을 통한 메시지 전송 DiscordChatChannelWebhookEnabled: true # 플레이어 머리 아바타 사용 DiscordChatChannelAvatarEnabled: true DiscordChatChannelAvatarUrl: "https://mc-heads.net/avatar/{player}/{size}.png" </pre> === 음성 채널 연동 === <pre> # 음성 채널 모듈 VoiceEnabled: true # 근접 음성 채팅 VoiceProximityEnabled: true VoiceProximityRadius: 50 # 음성 채널 자동 이동 VoiceMoveToAfk: true VoiceAfkChannelId: "555555555555555555" </pre> === 플레이스홀더 지원 === <pre> # PlaceholderAPI 변수 사용 DiscordChatChannelFormat: "**%vault_prefix%** %displayname% » %message%" # 상태 메시지에 사용 DiscordGameStatus: "온라인: %playercount%/%maxplayers%" # 토픽 업데이트 ChannelTopicUpdaterChannelTopicsFormat: { "global": "마인크래프트 채팅 | 온라인: %playercount%/%maxplayers% | TPS: %tps%" } </pre> == 보안 설정 == <pre> # 콘솔 명령어 제한 DiscordConsoleChannelBlacklistedCommands: [ "op", "deop", "stop", "restart" ] # 역할별 콘솔 접근 DiscordConsoleChannelRequiredRoleIds: ["999999999999999999"] # 메시지 필터링 DiscordChatChannelBlockedWords: ["욕설1", "욕설2"] </pre> == 이벤트 전송 == === 서버 이벤트 === <pre> # 서버 시작/종료 DiscordChatChannelServerStartupMessage: ":white_check_mark: **서버가 시작되었습니다!**" DiscordChatChannelServerShutdownMessage: ":octagonal_sign: **서버가 종료되었습니다!**" # 플레이어 이벤트 PlayerDeathMessages: true PlayerAdvancementMessages: true PlayerFirstJoinMessages: true </pre> === 커스텀 이벤트 === <pre> # alerts.yml Alerts: - Trigger: "PlayerDeath" Channel: "alerts" Message: ":skull: **%player%** 님이 사망했습니다: %deathmessage%" - Trigger: "PlayerCommand" Channel: "admin-log" Message: ":keyboard: **%player%** 실행: `%command%`" </pre> == 임베드 메시지 == <pre> # 임베드 메시지 설정 DiscordChatChannelEmbedEnabled: true # 임베드 설정 Embed: Enabled: true Color: "#00FF00" Author: Name: "%displayname%" Url: "" ImageUrl: "https://mc-heads.net/avatar/{player}/100.png" ThumbnailUrl: "" Title: Text: "" Url: "" Description: "%message%" Fields: [] Footer: Text: "서버 시간: %time%" IconUrl: "" </pre> == 문제 해결 == * '''봇이 오프라인''': 토큰 확인, 인터넷 연결 확인 * '''메시지가 전송되지 않음''': 채널 ID 확인, 봇 권한 확인 * '''연동이 안 됨''': 방화벽 설정, 플러그인 버전 확인 * '''한글 깨짐''': UTF-8 인코딩 설정 == 성능 최적화 == <pre> # 성능 관련 설정 ChannelTopicUpdaterRateInMinutes: 5 # 토픽 업데이트 주기 DiscordChatChannelTranslateMentions: false # 멘션 변환 비활성화 CachePoolSize: 10 # 캐시 풀 크기 </pre> == 활용 예시 == * '''커뮤니티 관리''': 게임과 디스코드 통합 관리 * '''이벤트 공지''': 중요 공지사항 양방향 전달 * '''스태프 관리''': 콘솔 원격 접속, 로그 모니터링 * '''거래 채널''': 거래 전용 채팅 채널 운영 * '''신고 시스템''': 디스코드를 통한 신고 접수 [[분류:마인크래프트]] DiscordSRV 문서로 돌아갑니다. 분류