Please login or register.

Login with username, password and session length
 

Author Topic: TUTORIAL: Improved Chat (SMP Mod)  (Read 28843 times)

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
TUTORIAL: Improved Chat (SMP Mod)
« on: 1 March 2011, 22:53:11 »
Improved Chat

In mijn zoektocht naar chat plugins ben ik recentelijk een zeer mooie plugin/mod tegengekomen genaamd Improved Chat. Hier even wat tips en trucs die ik zoal heb gevonden in het gebruik van deze mod.
Hoe te downloaden?
Improved Chat wordt op dit moment up to date gehouden door GuntherDW. De nieuwste plugin kun je altijd op zijn filehost vinden. Installeer altijd ook Modloader. Dit is verplicht, anders werkt Improved Chat niet! Download de mod en kopieer de files van het .rar archief in je minecraft.jar. Verwijder de META-INF folder uit je minecraft.jar (erg belangrijk!)

Je kan ook de Tweakcraft Essentials Client gebruiken, daar zit Improved Chat standaard in.

Wat doet het?
De features van ImC zijn erg divers, hier zijn de belangrijkste:
  • Copy paste functionaliteit
  • Scrollbare chat, dus je kan je chat teruglezen
  • Verschillende kleuren en doorzichtigheidsgraden van je chatvenster
  • De mogelijkheid tot chattabs!
  • De mogelijkheid om inkomende en uitgaande berichten te formatteren, dit behelst bijvoorbeeld het kleuren van bepaalde woorden, het vervangen van bepaalde woorden en volgens mij zelf het vertalen van woorden!
  • De mogelijkheid om chatcommando's aan keys toe te kennen (denk aan een key to msg functionaliteit)
  • Scriptmogelijkheden

Commando's
Nou, hoe maak je nou zoiets functioneel? Alle commando's voor ImC beginnen met ~. Dus ~help geeft de helpfile. Ik zal nu wat belangrijke functies toelichten:
  • ~input --> hiermee kun je de inkomende berichten bewerken
  • ~output --> uitgaande berichten bewerken, je zou bijvoorbeeld een afkorting als #w kunnen koppelen aan een bericht. Door nu alleen #w te typen krijg je automatisch dat bericht.
  • ~bind --> hiermee koppel je een toets of toetscombinatie aan een opdracht. Voorbeelden volgen zo!
  • ~var --> Maakt een variabele aan die je kan aanroepen met $naam_van_variabele. De variabele kan je dus weer toepassen in een bind of input/output command
  • &cN waarbij N een waarde is van 0 tot 9 of van a tot f --> kleurt de tekst
  • ~list gevolgd door input/output/bind/var --> geeft je bestaande commando's weer
  • ~delete gevolgd door input/output/bind/var en een id nummer --> delete een bepaald commando weer
  • ~script gevolgd door de scriptnaam en eventueel argumenten --> maakt het mogelijk om een heel rijtje commando's in één keer uit te voeren. Dit kun je ook combineren met ~bind.

Let op, de scripttaal die gebruikt wordt voor de meeste commando's en functies zijn regular expressions (regex). Wellicht lastig te begrijpen, dus hier een tutorial: http://www.regular-expressions.info/tutorial.html



Nuttige commando's
Nou, wat kun je nou met al deze commando's en dingen? Heel simpel. Ik zal een aantal voorbeelden geven en steeds zeggen wat je moet kopiëren in je chatvenster. Dit zal in codevensters staan.

Chatvenster openen met ~
Om je chatvenster te openen met een ~ aan het begin voer je deze code in:
Code: [Select]
~bind grave ~\Uitleg: met ~bind koppel je een code aan een toets. Deze toets is in dit geval de ~. De laatste \ aan het eind zorgt dat het typvenster openblijft.

Chatvenster openen met /
Om je chatvenster te openen met een / aan het begin (heel handig voor homes en msg etc.) voer je dit in:
Code: [Select]
~bind slash /\Uitleg: zie hierboven eigenlijk. Is hetzelfde principe.

