ワールドごとにチャットを分ける方法

サーバー運用される方はこちらで情報交換されてはいかがでしょうか?
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.296668)

ワールドごとにチャットを分ける方法

投稿記事by TETO » 2017年2月25日(土) 16:29

指定したワールドごとにチャットを分けたいと考えています。
例えばBuildWorldにいるならそこのワールドだけにしかそのワールドで発言されたものしか表示されない、MainLobbyとAFKWorldではどちらで発言してもどちらでも表示される。
Admin権限を持っている人は全てのワールドのチャットを見れる。
と言った感じにしたいです。

プラグインかskriptで実現したいを考えているのでアドバイスお願いします。
TETO
ID:edfaa2f3
 

  • (PostNo.296711)

Re: ワールドごとにチャットを分ける方法

投稿記事by Dotoo » 2017年2月25日(土) 21:16

そこまで細かいカスタマイズができるチャットプラグインは知らないのでSkriptになってしまいますが参考にどうぞ。
コード: 全て選択
on chat:
   cancel event
   if player is in world "buildworld":#チャット発言者がbuildworldというワールドにいるなら
      loop all players:#とりあえずプレイヤー全員を指定し
         if loop-player is in world "buildworld":#指定されたプレイヤーがbuildworldにいるなら
            send "<%player%>: %message%" to loop-player#メッセージを流す
         else if loop-player is op:#もしOPなら
            send "<%player%>: %message%" to loop-player#OPの時点でどこにいてもチャットを聞こえるようにする
   if player is in world "mainlobby" or "afkworld":
      loop all players:
         if loop-player is in world "mainlobby" or "afkworld":
            send "<%player%>: %message%" to loop-player
         else if loop-player is op:
            send "<%player%>: %message%" to loop-player

テストしてないので動かなかったら教えてください。
アバター
Dotoo
ID:2c0bdc81
金掘り
 
記事: 446
登録日時: 2012年11月21日(水) 15:20

  • (PostNo.296776)

Re: ワールドごとにチャットを分ける方法

投稿記事by ゲスト » 2017年2月26日(日) 12:13

このようなエラーが出てしまい、正常に動いていませんでした。

Empty configuration section! You might want to indent one or more of the subsequent lines to make them belong to this section or remove the colon at the end of the line if you don't want this line to start a section. (new 2.sk, line 4: loop all players:')
Empty configuration section! You might want to indent one or more of the subsequent lines to make them belong to this section or remove the colon at the end of the line if you don't want this line to start a section. (new 2.sk, line 4: loop all players:')
ゲスト
ID:d1c122c4
 

  • (PostNo.296793)

Re: ワールドごとにチャットを分ける方法

投稿記事by Dotoo » 2017年2月26日(日) 13:16

コード: 全て選択
on chat:
   cancel event
   if player is in world "buildworld":#チャット発言者がbuildworldというワールドにいるなら
      loop all players:#とりあえずプレイヤー全員を指定し
         if loop-player is in world "buildworld":#指定されたプレイヤーがbuildworldにいるなら
            send "<%player%>: %message%" to loop-player#メッセージを流す
         else if loop-player is op:#もしOPなら
            send "<%player%>: %message%" to loop-player#OPの時点でどこにいてもチャットを聞こえるようにする
   if player is in world "mainlobby" or "afkworld":
      loop all players:
         if loop-player is in world "mainlobby" or "afkworld":
            send "<%player%>: %message%" to loop-player
         else if loop-player is op:
            send "<%player%>: %message%" to loop-player


raw: http://pastebin.com/1n3rcz0e
アバター
Dotoo
ID:2c0bdc81
金掘り
 
記事: 446
登録日時: 2012年11月21日(水) 15:20

  • (PostNo.296852)

Re: ワールドごとにチャットを分ける方法

投稿記事by ゲスト » 2017年2月26日(日) 22:24

エラーは発生しなかったものの正常に動いていませんでした。。。
リロードをしてみるとこのような表示が赤で出たのですが何か関係あるのでしょうか?
an internal error has occurred while attempting to perform this command

サーバーの方にはこの様な表示でした
[22:21:53 WARN]: Unexpected exception while parsing console command "sk reload all"
org.bukkit.command.CommandException: Unhandled exception executing command 'sk' in plugin Skript v2.1.2
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-18fbb24]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit.jar:git-Bukkit-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:620) ~[craftbukkit.jar:git-Bukkit-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:606) [craftbukkit.jar:git-Bukkit-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:372) [craftbukkit.jar:git-Bukkit-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:336) [craftbukkit.jar:git-Bukkit-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:629) [craftbukkit.jar:git-Bukkit-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:537) [craftbukkit.jar:git-Bukkit-18fbb24]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class uk.co.umbaska.Enums.ParticleEnum
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
at java.lang.Class.getEnumConstantsShared(Unknown Source) ~[?:1.8.0_111]
at java.lang.Class.enumConstantDirectory(Unknown Source) ~[?:1.8.0_111]
at java.lang.Enum.valueOf(Unknown Source) ~[?:1.8.0_111]
at uk.co.umbaska.Utils.EnumClassInfo$1.parse(EnumClassInfo.java:84) ~[?:?]
at uk.co.umbaska.Utils.EnumClassInfo$1.parse(EnumClassInfo.java:71) ~[?:?]
at ch.njol.skript.registrations.Classes.parseSimple(Classes.java:398) ~[?:?]
at ch.njol.skript.registrations.Classes.parse(Classes.java:427) ~[?:?]
at ch.njol.skript.lang.UnparsedLiteral.getConvertedExpression(UnparsedLiteral.java:97) ~[?:?]
at ch.njol.skript.lang.UnparsedLiteral.getConvertedExpression(UnparsedLiteral.java:86) ~[?:?]
at ch.njol.skript.lang.UnparsedLiteral.getConvertedExpression(UnparsedLiteral.java:1) ~[?:?]
at ch.njol.skript.conditions.CondCompare.init(CondCompare.java:174) ~[?:?]
at ch.njol.skript.conditions.CondCompare.init(CondCompare.java:126) ~[?:?]
at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:237) ~[?:?]
at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:164) ~[?:?]
at ch.njol.skript.lang.Condition.parse(Condition.java:80) ~[?:?]
at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:694) ~[?:?]
at ch.njol.skript.ScriptLoader.loadScript(ScriptLoader.java:489) ~[?:?]
at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:239) ~[?:?]
at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:193) ~[?:?]
at ch.njol.skript.Skript.reload(Skript.java:548) ~[?:?]
at ch.njol.skript.SkriptCommand.onCommand(SkriptCommand.java:130) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-18fbb24]
... 8 more
ゲスト
ID:4ca8a619
 

  • (PostNo.296877)

Re: ワールドごとにチャットを分ける方法

投稿記事by Dotoo » 2017年2月27日(月) 00:39

バージョン違いか何かです。あと通常は/sk reload <filename>でスクリプト単体のみを再読込しましょう。
アバター
Dotoo
ID:28a018e8
金掘り
 
記事: 446
登録日時: 2012年11月21日(水) 15:20


Return to 質問:マルチサーバー運用

x