Skip to content

Commit

Permalink
Showing 5 changed files with 58 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/com/github/ucchyocean/lc/Channel.java
Original file line number Diff line number Diff line change
@@ -281,7 +281,7 @@ public void addMember(String name) {
}

// メンバー追加
if ( members.size() == 0 ) {
if ( members.size() == 0 && moderator.size() == 0 ) {
moderator.add(name);
}
if ( !members.contains(name) ) {
18 changes: 18 additions & 0 deletions src/main/java/com/github/ucchyocean/lc/LunaChatConfig.java
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
package com.github.ucchyocean.lc;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.bukkit.configuration.file.FileConfiguration;
@@ -43,6 +44,10 @@ public class LunaChatConfig {
* 参加させない場合は、から文字列 "" を指定すること。 */
private String globalChannel;

/** サーバーに参加したユーザーに必ず参加させるチャンネル。<br/>
* グローバルチャンネルとは別で指定できる。 */
private List<String> forceJoinChannels;

/** ブロードキャストチャンネルの発言内容を、dynmapに送信するかどうか。<br/>
* dynmapがロードされていない場合は、この設定は無視される(false扱い)。 */
private boolean sendBroadcastChannelChatToDynmap;
@@ -108,6 +113,10 @@ public void reloadConfig() {
createChannelOnJoinCommand =
config.getBoolean("createChannelOnJoinCommand", true);
globalChannel = config.getString("globalChannel", "");
forceJoinChannels = config.getStringList("forceJoinChannels");
if ( forceJoinChannels == null ) {
forceJoinChannels = new ArrayList<String>();
}
sendBroadcastChannelChatToDynmap =
config.getBoolean("sendBroadcastChannelChatToDynmap", true);
ngword = config.getStringList("ngword");
@@ -195,6 +204,15 @@ public String getGlobalChannel() {
return globalChannel;
}

/**
* サーバーに参加したユーザーに必ず参加させるチャンネル。<br/>
* グローバルチャンネルとは別で指定できる。
* @return globalChannelを返す
*/
public List<String> getForceJoinChannels() {
return forceJoinChannels;
}

/**
* NGワード
* @return ngwordを返す
34 changes: 34 additions & 0 deletions src/main/java/com/github/ucchyocean/lc/PlayerListener.java
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -75,6 +76,9 @@ public void onJoin(PlayerJoinEvent event) {

Player player = event.getPlayer();

// 強制参加チャンネル設定を確認し、参加させる
forceJoinToForceJoinChannels(player);

// グローバルチャンネル設定がある場合
if ( !LunaChat.config.getGlobalChannel().equals("") ) {
tryJoinToGlobalChannel(player);
@@ -241,4 +245,34 @@ private boolean tryJoinToGlobalChannel(Player player) {

return true;
}

/**
* 強制参加チャンネルへ参加させる
* @param player プレイヤー
*/
private void forceJoinToForceJoinChannels(Player player) {

List<String> forceJoinChannels = LunaChat.config.getForceJoinChannels();
String playerName = player.getName();

for ( String cname : forceJoinChannels ) {

// チャンネルが存在しない場合は作成する
Channel channel = LunaChat.manager.getChannel(cname);
if ( channel == null ) {
channel = LunaChat.manager.createChannel(cname);
}

// チャンネルのメンバーでないなら、参加する
if ( !channel.getMembers().contains(playerName) ) {
channel.addMember(playerName);
}

// デフォルト発言先が無いなら、グローバルチャンネルに設定する
Channel dchannel = LunaChat.manager.getDefaultChannel(playerName);
if ( dchannel == null ) {
LunaChat.manager.setDefaultChannel(playerName, cname);
}
}
}
}
1 change: 1 addition & 0 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
@@ -11,6 +11,7 @@ zeroMemberRemove: false
showListOnJoin: false
createChannelOnJoinCommand: true
globalChannel: ''
forceJoinChannels: []
sendBroadcastChannelChatToDynmap: true

ngword: []
4 changes: 4 additions & 0 deletions src/main/resources/config_ja.yml
Original file line number Diff line number Diff line change
@@ -32,6 +32,10 @@ createChannelOnJoinCommand: true
# グローバルチャンネルを作らず通常のチャットを使用する場合は、から文字列 「''」 を指定すること。
globalChannel: ''

# サーバーに参加したユーザーに必ず参加させるチャンネル。
# グローバルチャンネルとは別で指定できる。
forceJoinChannels: []

# ブロードキャストチャンネルの発言内容を、dynmapに送信するかどうか。
# dynmapがロードされていない場合は、この設定は無視される(false扱い)。
sendBroadcastChannelChatToDynmap: true

0 comments on commit 1637e3b

Please sign in to comment.