Key to msg!
Nou komt het leuke. Dit betekend dat je een bepaalde toets kan indrukken en dat je dan automatisch reageert op de laatste persoon die je gewhispered heeft (msg heeft verstuurd). De toetscombinatie kan van alles zijn. Bijvoorbeeld tab, of een letter of cijfer. Een functietoets zoals <ctrl-><shift-> of een combinatie: <ctrl->r

In het voorbeeld gebruik ik de toets TAB. Maar je kan dit dus vervangen door je eigen keuze. Voer de volgende 2 commando's in:
Code: [Select]
~var playerMsg (?<=\[§.).*?(?=§f -> Me\])
~bind tab /msg '$playerMsg' \
Uitleg: met ~var maak je een variabele. playerMsg is de naam daarvan. Het stuk dat volgt is een regex en gaat te diep om nu uit te leggen. Het tweede commando zorgt voor de toetscombinatie. tab is de toetsnaam. /msg natuurlijk het whisper commando. $playerMsg zorgt dat de naam (de speler) uit de variable wordt gehaald. De 2 ' ' om de $playerMsg heen zorgen ervoor dat je gelijk de naam van de speler naar wie je toe whispered ziet in je chatvenster. \ zorg weer dat het chatvenster openblijft

Kleuren en alerts
Nog een zeer handige feature is dat je op bepaalde woorden alerts in kan stellen. Stel nou dat ik mijn eigen naam in de chat rood wil hebben zodat het lekker duidelijk is wanneer iemand om  mij vraagt? Dan voer ik dit in (let op de dubbele spatie tussen /b en &c):
Code: [Select]
~input \bWoord\b  &c4Woord/&cUitleg: ~input bekijkt alle input die binnenkomt. \bWoord\b is het woord waarnaar wordt gekeken. &c4 zorgt voor de rode kleur (4 is rood, mogelijke kleuren zijn: 0-9 en a-f). Woord is dit keer het woord waarmee de eerste \bWoord\b vervangen wordt. Ik vervang dit natuurlijk door hetzelfde woord. Maar je kan het ook door iets anders laten vervangen. /&c zorgt vervolgens weer dat de kleur "weg" gaat zodat niet je hele chat rood wordt. :P

Allemaal lastig lastig lastig, maar wat betekend dit nou concreet. Nou, ik wil zelf graag dat JelmarG en gravitone erg duidelijk weergegeven worden in rood in de chat. Ook mijn naam en alle mogelijke varianten daarop wil ik duidelijk in rood hebben in de chat. Wat doe ik? Dit:
Code: [Select]
~input \bJelmarG\b  &c4JelmarG/&c
~input \bgravitone\b  &c4gravitone/&c
~input \bWouterH\b  &c4WouterH/&c
~input \bwouter\b  &c4wouter/&c
~input \bWouter\b  &c4Wouter/&c
~input \bwouterh\b  &c4wouterh/&c

Nou zal dus jelmar's naam, gravitone's naam en mijn naam (+ varianten) in rood worden weergegeven.

Alternatief:
Als je niet voor alle mogelijke variaties input regels wilt maken kun je het volgende trukje toepassen.

Code: [Select]
~input [Jj]elmar[Gg]?  &c4JelmarG/&cUitleg: Het [Jj] deel zegt eigenlijk dat de naam met een hoofletter én een kleine letter kan beginnen. Het [Gg]? deel doet eigenlijk hetzelfde (dus een G of een g), het vraagteken zorgt er echter voor dat dit laatste deel (de G of g dus) optioneel is. Dit input command registreert dus Jelmar, jelmar, JelmarG, Jelmarg, jelmarG, jelmarg. Lekker makkelijk dus. Er is echter 1 groot nadeel. De output (het &c4JelamrG/&c gedeelte) kan niet aangepast worden dus je zal iedere variant op jelmar's naam dus in je chatvenster zien als JelmarG. Niet heel erg natuurlijk maar wel even handig om te vermelden.

