Filled ExtendedChat - Unique Multiple Channels

Discussion in 'Plugin Requests' started by Dark_Serpent, Oct 8, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    Dark_Serpent

    Suggested name: ExtendedChat

    What I want: I want chat to be separated into these specific channels:

    Local Chat:
    • Default Channel
    • Will have a range of 30 blocks.
    • Players outside this range will not be able to see the message.
    • If no players are nearby, the words "Silence answers you." will appear appended before the message in the chat in color code c, but the message will still be sent.
    • You can switch to this channel if you are in another channel with /local.
    • This channel will have not have a prefix.
    • Certain words will be blacklisted from this chat. A config will be available to input these words. If a word in the blacklist is used, a notification will be sent to the player without his/her message appearing in the chat, saying: "You were not able to manifest this dialogue within this form." in color code c.
    Whisper Channel:
    • Secondary Channel
    • Will have a range of 3 blocks.
    • If no players are nearby, the words "Your whispers are heard by none." will appear appended before the message in color code c, but the message will still be sent.
    • You can switch to this channel if you are in another channel with /whisper.
    • This chat will have a prefix. This prefix does not replace any other chat managing plugin but rather is an addition. i.e. If we have a case where Person A's name appears like this:
    • [​IMG]
    • It will appear like this:
    • [​IMG]
    • As shown by the image, this prefix will be "(Whisper)" with a color code of 8.
    • Certain words will be blacklisted from this chat. A config will be available to input these words. If a word in the blacklist is used, a notification will be sent to the player without his/her message appearing in the chat, saying: "You were not able to manifest this dialogue within this form." in color code c.
    Yelling Channel:
    • Secondary Channel
    • With have a range of 60 blocks.
    • Has 3 charges. One charge is refunded every minute.
    • If no players are nearby, the words "Your shouts are beckoned by silence." will appear appended before the message in color code c, but the message will still be sent.
    • You can switch to this channel with /shout.
    • This chat will have a prefix that works exactly like the whisper channel, this time saying "(Shouting)" with color code e.
    Global Channel:
    • Secondary Channel
    • Will have infinite range.
    • You can switch to this channel with /global.
    • The prefix for this channel will be "(Allspeak)" with a color code of b.
    Telepathy Channel:
    • Secondary Channel
    • Can not be seen by any other player but yourself.
    • Certain words will be blacklisted from this chat. A config will be available to input these words. If a word in the blacklist is used, a notification will be sent to the player without his/her message appearing in the chat, saying: "You were not able to manifest this dialogue within this form." in color code c.
    • This chat can be seen globally by any player with the permission "extendedchat.telepathy.allsee".
    • You can switch to this channel with /telepathy.
    Permissions:
    extendedchat.local.use (Allows the use of local chat.)
    extendedchat.local.allsee (Allows the viewing of all chats sent in this channel. If the player is not in range, still sends a "nobody heard you" message, even though it was technically heard.)

    The permissions below will operate in a similar fashion to those above:

    extendedchat.whisper.use
    extendedchat.whisper.allsee
    extendedchat.global.use
    extendedchat.telepathy.use
    extendedchat.telepathy.allsee

    When I'd like it by: Whenever possible! Thank you to anyone who picks this up! :D

    Additional Notes: This plugin must be compatible for 1.7.10! Also, the blacklists for the channels which will have blacklists are separate!
     
    Last edited: Oct 9, 2016
  2. I am away from my computer currently, however this seems like an interesting idea! I've attempted something similar to this before. As soon as I get the chance I'll start work on this project.

    I hope this helps

    EDIT: What version of Minecraft is this for (I know it shouldn't matter but....)

    EDIT 2: Sorry I just realised it was at the end of the post. I'll start work on this plugin
     
    Last edited: Oct 9, 2016
  3. Offline

    Dark_Serpent

    I don't believe so, I did a quick run through my content and no duplicate posting popped up. I was worried I may have made a similar request but upon farther inspection it doesn't seem like I did!

    Thank you so much! :D

    I actually put it in the original post! I am currently running with Minecraft version 1.7.10 :p

    EDIT: I would like to clarify some things in my original post!
    • To enter the telepathy channel you must type in /telepathy
    • Every blacklist for every channel is seperate!
     
  4. Offline

    I Al Istannen

  5. Offline

    Dark_Serpent

    Yea I still do, I was planning to reply to @CreeperFace0777 later today for an update.
     
    I Al Istannen likes this.
  6. Offline

    I Al Istannen

    @Dark_Serpent
    I am doing this. If CreeperFace gets back in time, I might not release it, but if he has abandoned it, you will still get your plugin :p
     
    Dark_Serpent likes this.
  7. Offline

    Dark_Serpent

    Thanks so much! I'm assuming that CreeperFace is just very very busy, so thank you for taking it up in his stead :D
     
  8. Offline

    I Al Istannen

    @Dark_Serpent
    Okay, I think I am able to release a build that could be functional. Expect bugs though, it is nothing to test on a productive server xD

    I settled on an a bit different system. You basically create the channels in the config, and configure them through it and the language file:
    Code:
    channels:
      # just some name
      local:
        # the range it covers
        range: 30.0
        # the name of it. Will be the command AND the key for the language file
        name: "local"
        # The permission you need to use it
        permission: "chat.local.use"
        # The permission for all see (to see all chat messages in that channel)
        permissionAllSee: "chat.local.allSee"
        # Whether this is the default channel
        default: true
        # Whether this channel is enabled. Disabled channels won#t apppear in game
        enabled: true
        # If you add this line, the channel has charges. If you leave it out, it won't
        charge:
          # The charges you get every refund
          charges per refund: 1
          # The maximum charges you can have
          max charges: 3
          # The time until they get refunded
          time between refund: 10s
        # The blacklisted words in this channel
        blacklisted words:
        - "thisIsABlacklistedWord"
    This wil create a channel called "local" with a range of 30 blocks, the permission "chat.local.use", the all see permission "chat.local.allSee", it is enabled and the default channel. It requires charges, you can have 3 and it refunds one every 10 seconds. The only blacklisted word is "thisIsABlacklistedWord". The command to join is it "/local" as that is the name. If you enable the "unsafe reflection" at the top of the config, you can even tab complete the channel names. Isn't that cool? :p

    In the language file you need this:
    Code:
    # ******************************
    # *       Local Chat
    # ******************************
        
    local.chat.prefix= &8[&7Local&8] &r
    # Placeholders: {0} ==> The blacklisted word
    local.chat.contained.blacklisted.word= &cThe word '&4{0}&c' is blacklisted!
    local.chat.no.recipient= &cThe silence is your answer.
    local.chat.no.charge.left= &cYou have no charges left! Just wait a bit.
    This will make the prefix "&8[&7Local&8] &r", sends the message "&cThe silence is your answer" if no player can hear it, sends "&cYou have no charges left! Just wait a bit." if you have no charges.
    The first word MUST be the same as what you defined in the config section above.

    This means you can add as many channels with custom messages, range and charges as you like.

    Adding the channels you wanted took maybe 10 minutes, most of that thinking of what to write :p

    You can request features, changes in the notation or report bugs. In fact, it would be nice if you could do this ;)

    Greetings and here is the link,
    Link: Dropbox.

    EDIT: I forgot, here is the format for the duration for the charge:
    Code:
         * Format:
         * "xxS" ==> milliseconds
         * "xxt" ==> ticks
         * "xxs" ==> seconds
         * "xxm" ==> minutes
         * "xxh" ==> hours
         * "xxd" ==> days
     
  9. Offline

    Dark_Serpent

    @I Al Istannen
    First off, let me start by saying this is amazing :D Thank you so much!
    I did come across a problem right off the bat though:
    Code:
    Could not load 'plugins\ExtendedChat.jar' in folder 'plugins'
    org.bukkit.plugin.UnknownDependencyException: I_Al_Istannen_Util
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:216) 
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugins(CraftServer.java:358) 
        at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.java:135) 
        at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:457)
        at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)
    I was using Java 7 when testing. After updating to Java 8 I still receive this error.
     
  10. Offline

    I Al Istannen

    @Dark_Serpent
    Thanks. I hope it will work, was quite a bit of work ;)

    Yea, it needs a dependency. Shame on me for not stating that... Here you go.

    And you will indeed need Java 8.
     
  11. Offline

    Dark_Serpent

    Alright! It runs fine now!
    I have a pretty mundane suggestion though, could you add a reload command for testing purposes? Something such as /extendedchat reload if a quick change ever needs to be made

    EDIT 1: Also, would it be possible to have custom messages for switching chats, rather than a default message for each one?
    For instance, I would like to type /local, and have it say "You started speaking".

    EDIT 2: It seems the blacklist doesn't work for multiple words, for instance, if I add "Ice" to the blacklist, I cannot say the word "Ice", but I can say, "Wow, that Ice seems to be melting!"

    I also cannot add phrases to the blacklist, such as "Ice is cold", as they don't seem to work.

    Any way to add phrases and also omit certain words from an entire sentence?
     
    Last edited: Oct 16, 2016
  12. Offline

    I Al Istannen

    @Dark_Serpent
    Reload of what? Language, chat or both?

    The second should easily be possible with the way it is set up. I will change it.

    EDIT: Your edit2 regarding the word should work. I will try it.
    The phrases are not intended, I can probably fit it though.
     
    Last edited: Oct 16, 2016
  13. Offline

    Dark_Serpent

    @I Al Istannen
    I was thinking just Language, and thanks :D
    I'm getting this error every time somebody types something in chat, as well as to this, the permission "allSee" isn't functioning properly.
    Show Spoiler

    Code:
    Could not pass event AsyncPlayerChatEvent to Extended_Chat v1.0-SNAPSHOT
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487)
        at net.minecraft.server.v1_7_R3.PlayerConnection.chat(PlayerConnection.java:922)
        at org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer.chat(CraftPlayer.java:264)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180)
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:726)
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchServerCommand(CraftServer.java:713)
        at net.minecraft.server.v1_7_R3.DedicatedServer.aB(DedicatedServer.java:319)
        at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:284)
        at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583)
        at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489)
        at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
        at me.ialistannen.extendedchat.channel.ChatChannel.relayToSendersWithPermission(ChatChannel.java:230) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChatChannel.sendMessages(ChatChannel.java:175) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChannelManager.consumeChatEvent(ChannelManager.java:129) ~[?:?]
        at me.ialistannen.extendedchat.listener.ChatListener.onChat(ChatListener.java:17) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292)
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487)
        at net.minecraft.server.v1_7_R3.PlayerConnection.chat(PlayerConnection.java:922)
        at org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer.chat(CraftPlayer.java:264)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180)
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:726)
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchServerCommand(CraftServer.java:713)
        at net.minecraft.server.v1_7_R3.DedicatedServer.aB(DedicatedServer.java:319)
        at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:284)
        at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583)
        at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489)
        at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
        at me.ialistannen.extendedchat.channel.ChatChannel.relayToSendersWithPermission(ChatChannel.java:230) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChatChannel.sendMessages(ChatChannel.java:175) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChannelManager.consumeChatEvent(ChannelManager.java:129) ~[?:?]
        at me.ialistannen.extendedchat.listener.ChatListener.onChat(ChatListener.java:17) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292)
        ... 16 more
    [12:33:23] [Async Chat Thread - #3/ERROR]: Could not pass event AsyncPlayerChatEvent to Extended_Chat v1.0-SNAPSHOT
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484)
        at net.minecraft.server.v1_7_R3.PlayerConnection.chat(PlayerConnection.java:922)
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:862)
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28)
        at net.minecraft.server.v1_7_R3.PacketPlayInChat$1.run(PacketPlayInChat.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_101]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
        at me.ialistannen.extendedchat.channel.ChatChannel.relayToSendersWithPermission(ChatChannel.java:230) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChatChannel.sendMessages(ChatChannel.java:175) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChannelManager.consumeChatEvent(ChannelManager.java:129) ~[?:?]
        at me.ialistannen.extendedchat.listener.ChatListener.onChat(ChatListener.java:17) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292)
    

    It may be a plugin conflicting with this? I'll try to do some tests, but as inept as I am I don't know what any of this means.

    EDIT: Confirmed it's not a conflict with a plugin.
     
    Last edited: Oct 16, 2016
  14. Offline

    I Al Istannen

    @Dark_Serpent
    It is you running 1.7. The return type shouldn't be part of the method signature though. I will have a look. EDIT: I am DUMB

    The reload command and custom switch messages added.
    Blacklist check and this error fix needed.

    EDIT: This error is fixed. Blacklist should be "fixed" too.

    EDIT 2: Fixed error with language files and added new keys, deletion of old language file is heavily advised.

    EDIT 3: Update released: Here. Delete your old language file (Messages.properties)

    Changelog:
    • Added reload command (reloads language and channels)
    • Fixed blacklist not filtering correctly
    • Fixed assuming the return type of getOnlinePlayers() is a Collection ==> Support for 1.7 (hopefully)
     
    Last edited: Oct 16, 2016
  15. Offline

    Dark_Serpent

    @I Al Istannen
    I updated the plugins and the additions work great, but I'm still having some trouble with "allSee" and receiving some errors in my log, not sure if this is just a side effect of running 1.7:
    Show Spoiler

    Code:
    [13:29:57] [Async Chat Thread - #0/ERROR]: Could not pass event AsyncPlayerChatEvent to Extended_Chat v1.0-SNAPSHOT
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484)
        at net.minecraft.server.v1_7_R3.PlayerConnection.chat(PlayerConnection.java:922)
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:862)
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28)
        at net.minecraft.server.v1_7_R3.PacketPlayInChat$1.run(PacketPlayInChat.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_101]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
        at me.ialistannen.extendedchat.channel.ChatChannel.relayToSendersWithPermission(ChatChannel.java:232) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChatChannel.sendMessages(ChatChannel.java:175) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChannelManager.consumeChatEvent(ChannelManager.java:129) ~[?:?]
        at me.ialistannen.extendedchat.listener.ChatListener.onChat(ChatListener.java:17) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292)
        ... 13 more
    [13:30:23] [Async Chat Thread - #0/ERROR]: Could not pass event AsyncPlayerChatEvent to Extended_Chat v1.0-SNAPSHOT
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484)
        at net.minecraft.server.v1_7_R3.PlayerConnection.chat(PlayerConnection.java:922)
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:862)
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28)
        at net.minecraft.server.v1_7_R3.PacketPlayInChat$1.run(PacketPlayInChat.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_101]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_101]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
        at me.ialistannen.extendedchat.channel.ChatChannel.relayToSendersWithPermission(ChatChannel.java:232) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChatChannel.sendMessages(ChatChannel.java:175) ~[?:?]
        at me.ialistannen.extendedchat.channel.ChannelManager.consumeChatEvent(ChannelManager.java:129) ~[?:?]
        at me.ialistannen.extendedchat.listener.ChatListener.onChat(ChatListener.java:17) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292)
        ... 13 more
    

    EDIT: I should be more clear though, the "allSee" permission doesn't seem to be functioning as intended. Given the permissions, I cannot see anyone's chat.
     
  16. Offline

    I Al Istannen

    @Dark_Serpent
    Yes, seems like it still isn't 1.7 compatible. I made some hacky hacks, which should resolve this. (If anybody looks at the code I AM SORRY)

    Same link, here.
     
  17. Offline

    Dark_Serpent

    *Bows*
    This is honestly amazing, I don't know what hacks you had to employ but they worked (I'll avoid using wonderfully because I haven't seen the source code, for all I know it could be a rickety train that could derail at any moment XD)
    I don't really have any suggestions on how this could be better, I tested the blacklist and it works great. Thank you so much! I'll mark this as Filled.
     
  18. Offline

    I Al Istannen

    @Dark_Serpent
    No problem :) Really glad I could help!
    I had a ton of fun making this and I think it turned out quite okay. I must say I am quite pleased with it actually :p

    I don't know what you know about Java but the "hacky hacks" use Reflection to check the return type of the getOnlinePlayers method and react accordingly.

    It is basically a case differentiation between 1.7 and higher, at the cost of a bit more verbose and slightly slower code.
    Quite certainly nothing to worry about ;)

    Have a nice day!
     
    Dark_Serpent likes this.
Thread Status:
Not open for further replies.

Share This Page