{"id":20568632,"url":"https://github.com/sproctor/warlock-gtk","last_synced_at":"2026-04-22T04:04:50.300Z","repository":{"id":4464531,"uuid":"5603283","full_name":"sproctor/warlock-gtk","owner":"sproctor","description":"Warlock GTK","archived":false,"fork":false,"pushed_at":"2012-08-31T20:35:17.000Z","size":1519,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-06T09:37:35.930Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sproctor.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-29T16:30:09.000Z","updated_at":"2021-10-15T07:06:45.000Z","dependencies_parsed_at":"2022-09-21T16:52:51.277Z","dependency_job_id":null,"html_url":"https://github.com/sproctor/warlock-gtk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sproctor/warlock-gtk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sproctor%2Fwarlock-gtk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sproctor%2Fwarlock-gtk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sproctor%2Fwarlock-gtk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sproctor%2Fwarlock-gtk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sproctor","download_url":"https://codeload.github.com/sproctor/warlock-gtk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sproctor%2Fwarlock-gtk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32120408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T04:51:54.022Z","updated_at":"2026-04-22T04:04:50.286Z","avatar_url":"https://github.com/sproctor.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Warlock README\n---------------\n\nThe goal of warlock is to provide a pleasant experience for playing Dragonrealms\nwhile using GNU/Linux. If we can also support other MUDs, particularly other\nSimutronics MUDs, this is a bonus.\n\nIf you need info about installing warlock, please read the INSTALL file.\nIf you'd like to take a look at the new features in warlock, please read the\nNEWS file.\n\nIf you would like to contact us, please look at the contact page on our\nweb site for more details.\n\nThanks for trying out client,\nThe Warlock Team\n\nScripting\n----------\n\nWe support two types of scripting. We have near 100% compatibility with Wizard\nscript (but no plans to support Stormfront scripts), and we have our own\nPython scripting engine. If you are writing a script from scratch, I recommend\nyou use the Python option. If you find any problems with out Wizard script\ncompatibility, please let us know.\n\nHighlights\n-----------\n\nOur highlights are much more powerful than highlights in the Wizard. They are\nregex based. The string you enter is a Perl-compatible regex. Please view\nman 3 pcrepattern for more details on creating patterns (You must have libpcre\ninstalled to use our program, so this man page should also be installed).\n\nUsing Patterns in Our System\n\nOur highlights use the matches from the regex. When you edit the colors, the top\ncolors, labeled \"all\" are the entire string that matches. For example if you\nhad the pattern \"goblin\" (without the quotes) and you set the foreground color\nof the all row to green, whenever the text \"goblin\" showed up, it would be\nhighlighted green. If you wanted to make sure that \"goblin\" was the full word,\nyou should use the pattern \"\\bgoblin\\b\" then strings such as \"goblins\" would\nnot be matched by this pattern.\n\nSuppose you wanted to have a special pattern, where only part of it was\nhighlighted. To do this you can use the matches from the regex (read the man\npages for more details on this). Say I wanted to highlight \"goblin\" but only\nwhen it was preceded by \"field\". To do this I would create the pattern\n\"\\bfield (goblin)\\b\" and I would set the second row of colors to green (if I \nwanted the word \"goblin\" to appear in green). The parentheses tell the regex\nparser that the contents are a match. The row labeled \"1\" is the first such\nmatch. The row labeled \"2\" is the second, etc.\n\nPython Scripting\n-----------------\n\nYour python scripts are executed by the python interpreter as normal python\nscripts are. We have a built-in module called \"warlock\" which you should import\nand use. It included functions for interacting with the client. I'm not going\nto document all of them here. Somewhere in pyscript.c is a complete list.\nThe most important ones are addCallback, removeCallback, put, wait, nextRoom,\nand waitRT. The latter four do the same things as their Wizard script counter-\nparts. addCallback takes one argument, which should be a function that takes\na string as a parameter. Whenever Warlock receives a line from the server,\nit will call your function and pass it that line. For an idea of how to use\nthis, please see pywarlock.py in the scripting directory. removeCallback takes\nthe same type of parameter as addCallback, but it will stop your function from\nreceiving lines. removeCallback return True on success and False on failure.\n\nYou can run as many python scripts concurrently as you please. You will be\nshown a list of ID's of currently running scripts before the command prompt.\nIn the future you will be able to pause or stop a particular script.\n\nWizard Scripting\n-----------------\n\nWe haven't implemented user variables yet such as %container, etc. If you find\nany other bugs or missing features, please let us know.\n\nMacros\n-------\n\nMacros are compatible with Wizard macros. The only addition is \\S to save the\ncurrent contents of the entry and \\R to restore a previously saved entry. We\nhave not implemented the {rest} command, or any of those. The {copy}, etc. are\nnot needed with Warlock. Any GTK hotkeys are over-ridden by user defined\nmacros, but if there is no user defined macro for that key, it will be passed\nthrough to GTK. We have not implemented \\a. In the dialog, press any key\ncombination. If there is some modifier that is being treated as a key by\nitself, please let us know.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsproctor%2Fwarlock-gtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsproctor%2Fwarlock-gtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsproctor%2Fwarlock-gtk/lists"}