Spelers negeren
Voor die paar spelers die anderen willen negeren is er de ignore functie. Deze werkt als volgt:
Code: [Select]
~ignore <spelerNaam
Vervang spelerNaam met de naam van diegene die je wilt negeren
Om de ignore's te verwijderen moet je nu nog een omweg nemen en het handmatig doen buiten minecraft om. Dit omdat de delete functie van ImC ignores nog niet delete. Doe het volgende:
Code: [Select]
Ga naar je .minecraft map in appdata
Open de map mods en dan de map wd1966
Open het ImprovedChat.xml bestand
Verwijder de <ignore>blablabla</ignore> stukken uit dit bestand. LET OP! Je moet ook de <ignore> en </ignore> tags verwijderen anders zie je helemaal niks meer.

Automatische homes en tijdelijk homes gebruiken
Met behulp van de ~script functionaliteit kun je automatisch een tijdelijke home maken als je ergens anders heen wilt. Stel je bent bijvoorbeeld aan het hakken en je moet even je inventory legen, normaal moet je dan "/homes add temp, /homes use storage, /home, /homes use temp, /home" doen. Dit is veel werkt natuurlijk, vooral voor veelgebruikte homes. Om dit op te lossen maak je dus een script.

Ga naar je .minecraft folder (te vinden in je app data), zoek daar de map mods op en open dan de map wd1966. Maak hier een leeg txt bestandje aan en geef het een mooie naam. In het tekst bestand zet je vervolgens onderstaande code (vervang home_naam door de naam van de gewenste home):
Code: [Select]
/homes add temp
/homes use home_naam
/home
/homes use temp
Dit script zal dus een nieuwe, tijdelijke home aanmaken, vervolgens laad het script de gewenste home (je storage bijvoorbeeld) in en warpt ie je er heen. Tot slot laad ie dan de tijdelijke home alvast in. Het enige wat je nu nog moet doen is /home te doen en je staat weer op de plek waar je net vandaan bent gekomen.

Je kunt het script op 2 manieren gebruiken. Je kan iedere keer ~script script_naam.txt gebruiken maar dit is natuurlijk lang typen. Idealiter wil je het script binden aan een bepaalde toets of toetscombinatie (bijvoorbeeld ctrl 1). Om dit te doen kopieer je het volgende:

Code: [Select]
~bind ctrl-1 ~script script_naam.txtVervang hierin natuurlijk ctrl-1 door je eigen gekozen toetscombinatie en vervang script_naam door de naam van je script.

Je kan dus op deze manier een hele reeks homes binden aan de toetsen ctrl 1 t/m 0 als je zou willen. Let erop dat je voor ieder script een nieuwe .txt moet maken.


Er zijn nog wel meer functies, onder andere de tab functionaliteit. Hier heb ik zelf echter nog niet echt aandacht aan besteed. Mocht iemand graag een functie of commando toegevoegd willen zien. Vraag gerust, ik kan altijd even kijken hoe ver ik kom met regex.

TlDr: Kopieer de code uit de code blokken in je chatvenster!
« Last Edit: 21 December 2011, 05:58:26 by JelmarG »

Sedative Svardskampe

  • VIP
  • Senior
  • **
  • Posts: 260
    • View Profile
Re: Improved chat
« Reply #1 on: 2 March 2011, 01:12:14 »
Dank je voor de verhelderende uitleg. Bij de volgende upload van mijn custom client zal tab to autoreply er automatisch inzitten voor tweakcraft

Er staat in de help ook dat je commando's in een vars.txt bestand kan zetten. Misschien ook wel handig te vermelden om servers te overlappen?

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
Re: Improved chat
« Reply #2 on: 2 March 2011, 10:37:53 »
Hmm, voor zover ik heb kunnen vinden zijn de ~bind en ~var commands zowieso al server specific. Je kan dit veranderen door ze global te maken in de AppData\Roaming\.minecraft\mods\wd1966\ImprovedChat.xml file. Hier staan alle commands in en hier kun je dus ook commands toevoegen buiten minecraft om. Alle ~input en ~output commands zijn wel universeel voor alle servers. Maar ~bind en ~var zijn dus per server anders (je kan per server iets anders instellen).

