RealisticChat
MYCRAFTisbest and POSITION OPEN's RealisticChat - realistic local chat!
FORMERLY
-----------------
CakeMushroom's RealisticChat - realistic local chat! |
a collaboration of cakenggt and mushroomhostage |
-----------------
DONATORS:
Godpuppet2 - $20USD TOP DONATOR
TheOnlyShad0w - $10USD
RealisticChat 3.0- released, now with better 1.4 support
Features:
- Local chat
- Yelling
- Whispering
- Bullhorns
- Ear trumpets
- Walkie-talkies
- Smartphones
Basic Usage
Talk normally. You'll only be able to clearly hear other players within 25 meters.
Beyond 25 up to 50 meters, chat will break up: letters will randomly drop from your messages, with increasing probability the greater the distance.
To reach someone further away, you can yell. For example: "*help!*" adds 10 m. Multiple exclamation marks will make you yell louder: "*help!!!!*" adds 500 m. Yelling will also make garbled messages clearer. However, yelling comes at the cost of decreasing your food level!
If you want to talk to people very close by but hide your chat from others further away, you can decrease your chat range by whispering, for example: "*(lets go)*". Only players within 10 m will be able to hear your whispering, and only those within 5 m will be able to hear you clearly.
Advanced Usage
To further increase your chat range, speak while holding a bullhorn (diamond). This will double your range within a conical region in front of you, just like a real bullhorn (or megaphone). Bullhorns can be used in conjunction with yelling. Additionally, players hearing messages from bullhorns will recognize the direction it is coming from. You can use this ability for [acoustic location](http://en.wikipedia.org/wiki/Acoustic_location) if you get lost.
For stealthily listening in for covert operations, wear an ear trumpet. A precursor from the 1600s to the modern hearing aid, the [ear trumpet](http://en.wikipedia.org/wiki/Ear_trumpet) can increase your hearing range significantly, but has no effect on your speaking range, allowing you to eavesdrop on enemy bases from a safe distance while talking casually as normal with your partners in crime. Craft it in the shape of a helmet with a diamond in the center, out of wooden planks (+100 m), leather (+150 m), or iron (+400 m), then wear it on your head as armor for improved hearing. It has the same durability as a Golden Helmet.
For long-range communication, use a walkie talkie (compass). Hold the compass in your *hand* and speak as normal, and your voice will be clearly transmitted through the device up to 1000 meters (and break up beyond 1000 meters, up to 2000 meters) to other players holding a compass anywhere in their *hotbar*. Walkie Talkies are especially useful for keeping in touch with other players while travelling.
For private one-to-one communication, use a smartphone (clock). Hold the clock in your *hand*, and use speak into it the name of a player you want to call. Its high-tech *voice activated calling* capabilities will cause the device to ring up the player, giving them at most 4 times until they pickup by switching to the phone. Once the call is established anything said will also be transferred over the air to the other player. You can hang up the call by moving your hand to another item. (Note that other players can overhear you if they are nearby, just as if you are talking normally, so be sure to go somewhere far away or use whispering if you really want your conversation to be private, but this feature can be disabled if desired, see below). Smartphones are still experimental, please report any problems or suggested enhancements.
All distances, items, and other parameters are configurable to your liking; see below.
Commands
None
Configuration
speakingRangeMeters (50.0): Maximum distance between players to allow any chat message to be received, under normal conditions. Note that the message may be garbled at longer distances, see below.
garbleRangeDivisor (2.0): Fraction of speakingRangeDistance after which the chat is garbled (letters randomly dropped with increasing probability further away). For example, 2.0 means beyond 1/2.0 = half of the maximum hearing range (default 50/2 = 25 m), chat will be garbled.
garblePartialChance (0.10): When a character is about to be dropped due to garbling, use this probability to determine if the character should instead be dimmed (colored chatDimMessageColor), representing a barely audible piece of the message. Set to 1.0 to always dim letters instead of dropping, or 0.0 to disable dimming entirely.
garbleAllDroppedMessage (~~): Message replacement to display if you were unlucky enough for your entire message to be garbled. Set to null to disable replacement.
chatLineFormat (%1$s: %2$s): The format of the chat line to be shown to the player. The first argument is replaced with the player's display name, and the second with the message text. For the traditional chat display, try "<%1$s> %2$s", or to hide player names for anonymous chat, use just "%2$s".
chatSpokenPlayerColor (YELLOW): Color of player name shown to a player when they themselves speak.
chatHeardPlayerColor (GREEN): Color of player name of speech heard from other players.
chatMessageColor (WHITE): Color of chat messages.
chatDimMessageColor (DARK\_GRAY): Color of partially-received characters, garbled by garblePartialChance. Set to "MAGIC" for an interesting effect.
yellMax (4): Maximum exclamation marks allowed at end of message to increase yelling level. To disable yelling entirely, set to 0.
yell.#.hunger (1, 2, 4, 20): Hunger (in half-drumsticks) depleted for each yelling level (number of trailing exclamation marks). 20 depletes all hunger.
yell.#.rangeIncrease (10.0, 50.0, 100.0, 500.0): Range increase in meters, beyond the normal range, for each yelling level.
whisperRangeDecrease (40.0): Distance to decrease the chat range when whispering (parenthesized chat). For example, 40.0 will decrease the normal 50.0 range to 10.0 meters maximum. The garble range divisor still applies, so (by default) only those 10.0/2 = 5.0 meters away will hear you clearly.
bullhornEnable (true): Enable or disable bullhorns.
bullhornItem (diamond): The hand-held item to use to represent bullhorns.
bullhornFactor (2.0): Multiply chat range by this value when player is holding a bullhorn (diamond).
bullhornWidthDegrees (70.0): Width of the bullhorn conical region in front of the player, in degrees. 70 is the default Minecraft field-of-view.
bullhornChatLineFormat ("%1$s [%3$s]: %2$s"): Messages received from bullhorns will be formatted using this format string, with the third field replaced by the compass direction from where the message was received. See also chatLineFormat.
earTrumpetEnable (true): Enable or disable ear trumpets.
earTrumpetEnableCrafting (true): Enable or disable crafting of ear trumpets.
earTrumpet.#.rangeIncrease (100.0, 150.0, 400.0): Hearing range increase for each of the tiers of ear trumpets. The wearer will be able to hear (but not speak) up to this increased range.
walkieEnable (true): Enable or disable walkie talkies.
walkieItem (compass): The hand-held item to use to represent walkie talkies.
walkieRangeMeters (2000.0): The maximum range of walkie talkies. Note that near the end of this range, messages will be garbled depending on walkieGarbleDivisor.
walkieGarbleDivisor (2.0): Fraction of walkieRangeMeters after which the transmissions are garbled. Using the defaults, beyond 2000.0/2 = 1000 m the messages will break up, and from 0 - 1000 m, messages will be clear.
walkieChatLineFormat ("[walkie] %1$s: %2$s"): Messages received from walkie-talkies will be formatted using this format string. See also chatLineFormat.
walkieHearLocally (true): When talking into a walkie-walkie, allow other people nearby to overhear you. This adds realism since you'll have to whisper or go away from other players to have a private conversation, but can show doubled messages if the player you're talking to on teh walkie is near enough to hear you locally as well. If false, the message will only be sent into the walkie-talkie, not to nearby users.
globalPrefix ('/g '): Messages beginning this prefix will be delivered globally, regardless of local chat restrictions. You can either use a command (examples: '/g ' or '/s '), or a prefix in normal chat (example: '@'). Set to null to disable.
globalChatLineFormat ("[global] %1$s: %2$s"): Messages sent using /g will be formatted using this format string. See also chatLineFormat.
smartphoneEnable (true): Enable smartphones.
smartphoneItem (watch): Item to use to represent a smartphone.
smartphoneChatLineFormat ("[cell] %1$s: %2$s"): Messages received from smartphones will be formatted using this format string. See also chatLineFormat.
smartphoneHearLocally (true): When talking into a smartphone, allow other people nearby to overhear you. See also walkieHearLocally.
smartphoneRings (4): Number of times to ring smartphone when calling a player before they answer.
Permissions
All permissions default to true.
realisticchat.yell: Allows you to yell
realisticchat.whisper: Allows you to whisper
realisticchat.bullhorn: Allows you to speak into bullhorns
realisticchat.eartrumpet: Allows you to wear ear trumpets and hear better
realisticchat.walkie.talk: Allows you to talk into walkie-talkies
realisticchat.walkie.hear: Allows you to hear from walkie-talkies
realisticchat.smartphone.call: Allows you to place calls with your smartphone
realisticchat.smartphone.answer: Allows you to answer calls with your smartphone
Comming Soon:
- Op override (adding perms to allow Ops to hear and be heard by all)
- World Comminicator (diamond hoe, It works everywhere, you will probably need something to power it)
- Pager (iron ingot, it just tells u the name of the person who contacted you by ether pager or phone)
- Home Phone (made of an iron block and if within an area of it, a ring message will be heard and right clicking it will pick it up (ect))
- Newb message (a customizable message sent to first time players to describe the server and how the chat works)
- Maybe Cell tower (configured block) and phone lines (string)??
- Maybe Outlets (Phones need to be charged)??
- anything else?
Any possibility that the items can be set to item IDs (with damage values)? Thinking ahead (Mod API) or if someone is using Spout for custom items.
@eriorkless
Yeah, multiworld support would really enhance this plugin. For example, in world A I want the plugin to work normally and in all other worlds I want it to only remove the chat broadcasted from world A.
could you, please! make an option to enable/disable text formatting? I'd like to keep my colored text because it is used to identify nationality in my game.
Greetings from Chile! And awesome plugin btw
Do you think you can add Multi World Support?
It doesn't seem to work propely with Factions and jChat :( Really needed this for my sever.
@mushroomhostage
Yeah, Signal Tuner's from RailCraft. (Been using Tekkit! :D)
Sure, smartphones go through big places IRL.. but I don't see those places in Minecraft! Which I thought it would be logical to have them have the distance cutoff, like walkie talkies.
And yeah, I'll update to 2.0 and turn the Tuners from Walkies to Smartphones again. Woo, ringing phones\\
Hello
How disable the plugin for some world?
I have a somewhat unique situation, and I was wondering if you plugin supports this, or if there are plans to support it in the future. I would like to enable the features of this plugin for a single group on my server, but let everyone else talk normally. For example, the rchatusers group would have their chat affected by distance, along with all the other effects, but anyone not in that group would chat normally. Alternatively, I would like to enable it for only a single world (on a MultiVerse server), since that group of people loosely corresponds to the users of that world.
Thanks, and please let me know what your thoughts are.
Essentials Breakdown
OK so when you run this plugin with essentials chat, basically this plugin shuts off all attempts to format chat. Essentials runs its chat system normally. I like having it so that when the player talks locally it has a [L] prefix, and when they talk globally is has a [G] prefix. But I also like the way essentials can format based on permissions groups and other things. Ideally, this plugin would, when it see's essentials-chat loaded, force only the prefix onto essentials so that it would display, [L] (normal essentials format here). I know this is possible because LocalChat did it just like this.
Other things...
Could you add multiple options for the global prefix so that players could add any other commands? E.G. /s, /shout, /global, ect.
Also, some other players mentioned this, but could you add channels for the walky-talky? Like when you right click the compass it shifts through channels 1-10 or something, and then when you talk while holding the compass everyone on your channel can hear you.
This is a great plugin. Thanks for updating it. But I have a problem. It hasn't been completely confirmed, but when we use the /me command, it looks like everyone can see what that person said. Any way you could fix that?
P.S. It's starting to work better with Essentials, even if there are a few small problems here and there.
Thanks shrooms, this is a great mod!
Awesome thing.
@mushroomhostage
Here is what I get when I install Realistic Chat 2.0 together with Factions 1.6.8, running on CB#2203
The chat formatting wasn't replaced (which could be a good thing), but has strange characters as well.
See: http://i.imgur.com/KzzmX.png?1
If you could make it to retain the prefixes of Factions chat, and uses the features of Realistic Chat, it would be really cool.
@NeonJ
Added answering ringing phones in 2.0, at last. Been wanting to do this for a while, but its tricky to get right, and may still have some bugs. But the way it works now is the callee is rung up to 4 times (notified by a sequence of musical notes – not very ringtone-like, open for new notes if there are any musicians out there), during which they have a chance to pickup the phone by holding it in their hand. If they answer it in time, the call will be established.
@dementual
Fixed in 2.0, you should now be able to disable yelling by setting yellMax to 0.
@WayGroovy
Added permissions support in 2.0 :). Let me know how it works.
@Ferkswe
Yeah I've thought about adding channels and encryption, definitely an interesting idea, but have not yet done anything with it. You may also be interested in Mortuus Terra, it has a MTRadioWaves plugin with walkie talkies and tunable channels.
@gustebeast
Not currently possible to only change the prefix, but that is a good idea.. also I'm liking the look of the Local Chat + OOC + Shout plugin you linked, a merge would be very cool.. unfortunately the source does not seem to be available for that plugin, but if the author wants to merge in RealisticChat, its open source and I'd be cool with it :)
Any hints what I would need to do to support essentials formatting? How doesn't it work as expected exactly? I'm not too familiar with essentials..
@predawnia
Haven't tested it, can you send me any errors or descriptions of the unexpected behavior you're seeing?
@TTlabambaTT
How about a non-verbose mode to disable chat logging? Or what did you have in mind?
@NeonJ
Cool glad its working out for you :). Signal Tuner is an item from Railcraft right?
Distance-based smartphone cutoff..interesting. Could make it the same as walkie-talkies, where the two players can be a maximum distance apart. But cellphones after all go through cell sites, at least IRL, so I don't know, maybe that wouldn't be as realistic if they transmitted directly to each other up to a maximum distance. But there's a lot that could be done to make smartphones more realistic... dropped calls, noise, interference, per-minute surcharge, or on the other hand, that may be going too far :)
Is there any way to disable literally everything except the distance limiter and the text obfuscation? I can get a lot of it disabled but the shouting works even when I have YellMax set to 0.
Hm, I noticed that the smartphones don't have "ringtones". Could you perhaps make your phone "ring" when called? (by putting a message in the chat or something) It should ring from anywhere in the inventory. Answering it would just be switching to it. Switching to it then switching off would be a way to just "pick & hang up" if you're evil. =3
Please update to support essentials formatting
Been using this with Tekkit 3, and it's awesome! :D I removed some of the features I didn't want, making it a simple plugin which blends nicely. ;o I only used the "speech" (20 blocks legible, 40 blocks total), "shout" (extending 8, 16 and 32 blocks), "whisper" (3 blocks legible, 6 blocks total) and "smartphone" (using the "Signal Tuner" item, ID 7260. It's a custom item, it works! Yay!)
Very pleased with this plugin! :D Only problem I have with it is that I want a distance cutoff for smartphones, like walkie talkies. ;o
Love the plugin. One problem. Well it isn't a problem it just frustrates me ever so slightly. The feedback I get through the console such as "(d=5.47536363736,hr=50.0)" is there anyway to compress the amount of text that shows up every time someone talks? sounds like a strange problem I know but it doesn't look tidy in the console. Hope you understand where I'm coming from anyway.
Could you use this plugin to base your plugin off of, http://dev.bukkit.org/server-mods/local-chat-ooc-shout/. That plugin does formatting and configuration very well. This plugin does the chat part very well. If they were combined it would make a perfect chatting plugin.