Edit: Ik heb tevens nog een commando toegevoegd waarmee je de regions enter en exit teksten kan aanpassen en mooier maken. Het staat in de startpost!
« Last Edit: 2 March 2011, 11:15:25 by WouterH »

Milenco

  • VIP
  • Held
  • **
  • Posts: 1488
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #3 on: 2 March 2011, 13:59:04 »
Thanks Wouter voor je duidelijke tutorial! Ik vroeg me al af hoe ik TAB kon binden om automatisch te reageren op PM's. Top! :)

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #4 on: 6 April 2011, 20:34:27 »
Zo, heb even wat informatie toegevoegd over modloader en improved chat. Ook heb ik nog een alternatief toegevoegd voor het kleuren van de chat.

Mochten er vragen zijn, ik hoor ze graag.

Milenco

  • VIP
  • Held
  • **
  • Posts: 1488
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #5 on: 6 April 2011, 22:16:50 »
Ik zou graag met 1 knop m'n vorige 'chat-actie' herhalen (zei het een command of een tekstbericht). Is dat mogelijk te realiseren met ImprovedChat?

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #6 on: 7 April 2011, 12:12:56 »
Ja, pijltje omhoog ;)

Zit er standaard in :P

Milenco

  • VIP
  • Held
  • **
  • Posts: 1488
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #7 on: 7 April 2011, 12:25:45 »
Ohw, das handig :) Maar ik bedoelde eigenlijk met één knop (ipv T, pijltje omhoog, enter), kan dat ook?

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #8 on: 7 April 2011, 17:46:04 »
Hehe, eindelijk dat mysterie ook opgelost. Blijkbaar zit er een "hidden" stukje tekst in alle chatcommands door de kleuren van bukkit (§6 bijvoorbeeld voor vip-geel). Hierdoor was het een aardig gepuzzel om jou probleem op te lossen Milenco. Maar hier komt de command:

Vervang de "R" in het tweede command voor de letter of toets naar keuze.
Code: [Select]
~var lastchat (?<=<§[0-9a-f]Milenco§f> ).*
~bind R '$lastchat'
Uitleg: De var slaat steeds de tekst op die je typt in het chatvenster. Druk je dan op R (of een toets naar keuze) dan verschijnt dus de tekst in het chatvenster.

Hopelijk werkt het zo?
« Last Edit: 7 April 2011, 17:52:52 by WouterH »

Milenco

  • VIP
  • Held
  • **
  • Posts: 1488
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #9 on: 7 April 2011, 18:44:32 »
Hehe, eindelijk dat mysterie ook opgelost. Blijkbaar zit er een "hidden" stukje tekst in alle chatcommands door de kleuren van bukkit (§6 bijvoorbeeld voor vip-geel). Hierdoor was het een aardig gepuzzel om jou probleem op te lossen Milenco. Maar hier komt de command:

Vervang de "R" in het tweede command voor de letter of toets naar keuze.
Code: [Select]
~var lastchat (?<=<§[0-9a-f]Milenco§f> ).*
~bind R '$lastchat'
Uitleg: De var slaat steeds de tekst op die je typt in het chatvenster. Druk je dan op R (of een toets naar keuze) dan verschijnt dus de tekst in het chatvenster.

Hopelijk werkt het zo?

Code: [Select]
~var lastchat (?<=<§[0-9a-f]Milenco§f> ).*
~bind R $lastchat

Zo werkt het wel, anders krijg je quotes erbij :) Thanks! Is het ook mogelijk dit te maken zodat het ook met commando's werkt? Zodat je sneller naar iemand kan tp'en als je eenmaal het commando hebt ingevoerd? (Dus dat het bovenstaande werkt met zowel chat als commando's)

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #10 on: 7 April 2011, 19:48:57 »
Die quotes zijn er juist voor zodat je de zin ook in je chatvenster te zien krijgt. Zonder quotes krijg je $lastchat te zien in je tekstvak. Met quotes krijg je de eigenlijke tekst zelf te zien. Probeer het maar eens. ;)

Wat betreft ditzelfde trukje voor commands. Dat gaat wat minder goed, het nadeel van improved chat is dat de ~var command alleen de chat zelf bekijkt. Aangezien tp geen bericht geeft in de chat (behalve dus als iemand NAAR je toe tp-ed) kan de var het niet zien en dus niks opslaan. Wat je wel kan doen is bijvoorbeeld veelgebruikte tp's aan toetsen binden. Voorbeeldje:
Code: [Select]
~bind J /tp JelmarG
Nu tp je automatisch naar JelmarG toe als je op J drukt.

Om het voor commands mogelijk te maken moet het command dus iets terug geven in de chat zelf. Anders kan je niks met ~var doen.

Je kan het evt wel setten. Dan zou je bijvoorbeeld zoiets moeten doen:

Code: [Select]
~var tptarget (?<=[§[0-9a-f]Milenco§f -> Me]) settptarget .*
~bind P /tp $tptarget

Nu zou je dus dmv "/msg Milenco settptarget JelmarG" Jelmar als een soort target kunnen setten die wordt opgeslagen in de ~var. Deze gebruik je vervolgens weer voor de ~bind. Nu heb je dus wel een input van de chat dus kan je ~var gebruiken. Op een andere manier is het niet mogelijk.

Ik heb trouwens in de startpost ook een commando toegevoegd voor het gebruik van homes en tijdelijk homes. Het gebruikt de ~script functionaliteit en zorgt ervoor dat als je een bepaalde home gebruikt je eerst een tijdelijk home aanmaakt waar je staat zodat je er later makkelijk naar terug kan.
« Last Edit: 7 April 2011, 20:03:40 by WouterH »

Milenco

  • VIP
  • Held
  • **
  • Posts: 1488
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #11 on: 8 April 2011, 07:49:35 »
Ik had het geprobeerd met quotes en daarbij kreeg ik juist de quotes óók te zien in de chat, zonder de quotes werkte het wel goed. :)

Hotkeys voor macro's en homes had ik al ingesteld met een eigen macro. Jammer dat je commando's niet kan 'repeaten' met een knop. Toch bedankt voor het uitzoeken! :)

Knakworst

  • VIP
  • Nieuweling
  • **
  • Posts: 20
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #12 on: 8 April 2011, 08:08:14 »
Mischien een probleem dat al een keer aan bot is geweest maar als ik een zone verlaat staat er:
Code: [Select]
You left $regionsExit, goodbye!
En als je zone inloopt zie je:
Code: [Select]
Welcome, you entered $regionsEnter!
Ik denk dat het heeft te maken met deze mod want daarvoor was het er nog niet. is dit op te lossen dat je wel de naam van de zone krijgt.

Knakworst
PS ik heb de .minecraft map van de voorpagina gedownload
« Last Edit: 8 April 2011, 08:16:27 by Knakworst »

WouterH

  • VIP
  • Held
  • **
  • Posts: 509
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #13 on: 8 April 2011, 11:33:15 »
Hmm vreemd, in principe hoort er ipv de $regionsExit en $regionsEnter de naam van de region te staan. Bij mij werkt het wel (en ik heb ook de .jar van de voorpagina, van Svards).

Zou je eens kunnen kijken wat de output is als je ~list var doet en als je ~list input doet? Als het goed is hoort er bij ~list var dan iets te staan als: regionsExit (?<=^[eE]xited ).* en ongeveer hetzelfde voor regionsEnter.

Krijg je dit bij elke zone? Of alleen bij een aantal zones, en welke zijn dit dan? Dan kan ik eens kijken of ik het daar ook krijg.

Als het je echt heel erg stoort dan kun je altijd ~delete input {nummer} doen waarbij {nummer} het nummer is van de commands voor het zone enter en exit gebeuren (waarschijnlijk zijn dit 0 en 1).

Sedative Svardskampe

  • VIP
  • Senior
  • **
  • Posts: 260
    • View Profile
Re: Improved chat (mod voor smp)
« Reply #14 on: 16 August 2011, 20:13:51 »
bump zodat het niet onder al die moved topics komt te staan op de tweede pagina

Forum » Tweakcraft » Support » TUTORIAL: Improved Chat (SMP Mod)