All times shown according to UTC.

Time Nick Message
00:01 helix_ Griatch, to make it easier for you:
00:22 george this developer I follow has a new game out...he made an interesting promo video for it
00:22 it's like space video game meets coding meets interactive fiction? weird hybrid
00:24 it has a mud vibe for some reason
00:26 glasz joined #evennia
00:42 helix_ That's pretty cool... it's like Elite but with a text-based interface.
00:46 glasz joined #evennia
00:49 helix__ joined #evennia
00:49 Thenomain joined #evennia
00:49 helix__ Hey, Theno. I didn't know you used Evennia.
00:50 glasz joined #evennia
02:15 evenniacode [evennia] ergodicbreak opened issue #984: #INSERT in @batchcommand not handling newlines correctly?
02:57 evdemo [Public] azrael: I'm still having issues with this evennia shell thing... I don't know how that helps me solve this issue.. :3
03:02 [Public] azrael: Oh yea... Now I really broke things. -.-
03:05 [Public] azrael:
03:06 [Public] azrael: All of that started when I tried to run the evennia.utils.create module from my evennia shell
03:08 evenniacode [evennia] ergodicbreak opened pull request #985: #INSERT in batchcommands, issue #984 (master...insert_in_batchcommands_issue#984)
03:14 george I don't know if that's related azrael, all you did in the shell was have Python tell you what it was
03:14 you didn't run the module in any way
03:14 it would be like you typing '3' in the shell
03:15 observe,[…]e1f41512aa850321c
03:16 see how it doesn't see the 'inspect' module, then I import it, then it sees it
03:16 evdemo [Public] azrael: Hmm... Then I'm even more confused... xD
03:16 george heh
03:17 were you doing anything else at the same time?
03:17 and if you evennia start now in the virtualenv it gets the same error?
03:17 evdemo [Public] azrael: Well, the server was running...
03:17 [Public] azrael: Yep. Should I deactivate the pyenv and activate a new one?
03:18 george I don't know if it matters, you could try
03:18 I suspect the result will be the same but go ahead and see
03:19 helix_ azrael: To see if anything's changed, you might try: 'git status' as well.
03:19 And don't be afraid to 'git checkout -- <filename>'
03:20 Though be warned, that command will revert whatever changes you've made to that file. But sometimes, it's faster to do that than try and undo something.
03:21 * helix_ believes in version control like a boss.
03:21 evdemo [Public] azrael: Hmm.... I have version control via a backup file on my 'puter.
03:22 [Public] azrael P
03:22 * helix_ facepalms.
03:22 helix_ Git seems complicated at first. Then it's a lifesaver.
03:22 evdemo [Public] azrael is a noob.
03:23 helix_ Super, super easy. There's a good tutorial for it on the Evennia website, as well.
03:23 evdemo [Public] azrael: I'll have to take a look at it.
03:25 helix_ Are you still getting that error when you restart?
03:25 evdemo [Public] azrael: Yes.
03:29 helix_ Had you made any changes, or were you just using the shell commands?
03:30 evdemo [Public] azrael: Just the shell command.
03:30 helix_ Your traceback is all twisted stuff... that's the networking component of Evennia.
03:32 george azrael, what were you doing in the shell *before* the log you put in dpaste?
03:34 also did you do an 'evennia stop' yet?
03:34 evdemo [Public] azrael:
03:34 george oh I see you did
03:34 evdemo [Public] azrael: Yes. I've tried to stop and restart a few times now.
03:35 helix_ Actually... it doesn't look like you were successful though. The server had already stopped.
03:36 Can you check and see if you've got a stale .pid hanging around? That will cause twisted to fail, though I've never seen it fail with that error before.
03:36 evdemo [Public] azrael: Uhm... How do I do that?
03:37 helix_ It's in your server directory.
03:37 so mine right now is:
03:38 (ainneve-ve) helix@ubuntu:~/devel/mud-devel/ainneve/server$
03:38 evdemo [Public] BlauFeuer: Look in the game/server folder for .pid files. There's one for the server and one for the portal.
03:39 [Public] BlauFeuer: It's also possible, though unlikely, that even though you stopped the server, there could be other instances of it running. You can check your task list or ps -ef and kill any processes related to evennia that are still running.
03:40 [Public] BlauFeuer: I've messed up a few times and done a git pull with the server running or made changes, or had multiple versions going somehow.
03:40 george azrael is on windows...I think that's taskkill? Not sure if that's current
03:41 helix_ idea, on that one. I don't even know how to look at processes on windows.
03:41 george tasklist
03:41 evdemo [Public] azrael: Nothing on the tasklist...
03:42 george but I'm still on 7, dunno if that's gone
03:42 evdemo [Public] azrael: I'm on windows 10... I suppose I need a program to view these .pid?
03:44 helix_ Nah. They're files.
03:44 If you go into the game/server directory, you will see them if they're there.
03:45 They'll be: and
03:46 evdemo [Public] BlauFeuer: Usually when there's a stale pid file, the error message indicates it, but it never hurts to check for them.
03:47 helix_ Yeah - I only mentioned it because he's getting network errors, and the server appears to have closed unexpectedly. Server termination occurs before he stops the process in his paste.
03:48 evdemo [Public] azrael: Hmm... Is there another way to view them? I am in the directory and type '' and it opens up a window to try to find something to view it with from the damned app store.
03:48 helix_ You're in the directory with Windows Explorer? So you can see all the other files in there?
03:49 evdemo [Public] BlauFeuer: You don't need to open it, just see if it exists. If you're in the command line, just "DIR"
03:49 helix_ You shouldn't have to search for it... there should only be a few files in there.
03:50 evdemo [Public] BlauFeuer: If they exist, just whack 'em.
03:50 [Public] azrael: Delete them then?
03:50 helix_ Yeah, both of them, if they're there.
03:50 Then try and start Evennia again.
03:50 evdemo [Public] azrael: Only was there.
03:52 [Public] azrael: There are also files like portal.restart and server.restart.... I deleted, and tried to start the server. No avail.
03:53 arxmush-bot joined #evennia
03:53 helix_ Same error?
03:53 evdemo [Public] azrael: Yep.
03:54 arxmush-bot joined #evennia
03:56 helix_ Back when you originally installed Evennia, you cloned the repo, right? With git?
03:57 evdemo [Public] azrael: Repo? I did the git commit thing, yea.
03:57 helix_ Oh, perfect.
03:57 Open up a command prompt and go to your Evennia directory.
03:58 evdemo [Public] azrael: Mkay.
03:59 helix_ Then type in, 'git status' and see which files have been altered.
03:59 You'll want to generally make sure that no core files have been changed (like the stuff that deals with twisted).
04:00 That command should give you a list of stuff that's been changed, and is ready for commit.
04:07 evdemo [Public] azrael: Swap file "C:/Users/Jesse Bailey/Documents/Mud-Dev/even​nia/.git/.COMMIT_EDITMSG.swp" already exists!
04:07 [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: ?
04:09 george is this like a choose your own adventure?
04:09 helix_ lol
04:09 Don't delete it.
04:10 george azrael, you have tried just deactivating the venv, closing the cmd window, and starting fresh right?
04:10 helix_ You don't technically need that, but you've already got either a commit or a pull open somewhere.
04:10 evdemo [Public] azrael: I have tried, yes.
04:11 [Public] azrael: I'm such a rookie at all this.. xD
04:11 george and you have no python processes in your task list
04:11 evdemo [Public] azrael: I have a python one, yes.
04:11 george oh, what is that
04:11 arxmush-bot joined #evennia
04:11 george your editor, or the shell?
04:12 evdemo [Public] azrael: Python application? >>
04:12 george what do you use to edit?
04:13 evdemo [Public] azrael: IDLE.
04:13 george oh it's probably that...might want to restart it
04:13 I don't know if you have some stale state somehow
04:13 arxmush-bot joined #evennia
04:13 evdemo [Public] azrael: So just end this task?
04:13 george if you're in idle, just quit out of it
04:14 helix_ You should just be able to close IDLE, don't need to end it.
04:14 george you should see the python task go away after a bit
04:15 do you use IDLE for your python shell as well azrael?
04:15 evdemo [Public] azrael: Uhh? I think? Is the shell like the command prompt you use to run the server?
04:16 george that's the command shell..there's also the python shell which is where you were exploring modules with <module>??
04:17 it might all be in one package with IDLE?
04:17 evdemo [Public] azrael: I believe it was IDLE then.
04:17 george yeah OK
04:26 BattleJenkins joined #evennia
04:26 BattleJenkins Hi everyone! Today I'm gonna be poking at my webclient a bit more! Buuut I need to ask a question!
04:27 Where is the code that messages a character a room description when they arrive? I want to overload it with an OOB option so I can divert it to another window.
04:28 evdemo [Public] azrael: I feel like I should know this.. >>
04:28 BattleJenkins Ah, I think it might be at_after_move on the character typeclass...?
04:29 evdemo [Public] azrael: Yea, I think so.
04:38 BattleJenkins Hmm... I tried to overload that and it didn't seem to work.
04:39 I'll try the look command instead.
04:44 arxmush-bot joined #evennia
04:46 arxmush-bot joined #evennia
04:47 evdemo [Public] azrael: You might also check the default room code in evennia.
04:48 george yeah this possibly[…]return_appearance
04:49 example,[…]
04:49 I don't know if that's the right place for OOB though
04:49 BattleJenkins Ugh, I am having a lot of trouble with formatting all this correctly...
04:49 'look' doesn't seem to work like other commands do.
04:50 george so you're here[…]lt/ BattleJenkins ?
04:51 BattleJenkins And yeah, I'm already overloading a room's return_appearance hook
04:51 But that doesn't let me change how the message is handled
04:51 george oh it calls at_look, hm
04:53 ah leading to this[…]/
04:54 so changing `self.msg(self.caller.at_look(target))` in CmdLook won't work for you?
04:56 BattleJenkins Nope... it doesn't help that I don't know what format to use and I can't seem to find an example.
04:56 I want to add an option to it like {"window-id":"room"}
04:57 So that most clients will ignore the option and parse it in the normal text scroll, but I can get my custom client to catch the option and divert the output to a sub-window instead
04:57 In my case, that part at the top there.
05:01 arxmush-bot joined #evennia
05:02 george have you read this?[…]oing-message-path
05:02 I think what you want is to insert a keyword argument, where you see **kwargs in the msg callsign
05:03 BattleJenkins Ah, yeah - how do I do that?
05:06 george scanning the irc log...I think Griatch wrote an example or two the other day
05:06 yeah, like msg(text, (textfromlocation,), {"sublocation":"by_the_bar"})
05:07 woops, he revised it to msg(text=((textfromlocation,), {"sublocation":"by_the_bar"}))
05:07 check the log here and do a find in page for (text[…]a;date=2016-05-26
05:10 so swap window-id in for sublocation?
05:11 BattleJenkins Hmm... okay, so
05:11 george sounds like the telnet parser will just take the first element of the text tuple? I don't know
05:11 BattleJenkins It works when I actually type the 'look' command
05:11 But not when I just move between rooms
05:11 george what was the hook for looking after move?
05:12 BattleJenkins at_after_move
05:12 I guess I gotta overload that too!
05:13 george hm yeah that seems inconvenient
05:13 BattleJenkins All right, overloading both of those separately works.
05:14 I think it would be better if the at_after_move just forced a "look" command from the mover
05:14 george well they're both doing an at_look right
05:14 BattleJenkins Yeah, it like
05:14 george maybe the place to overload is at_look?
05:14 BattleJenkins Does the same thing as the look command, sort of
05:14 george oh but at_look doesn't use .msg right
05:14 BattleJenkins Nope
05:14 It just returns the string
05:14 george hm
05:15 yeah your idea might be better
05:15 worth an issue I think
05:15 seems silly to overload in two places
05:17 BattleJenkins Oh, also it doesn't work on the look return on first login either!
05:17 I think maybe I'll put in an issue for it
05:21 george yeah that might be a separate call
05:21 like OOCLook or something....
05:22 that?
05:23 probably depends on what multisession mode you're in
05:23 BattleJenkins Success!!
05:23 george ooohh
05:23 BattleJenkins Now, whenever you 'look' or change room, the little sub-window on the top updates.
05:23 But it doesn't show up in the scroll.
05:23 george sweet
05:26 BattleJenkins And when I say first log in, I mean once you pick a character
05:26 And it loads you up into the game, it shows you the room description
05:27 Like so
05:29 arxmush-bot [devchat]Tehom: Nice, BattleJenkins!
05:30 BattleJenkins Thank you!
05:30 Added in a little message saying when you've arrived in the scroll!
05:31 george yeah that call is here BattleJenkins[…]/
05:31 another at_look
05:32 BattleJenkins I think I'll make an issue for this - what's the function call for forcing an object to enter a command again?
05:32 object.cmd("look")?
05:38 arxmush-bot joined #evennia
05:39 arxmush-bot [devchat]Tehom: execute_cmd?
05:39 BattleJenkins Oof, looks like the OOB stuff shows up in the default webclient. That's an issue for sure.
05:42 arxmush-bot joined #evennia
05:45 evenniacode [evennia] BattleJenkins opened issue #986: OOB stuff showing up as text in default webclient & third party client
06:12 BattleJenkins Might as well pretty things up a bit! I think the next thing I'll try out is dynamic backgrounds.
06:25 arxmush-bot joined #evennia
08:30 BattleJenkins
08:34 Wait hold on that gif is borked
08:34 This one's better
08:35 I actually have it controlled by OOB communication!
08:35 That's not me fudging it this time - the screen will shake and flash like that whenever you take damage.
09:45 arxmush-bot joined #evennia
09:52 arxmush-bot joined #evennia
09:55 arxmush-bot joined #evennia
09:57 Griatch BattleJenkins: That looks very good!
09:58 arxmush-bot joined #evennia
11:16 evenniacode [evennia] Griatch commented on issue #983: @TehomCD ...
11:20 [evennia] Griatch commented on issue #613: I have a working shared login running on my local machine. For now I'm telling the web client the browser hash via the django template context `var csession = {{ browser_sessid }};` and then I send that as an OOC command to the evennia side. I suppose this is not more of a security problem than using a cookie-based
11:20 login state in the  first place.
11:23 glasz joined #evennia
12:19 Griatch joined #evennia
13:03 dgm816 joined #evennia
13:04 thinkt4nk joined #evennia
13:42 evenniacode [evennia] Griatch pushed 1 new commit to master:
13:42 evennia/master 81170b6 Griatch: Added validationMade() to websocket protocol, to be able to parse the...
14:08 Griatch Hah, that should pave the way for a really neat shared-login solution
14:31 feend78 joined #evennia
14:49 evenniacode [devblog] 'Evennia in pictures'[…]-in-pictures.html
14:50 whitenoise BattleJenkins: that does look pretty nice. so you managed to get special effects you wanted without a raw output from the websocket server
14:51 coincidentally, I am finally on the move. I have a team coming together. I am currently pulling people in and waiting for all of them to converge
14:51 then I am going to announce a project
14:53 it looks like from the issue you created, though, that your life might be easier with a raw protocol
14:56 Griatch raw protocol would not affect that issue, raw only affects the text component of an OOB command, that error relates to other parts of the OOB command being printed; those are never parsed on the server side.
14:58 whitenoise i think it would help indirectly
14:58 you are saying it's a client parsing issue, right?
14:59 Griatch I think so, yes, it's the onText gui hook that is printing the extra arguments rather than dropping them.
14:59 whitenoise I think having the raw protocol would help simplify what's coming in
14:59 Griatch The actual text is parsed correctly
15:00 It's a JSON array [cmdname, [args], {kwargs}]
15:00 whitenoise oh, hm
15:00 Griatch JS array I guess
15:00 whitenoise yeah, JS
15:01 but interesting. i was thinking it could be like a mess of things like HTML with a JSON block in it somewhere and ...etc
15:01 Griatch Haven't looked at what happens, but it looks like some of the end of those kwargs are leaking over
15:01 whitenoise whereas if you just made a raw protocol, you would know exactly how to parse what you got and where to expect what
15:02 Griatch In the case of the "text" cmdname, args is a single string holding all the messy HTML etc.
15:03 whitenoise i hope to see soon. i was way more occupado this weekend than i planned on being
15:03 Griatch Planning to dive into the code?
15:03 whitenoise yip
15:04 george BattleJenkins mentioned that mushclient has the same issue displaying the text, I thought the non-text portion would be stripped out by the server before sending over telnet?
15:05 * Griatch had guests all weekend, or the shared webclient-website login feature would have progressed further. I know how to do it now though I think.
15:05 Griatch george: It is - in the case of text. If she's sending a custom OOB instruction it's a different matter though.
15:06 whitenoise I will also need an API on top of the game, but I'm thinking I'm going to do the API with Falcon and just have it directly edit the database, rather than go through Django
15:06 Griatch But I've not looked at it yet, maybe there is something leaking through accidentally.
15:06 whitenoise I haven't decided on that front yet, though
15:07 Griatch whitenoise: If you are not concerned about race conditions, then sure.
15:07 evdemo [Public] azrael: Hello ladies and gents.
15:07 george yeah, I thought it was sending text -- like (text=....)
15:07 whitenoise Griatch: that's a good point. perhaps "edit" is the wrong word. I think the API would primarily read.
15:07 george hi azrael
15:07 whitenoise it would be nice if it were readonly
15:07 if it can't be readonly, it likely can't be a standalone API
15:07 george is your server back in order azrael?
15:08 Griatch Why not use Evennia's interface in that case, access it via the webserver?
15:08 evdemo [Public] azrael: That'd what I'm going to retry this morning.
15:08 whitenoise I will have to, because I want it to do character creation as well
15:08 Griatch: I was secretly just trying to not use Django
15:09 Griatch There is also this:
15:09 whitenoise Django isn't bad, but I did a project in Falcon and Peewee and I liked it a lot.
15:09 evdemo [Public] azrael: Nope. Same issues.
15:09 Griatch But sure, if you just want to read, you could go with whatever.
15:10 Heck, BattleJenkins is using a proprietary Windows-only GUI system after all.
15:10 whitenoise Django REST Framework I would say, as far as that issue, is the clear choice
15:11 Griatch Yes, it's just a matter of getting around to actually implementing it
15:12 azrael: Still the issue with a non-configured django install?
15:12 evdemo [Public] azrael: Well, sort of... Now I actually broke things.
15:13 Griatch Ok?
15:13 evdemo [Public] azrael: I'm unable to start up the server.
15:13 Griatch That will produce a traceback in your log.
15:13 whitenoise ooh, and API security!
15:13 Griatch: you know that web security is like, what I do, right!?
15:14 Griatch whitenoise: I know, you just don't apply it do any Evennia contributions. Hint, hint.
15:14 whitenoise if Kelketek is working on that I will have to talk to him
15:14 evdemo [Public] azrael:
15:14 whitenoise Griatch: :P
15:15 I'm behind right now because my thing I was supposed to finish last week got blocked by a different issue
15:15 Kelketek I'm not working on it. No spare time for it as of now.
15:15 whitenoise Kelketek: oh ok
15:16 Kelketek: do you have a branch or anything with partial stuff, or is it all in contemplative stage?
15:16 i.e., would not mess anything up if a new branch appeared
15:16 Kelketek For API work? No work has been done.
15:16 whitenoise ok
15:17 is there an app where you can have like a calender where other people can view your calender?
15:17 i mean, obviously google, but that requires sharing it with people
15:17 Griatch whitenoise: Speaking of that: For the shared webclient/website login, I'm retrieving the browser session hash in the webclient/website and then set it in the django template environment. When the webclient starts, it will use the template context to store said hash in a JS var. When the websocket connects, I the attach the hash to the URL as ws://...?hash, which the websocket parses on connection. That way I connect the browser ...
15:18 ... session with the Evennia Session. I can then use the browser sessid to retrieve the server-side Session info, such as if the player is logged in etc.
15:18 george azrael, have you done a lot of building in your server already? You could just delete your db
15:18 Griatch Does that sound like a reasonable way to do it, from a security standpoint. The session id itself is in a cookie and handled by Django so I presume that's following best practices.
15:19 evdemo [Public] azrael: I thought about that. I haven't really built much. How would I delete just the db?
15:19 Griatch azrael: You need to kill the portal, to begin with.
15:19 whitenoise Griatch: Session IDs are traditionally in cookies, yes. If you are paranoid you can encrypt the cookie. The main thing to watch out for with that is how you are handling your sessions, two big things:
15:19 george you just delete evennia.db3 in mygame/server/
15:19 Griatch It seems to already be running. Run "evennia stop" first, see if that kills both the server and portal
15:19 george then evennia migrate
15:20 at the command terminal
15:20 whitenoise 1) expire your sessions smartly, and 2) decide whether you want multiple instances of the same session id to be allowed
15:20 otherwise you basically have a free login key floating around
15:20 that's always where people get into trouble with sessions
15:21 more secure implementations, if one session is already active on one IP, and another IP tries to use the session ID, it will deauthenticate the session and log both people off immediately.
15:21 Griatch It's only a single browser session id connected to a Player and thus to an Evennia Session. And I only allow to update the Evennia Session once; it can't be linked to a different browser session later.
15:22 whitenoise but as far as how you're passing the session along, I don't see a problem with that unless you wanted to be super secure and say things like "don't have it in the URL because then when people paste links they are leaking their ID"
15:22 oh I see
15:22 okay then
15:22 Griatch Actually, the URL never has the ID, it's just added with ?hash at the end by the evennia.js mechanic itself.
15:23 whitenoise that sounds good, then, with what I see of it.
15:25 Griatch My first attempt sends a separate OOB command with the browser ID once the client has finished establishing the ws socket. I wanted to be able to do this only once, when the client first connects, hence the solution with the URL attachment.
15:26 Even if one only allows for setting the browser session once, it felt a little fiddly to have to set up an inputfunc just to handle that single call from the webclient.
15:26 whitenoise how are you pairing the hash with an evennia session
15:28 Griatch From webclient or website's - those are triggered when either page loads at all. They will set the template context with the sessid. So when the webclient boots up and calls home, it knows it and can pass it down.
15:28 That way the webclient Session (Evennia Session) knows the browser session and can store it.
15:28 whitenoise I see
15:29 Griatch Then it's just a matter of checking if there is a Player already associated with that session (logged in from the website) or vice-versa.
15:29 whitenoise I think this is typically territory where people would start using a session database of some kind so they didn't have to do stuff like that
15:29 but, if it works
15:29 Griatch It is a session database already.
15:30 The browser Sessions are stored in a database table. All we pass around are sessids - the actual flags of the browser session are looked up from the joint database.
15:31 In this case, what the session stores is the associated Player object.
15:31 whitenoise that sounds good. for an instance of Evennia's traffic levels, even if it was a big MUD of like 1,000 people, that would remain fine.
15:31 if it was a large website that would be a problem
15:31 but yeah, that all sounds good
15:32 I understand now the whole session pairing aspect
15:32 Griatch I guess at some point you'll need to switch to django's memcached session system instead.
15:32 whitenoise yep
15:32 at some point the session traffic will kill your db
15:33 Griatch It's luckily not all that much interaction going on on the Server side.
15:34 whitenoise it sounds like to hack the webclient you'd have to hack the website auth
15:34 Griatch Yes, if you do that you'll have logged into a Player anyway, and then you could connect as that Player in the webclient manually anyway I guess.
15:35 whitenoise yeah
15:35 Griatch Or maybe not, if you just got hold of the session hash and not the password
15:35 whitenoise well, let's see if I understand this correctly
15:35 also I only have 25 minutes until I have to put on a shirt and log into my meeting
15:38 so you have your website login. this has your traditional session ID, etc, cookie. You're planting this in a view for the webclient so it can say "Here's the browser session I'm tied to." it stores this to a single browser because it only allows you to update the session once. so you're saying if the person wanted to open another webclient in a different
15:38 browser window, they would have to log out first?
15:38 and log back in, and get a new session
15:38 Griatch Hm.
15:38 whitenoise if so, that's perfect because then even if you did manage to log in as someone else, you wouldn't be able to play
15:39 because as soon as you logged them out to be able to open the webclient, you would lose your way in
15:39 it's good from a security perspective, I'll say
15:39 it might irritate players
15:39 Griatch You could probably connect from another webclient (because of MULTISESSION_MODE), but you would then not have the session cookie to help you  - you'd need to manually authenticate.
15:40 whitenoise ok
15:40 so same idea. your free ticket is only usable once
15:40 Griatch I need to test that in practice though, it's a good test.
15:40 whitenoise so another question
15:40 lets say you're logged into the website but you use MUSHclient or something
15:41 i obtain your session id
15:41 Griatch Telnet won't get any help at all.
15:41 whitenoise can I open a websocket connection with your ID?
15:41 since you're not using it
15:42 Griatch Hm I suppose you could, if you send the hash in exactly the right way (say, with a hacked evennia.js).
15:42 whitenoise since it is a JS variable, you could inject whatever ID you wanted on the fly
15:42 Griatch So yes, that is probably possible.
15:42 whitenoise then I think that is the only problem I could think of
15:43 and how you fix that, I would not be immediately sure.
15:43 that's an interesting problem
15:43 Griatch The webclient connection is the only way the Evennia Session can figure out which browser session it associates with.
15:44 whitenoise you could force people to be logged out or something
15:44 but I dunno, then you start defeating the people who want to be able to play from all the consoles in the world
15:44 Griatch Force them to be logged out, in what sense?
15:44 whitenoise like
15:44 if you try to open the webclient, but the player is actively running around say no and reject the ws connection
15:45 Griatch That is not possible due to MULTISESSION_MODE
15:45 whitenoise yeah :\
15:45 Griatch It should be perfectly valid to connect via telnet, websocket etc at the same time.
15:45 whitenoise well then there you have it :P
15:45 multisession_mode has introduced a vulnerability
15:46 well, from a security standpoint "multisession" all by itself is a vulnerability
15:46 unless you say it all has to be from the same IP, would that work?
15:47 Griatch Hm, not sure. I can just guarantee there is a whole subgenre who wants to keep a client on at home, another on the bus etc ...
15:47 whitenoise yeah
15:47 Griatch MUSHers in particular.
15:47 They are big on the multi-device thing.
15:47 whitenoise i think then the only way you solve that is you could lock down that vulnerability by default, and have the ability for them to turn that security off
15:48 if you care that much
15:48 Griatch The assumption is that you could secure their id hash.
15:48 whitenoise so your browser cookie is going to have the session of 123
15:48 but the webclient is going to have a hashed version of 123?
15:49 and then it goes and grabs the username that is trying to authenticate, pulls its session id, hashes it, and sees if its a match?
15:49 sort of like a password login
15:49 Griatch It's actually a 64 character long hash, not a simple number.
15:49 whitenoise oh yeah, i know, but i don't want to type 64 characters
15:50 Griatch You should not need to type anything ...
15:50 whitenoise i mean for my example up there
15:50 if the Session ID was 123...
15:50 that's in a browser cookie and in the database, right, the 123 value, but the JS variable is a hashed version of 123
15:51 and so it hashes 123 again and compares it to the hash the webclient gives it?
15:51 Griatch I don't know, honestly - if you look at the sessid at any point on the server side I always only see the long hash.
15:52 whitenoise oh ok
15:52 so the session id is not being manipulated at all for the webclient, is what i mean
15:52 Griatch No it's not.
15:52 whitenoise so, another way to defeat that would be to manipulate it
15:52 Griatch Make some sort of mapping?
15:52 whitenoise well, the project is open source, so nevermind :P
15:53 i was going to say if you do something like SHA256 the session id, and THAT value goes into the JS var
15:53 and then when ws tries to connect, it pulls the session id out of the DB for that user, hashes it again
15:53 and compares the hashes
15:53 so that way an attacker trying to jump on the webclient would have to not only have obtained their session id, but would also have to know what hashing you were doing in the background
15:53 but since it's open source, they could just go look
15:54 so that wouldn't work.
15:54 toggling IP security or something is still best option for nullifying that vector, it seems
15:54 but anyhow, this was a fun conversation
15:55 Griatch Hm, might need to consider that as an option. Yeah, thanks for the input!
16:24 Reposted this, since the OR original is down.
16:30 OmegaA Welp, version of Chrome doesn't even suport websockets.
16:33 I have two Player objects with the same ID.
16:33 Griatch That is technically impossible.
16:33 OmegaA I know.
16:33 Griatch Unless they are the same object
16:33 OmegaA Oh, no.
16:33 AA /character/ is #4, and an unrelated player is also #4
16:34 Is that a bit better?
16:34 * OmegaA assumed that Objects and Players are stored in different tables, but a bit weird if you're trying to examine a player by dbref.
16:35 Griatch That is correct. They are stored in different tables, each with its own run of #dbref.
16:36 OmegaA Can I do ex *#4?
16:36 Griatch A Player can after all control a multitude of characters, so the two cannot be synced.
16:36 Try it
16:36 OmegaA Eeexcellent.
16:36 Is there a symbol to use for examining channels?
16:37 Griatch No, channels are queried in Python. You can use @py to look at them if you don't want to use the various channel commands.
16:38 You might be able to do @find/channel #3 too, don't remember
16:43 OmegaA Also didn't know the webclient can fallback to ajax, sweetish
16:44 Griatch Yeah, it falls back to AJAX/COMET if the browser doesn't support websockets (or websockets are misconfigured)
16:44 whitenoise that's a good article
16:45 I know you didn't just write it, but I had never looked at it before
16:45 OmegaA Or if the university has an old as bals version of chrome installed. :D
16:45 Griatch I made the original client an ajax client, at the time there was no wide support for websockets
16:45 whitenoise: Thankyou!
16:46 Then when I made the websocket client it was logical to just keep the ajax one around as a fallback.
16:47 OmegaA I'm guessing Evennia doesn't have a standard mail system?
16:48 Griatch There are standard mail-like objects (Msg) but there is no standard set ot commands to use them as a mail system, no.
16:54 OmegaA Is there any easy way to add things to INSTALLED_APPS without copying the entire set?
16:58 Griatch INSTALLED_APPS += ["yourapp"]
16:59 OmegaA Aha.
16:59 Griatch You can see it done towards the end of the settings file as I recall.
16:59 OmegaA Also, thing is telling me to do './ migrate helpdesk', but can't find
16:59 Griatch Use evennia migrate instead
17:04 * OmegaA plots to rip apart the defalt website and make it shiny.
17:05 whitenoise websites cannot be shiny.
17:05 unless maybe you have a glossy screen
17:05 Griatch whitenoise: Hush, let him make it shiny!
17:05 whitenoise oh ok
17:06 Griatch has to mitigate my presence
17:07 Griatch We would not be bad off with a new Evennia-specific website template btw, rather than the "prosimii" one we're using.
17:08 prosimii is ok, would be nice with something originating with Evennia.
17:08 whitenoise OmegaA: are you a web designer
17:09 OmegaA lolno
17:09 * Griatch compiled fortran cooooode sloooowly
17:09 OmegaA I just slap bootstrap on something and hope for the best
17:10 Griatch We (I) got some help from a web-dev for making the webclient gui stable and compliant. That was great.
17:10 OmegaA Is machina the go-to forum for Django or do other people have a different preference?
17:11 Griatch I don't know what is the go-to for django forum software right now.
17:15 whitenoise I am a pretend web designer. I mostly do backend implementations and security, but, I can do plenty of front-end stuff.
17:15 but when it comes to stuff CSS practices or stuff that will work on all browsers, I have never learned that.
17:16 and I don't want to because it's a mess
17:17 OmegaA In my experience, slapping something like bootstrap on it is a sure fire way to have cross-browser compatability
17:17 whitenoise that can be true, but it also looks like bootstrap
17:17 bootstrap is also kind of big
17:17 I have started using PureCSS from Yahoo for templating stuff out
17:18 it's very small and it's mostly alignment and responsive stuff, so it's a good minimalist kit
17:18 also I think there are some things you can't do with those kits
17:18 that you would still need to manually put in some code blocks
17:19 like floating elements and whatnot
17:19 OmegaA Also, how easy is it to get JS to talk with django/evennia? Is that when you get into using OOB?
17:23 whitenoise define "to talk with"
17:24 OmegaA Well, example, I want to create interactable character sheets on the website, so being able to access the DB for a start.
17:25 Griatch-mobile joined #evennia
17:26 Griatch-mobile Woo, on the road again
17:27 whitenoise there are a couple of ways that that is theoretically possible
17:27 * OmegaA also told to learn React and ES6 by project manager, whee.
17:27 whitenoise there is currently an evennia tutorial for a character sheet, but it's just using a django view
17:28 the other way, and what's would be my preferred way
17:28 is when Django REST Framework is implemented and there's an API for all of that information...
17:28 you could use React or Angular or whatever...and just do API calls, and present the information however you wanted.
17:28 arxmush-bot [devchat]Tehom: I would think anything you'd want to do with interactive character sheets you can do with django and jquery. just formviews or whatever. But I imagine there's bunches of different ways you could do it
17:28 whitenoise the final way would be to set JS variables via Django templates
17:29 which would still be utilizing the view
17:29 Griatch-mobile just using the view is certainly  a functional way though
17:29 OmegaA isn't React the new jquery?
17:29 whitenoise no
17:29 so
17:29 OmegaA I go away from webdev for a few years and all these new stuffs crops up...
17:30 whitenoise 1) there are loads of javascript front-end frameworks, and there are ones that are just as popular as React, although it is very popular.
17:30 2) they have issues
17:30 they tend to be kind of large, and also they have major problems with SEO
17:30 jQuery still has a use case in the world technically speaking
17:31 the best thing I've been able to come up with is to have static landing pages and stuff like that for SEO, and then have your dynamic content in a JS framework
17:31 stuff that you likely wouldn't want to index in a search engine anyway
17:31 (like character sheets)
17:32 Griatch-mobile There will always be newer, shinier libs to try. Eventually one just needs to settle on something and use it.
17:32 whitenoise this is also true
17:32 OmegaA So, RESTful API, is that on Evennia's side tat we're waiting for?
17:32 whitenoise you should only come off of a technology if there is a compelling reason to do so, otherwise you're just in an endless loop of rework
17:33 OmegaA: yes, it's a feature request to implement the foundation of an API in Evennia
17:33 but as stated, you can easily do what you're looking for with views
17:33 like Griatch did elsewhere
17:35 Griatch-mobile You can get very far with what is available out of the box.
17:35 OmegaA Having an API does sound slightly more preferable, to keep the majority of the logic in JS
17:35 whitenoise a lot of logic has to be on the backend regardless
17:36 because the front-end cannot be trusted for anything
17:36 arxmush-bot [devchat]Tehom: Personally, I haven't found anything needed more for my website than just django views as far as character sheets go. Though I need to learn way more to make them as pretty as people would be accustomed to on other mushes
17:36 whitenoise but if you mean just displaying and moving stuff around, sure. an API with a javascript framework on top of it is always going to be more fluid and dynamic than a Django view
17:36 arxmush-bot [devchat]Tehom: It kinda makes me wince that my players keep calling the website a 'wikia' though. :p
17:36 whitenoise lol
17:37 OmegaA The way I'd do it (no idea if this is a good idea) would be to have the API expose all attributes on an object? Probably following a looooot of authentication :P
17:37 Ouch
17:37 whitenoise API development is very delicate
17:37 you can easily oops
17:37 * OmegaA runs home, bbiab
17:38 glasz joined #evennia
17:38 whitenoise but yeah, my preference would be to have an API as well, I think having an API is the next logical step for Evennia as far as major features
17:38 Griatch-mobile joined #evennia
17:38 whitenoise everything else is to a point where it not having an API seems like a shortcoming, I think
17:39 but if an API exposes all attributes of an object, you end up with a pretty major vulnerability
17:39 Griatch-mobile joined #evennia
17:39 whitenoise and that's one of the things that is going to have to be considered by whoever writes the API in (which might be me, it looks like)
17:39 Griatch-mobile joined #evennia
17:40 whitenoise wait, lets wait for Griatch's join flood to stop :P
17:42 Griatch-mobile2 joined #evennia
17:43 whitenoise but I did a penetration test on a healthcare application once that was designed in the way you just said
17:43 and within a few minutes, I had dumped out everyone's medical info
17:43 the attributes you expose have to be explicitly whitelisted
17:44 Griatch-mobile2 phone client disconnects when switching networks  . . .
17:44 whitenoise hahaha
17:44 arxmush-bot [devchat]Tehom: Is that something you can do with django views out of the box? Like some validation in the view itself to make sure the data it puts in the context all fall inside a whitelist?
17:44 Griatch-mobile2 still here
17:45 arxmush-bot [devchat]Tehom: Like a decorator for rendertoresponse or whatever it's called
17:45 whitenoise Tehom: I'm not really an authority on Django, I don't use it other than Evennia
17:45 but Django does have defenses against that I know, yes
17:46 the type of vulnerability is known as mass assignment
17:46 so you could look it up
17:47 Griatch-mobile2 Tehom: Yes views are very powerful so I don't see any reason why not.
17:47 whitenoise you could especially do it on the model level
17:48 basically, you really never want to do anything like build an object from the input of a form
17:48 or update an object by merging the object from a form onto an existing object
17:48 that is a huge compromise waiting to happen
17:49 arxmush-bot [devchat]Tehom: Aha![…]nt-vulnerability/ - yeah, I was confused about why some people made such a big deal about how you defined the meta fields in modelforms
17:49 whitenoise because if I can map out the attributes of an object, or just guess them, I can go to something like a password reset form, and just inject a lot of parameters
17:49 arxmush-bot [devchat]Tehom: and I guess it's specifically what you're talking about
17:49 [devchat]Tehom: I have no idea if the most recent version of django makes it mandatory though
17:49 whitenoise that's how I broke the healthcare app, I went to password reset form, made myself an admin, and then dumped everyone's records because the admin attribute was settable
17:50 arxmush-bot [devchat]Tehom: Haha, wow. That's so neat
17:50 Griatch-mobile2 The python end of the admin app is also powerful
17:51 whitenoise that's true, you might also be able to protect it there
17:54 OmegaA whitenoise: I'd have server side generated API keys that are required for unfettered access.
17:55 feend78 joined #evennia
17:57 Griatch-mobile2 Hah, seems like a return to the session discrssion we just had! !
17:57 whitenoise it basically is
17:57 lol
17:57 but, giving a player "unfettered" access to their game objects will always be a bad idea, API key or not
17:58 because you also have like the account rank and stuff built in on those same objects
17:58 it seems feasible that someone could make themselves a MUD admin without you wanting them to
17:59 so when implementing an API, it would probably be best to store fields that should be readonly maybe in settings or something, and then the server could pull those settings.
17:59 arxmush-bot [devchat]Tehom: like .is_staff, for example
17:59 evdemo [Public] azrael: If I make a new file in the typeclasses file, calling it 'npc' and I want to import something from the module 'character' in that typeclasses file... Do I have to reference it any differently? Or can I just import from that other module?
17:59 whitenoise that way if someone expanded the typeclass with more stuff they wanted to be readonly, they wouldn't have to go dive into the code they aren't supposed to do keep security.
18:00 Tehom: yes
18:00 Griatch-mobile2 Yes, there is a feature request for more consistent web object manipulation too.
18:01 evdemo [Public] azrael: So it'd be like from typclasses.Character import character?
18:01 Griatch-mobile2 azrael: no
18:02 The Charater is a class in the character module
18:04 from typeclasses.character import Character
18:05 but reacd up on typeclasses
18:05 evdemo [Public] azrael: Roger. :P
18:05 [Public] azrael: Thanks!
18:06 whitenoise hm
18:06 Griatch-mobile2 you can never have two tlypeclasses with the same name acrross Evennia, for example.
18:07 whitenoise my wife is in Paris right now, and the US State Department just issued a terrorism warning for Paris, France. France also extended their state of emergency.
18:07 evdemo [Public] BlauFeuer: That's why I can't make a weapons class, because it's already a class in contrib.
18:07 whitenoise I am wondering if these two actions are because of known intelligence, or just precautionary
18:08 evdemo [Public] azrael: whitenoise: Well that is rather unsettling. I'm sorry.
18:08 Griatch-mobile2 that's one of the few differences between clesses and typeclasses
18:09 evdemo [Public] azrael: Yea. I have to reread that document. Lots to learn about those things.
18:09 Griatch-mobile2 whitenoice: ouch
18:10 whitenoise fortunately, I can do a neat little trick etc etc mumble mumble
18:11 I'm going to find out
18:12 evdemo [Public] azrael: I work for the government... Want me to send out my agents? :P
18:14 Griatch Technically I also work for the government. :) Just not the same government and not at all in anything related to sending agents anywhere. :)
18:14 whitenoise lol
18:14 evdemo [Public] azrael: xD
18:14 whitenoise I almost worked for the government once
18:15 I was in the final stage of hiring, which was a panel interview, and then the government shut down
18:15 and they dropped everyone
18:15 evdemo [Public] azrael: Whew. Lucky you. :P
18:15 whitenoise so I took a job in the video game industry, then about 6-7 months later they contacted me and said "Hey, you can jump back in."
18:16 and I was like
18:16 "Nah, I'm doing video games now."
18:16 Griatch Government shut down? You were hiring in North Korea?
18:16 whitenoise Griatch: the US government shut down a couple years back
18:16 evdemo [Public] azrael: The US government had a shut down.
18:16 Griatch Ah, that shutdown.
18:16 evdemo [Public] azrael: Lucky me they didn't wanna get ride of their military... xD
18:17 Griatch It was a bizarre thing to observe for us on the outside.
18:17 whitenoise well, and certain agencies keep going because certain things can't stop
18:17 but they certainly don't hire anyone
18:17 certain certain certain certain certain
18:18 OmegaA Huh.
18:18 Griatch That's for certain
18:18 whitenoise but you know, what with my skillsets i was just going to be a clerk, of course
18:18 OmegaA Recommendations from django people is to let React do the templating and just have django serve API stuff
18:18 evdemo [Public] azrael: I would certainly hope so.
18:19 whitenoise OmegaA: that is the typically practice of web workings these days
18:19 typical*
18:19 the problem is that, django on Evennia isn't serving API stuff
18:19 arxmush-bot [devchat]Tehom: If anyone wants to help see if the logging issue for http_requests I posted is still happening, I'd appreciate if you'd just randomly click links on in order to build up my log file. I can't replace it with a nearly full one while the mush is running, and I don't wanna interrupt people's RP
18:19 OmegaA Yeah.
18:20 I assume the way most people do stuff is have Node serve React and then have their other backend do the API stuff.
18:21 whitenoise i can hit the entire website Tehom, one second
18:21 Neutron joined #evennia
18:21 OmegaA left #evennia
18:23 whitenoise Tehom: logs should be blowing up
18:23 and it's done
18:24 arxmush-bot [devchat]Tehom: Thanks! That got me a lot closer. I'll just browse through admin a while and see if I can get it to where the error occurred
18:28 whitenoise alright, i'm going to try to do work for a few hours
18:28 i'll be back later
18:32 Griatch: before i get tunnel vision on work
18:32 what was that other feature request you were talking about
18:32 something about web objects
18:33 evenniacode [evennia] TehomCD commented on issue #983: I had noticed the website hung a few times after heavy activity, and after shutting down and restarting to fix it, I saw that it had happened each time when the http_requests.log file had become full. Originally I didn't notice any visible traceback, but I did get one after I added a Site class that both server/portal
18:33 use and overrode the log method to prune out webclient POST requests in
18:33 arxmush-bot [devchat]Tehom: Hurray, no website freeze this time. Thanks, Whitenoise
18:34 Griatch whitenoise: The admin site - refining that to make for a more consistent experience modifying objects etc.
18:35 Things like adding Attributes etc are currently not supported.
18:35 whitenoise ah
18:36 Griatch Tehom: Maybe we should simply deactivate the html log; it's not very useful as it is.
18:37 arxmush-bot [devchat]Tehom: Yeah, I was going to just turn it off if I couldn't figure out a way around the error. But I wasn't sure if there was anything important in there I would be missing out on
18:37 Griatch If there is a way to turn it off, I recall just rerouting the request log to another file long, long time ago since it flooded the normal logs otherwise.
18:38 arxmush-bot [devchat]Tehom: You could just make a Site class like I did and have the log method be empty. That was the suggestion I read for people asking how to disable logging in twisted. It seems like there'd be some option you could just set somewhere, though
18:39 whitenoise how are you filling a log up?
18:39 Griatch I recall it not being obvious.
18:39 whitenoise isn't a log only full when the hard drive is full?
18:39 Griatch It's strange that the site would be sluggish due to the size of a log though
18:40 arxmush-bot [devchat]Tehom: In this case, twisted seems to automatically close the file and archive it as http_requests.log.old when it reaches close to 1mb size. The error I was getting is it was still trying to write to the closed file (I'm guessing delayed callbacks?) and that caused an I/O error that made the website hang
18:40 Griatch I mean, maybe if the log was written to a gazillion times a second or something, but why would its size matter?
18:40 whitenoise ah, well that makes sense
18:41 twisted really shouldn't do that, that's what things like logrotate are for
18:41 Griatch Huh. Where does the traceback originate from?
18:42 arxmush-bot [devchat]Tehom: I posted the traceback in my comment, but I don't know enough about twisted to make any sense of it. The only thing that's from my code is the Site class I put in -[…]comment-222659639
18:44 Griatch Ah, didn't actually go to the comment, sorry. :)
18:44 whitenoise that seems like a twisted bug to me
18:45 arxmush-bot [devchat]Tehom: I should mention that I still have the old version of evennia with the previous version of twisted it was using, so it's possible this isn't even affecting the current version. I just figured I should post about it in case it was
18:46 whitenoise you could set up a copytruncate logrotate config on the file for when it hits like 800KB
18:46 and then that wouldn't happen, and you would still have your logs
18:46 Neutron Grr, internet isn't doing too well at how to get React to work nicely with an already existing django setup.
18:46 evdemo [Public] azrael: I'd like to see a tutorial on how to do a crafting system. :P
18:47 whitenoise azrael: that's kind of hard because everyone has a different idea of how crafting works
18:47 I considered that
18:47 evdemo [Public] azrael: Hrrmm... Yea. But you guys did one on combat. Which personally, I think is even more differing than crafting... ? Maybe?
18:48 whitenoise I don't really think so. Primarily there are 2 types of combat
18:48 Griatch azrael: If you could make a feature request, listing some generic features you'd want demonstrated in a crafting tutorial, that'd be a good start.
18:48 evdemo [Public] azrael: I can do that. :P
18:49 Griatch It needs to be generic enough to be useful for more than one game after all.
18:52 whitenoise hm
18:52 I have two factor bitbucket authentication that I set up...I just logged in, and it's waiting on me to enter the code it has yet to send me
18:55 Griatch: this is a pretty cool thing i found
18:56 glasz joined #evennia
19:03 Griatch Yeah, that's a cool resource!
19:07 whitenoise so if a black hole is a massive collapse of a star that ends up pulling everything in due to the force of collapse, how is it possible that something like NGC 4258 is producing jets of particles, as a supermassive black hole?
19:07 that seems to me like the opposite of what it should be doing
19:09 evdemo [Public] BlauFeuer: I suppose it really isn't "pulling everything in" - there's some things that it isn't pulling in.
19:10 whitenoise so you're saying some things aren't subject to gravity?
19:11 Griatch whitenoise: A black hole is just a very densely packed region of space. It has no more "pulling" power than the original mass forming the hole.
19:11 evdemo [Public] BlauFeuer: Radiant energy on this side of the event horizon isn't being pulled in.
19:11 whitenoise Griatch: ah, because it's the same mass?
19:12 well it wouldn't be quite the same mass, right, because it became a black hole because it fused up all of its resources, so it would be a bit less
19:12 * whitenoise is totally an astronomer
19:12 Griatch Yes, if our sun would this very moment magically turn into a black hole we would stay just where we are. We'd be very cold and hit with a lot of nasty radiation but we would be affected by the same gravity
19:12 whitenoise makes sense
19:12 evdemo [Public] BlauFeuer: And the missing mass is radiated out as energy, isn't it?
19:13 Griatch Yes, sort of.
19:13 Neutron Is there nothing like sshfs that'll work on Win10?
19:13 Griatch A black hole is not fully "black". It radiates via Hawking radiation - figuring this out is one of the claims to fame of Stephen Hawking
19:14 sshfs? No idea.
19:14 Neutron I'd like to be able to develop using a text editor on Windows without having to get git involved.
19:14 Griatch Why not get git involved?
19:14 evdemo [Public] BlauFeuer: Neutron: Win SCP?
19:14 Neutron Because I'm mostly editing configs that I want to test live.
19:15 whitenoise Neutron: ?
19:15 Neutron whitenoise, only supports Win7, not 8 or 10.
19:15 evdemo [Public] BlauFeuer: It'll get the file there - it's what I use.
19:16 [Public] BlauFeuer: I think it might be built into PyCharm, so when I hit save, it goes out across SSH.
19:17 * Neutron could just use PyCharm instead of atom
19:17 whitenoise i just use linux
19:17 evdemo [Public] BlauFeuer: Wow, I just generated a Traceback on the test server. It seems that "at_say" is throwing it.
19:17 Neutron Oooor just realise there's an atom package for working remotely
19:17 whitenoise huehuehue
19:18 just work off of a VM or VPS
19:18 problem solved
19:18 Neutron I am working off a VPS.
19:18 whitenoise Windows is for playing, not working
19:18 Neutron Pfft.
19:18 evdemo [Public] BlauFeuer: Griatch, can you peek at the test server log for that traceback?
19:18 Neutron If I had the time to mess around with setting up linux on this computer...
19:18 whitenoise I can get a fully fleshed out Linux development environment set up in like 45 minutes, including installing the OS
19:19 Neutron Would it be a terrible idea to set up a Linux VM on my Windows machine? :P
19:19 evdemo [Public] BlauFeuer: All I get is: AttributeError: 'NoneType' object has no attribute 'at_say' An untrapped error occurred. Please file a bug report detailing the steps to reproduce.
19:19 whitenoise no, although the usage can be a little irritating like with mouse capture, clipboards, etc.
19:19 I use Vagrant all the time
19:19 Neutron I'd have to muck around in partitions, I've been meaning to rework this computer anyway.
19:19 evdemo [Public] BlauFeuer: And: (Traceback was logged 2016-05-31 19:08:07-0000).
19:20 whitenoise then it's a matter of getting a terminal on windows that doesn't suck
19:20 i'm currently using MobaXterm for going to my servers
19:21 Neutron Or wait for the Win10 update and use bash
19:21 evdemo [Public] BlauFeuer: You can just send the file via SCP or SFTP.
19:22 whitenoise that's going to be the first good feature they've ever added
19:24 it sounds like the Windows bash shell might not run Evennia
19:27 Neutron Ah?
19:29 whitenoise maybe i'll install Insider so I can test it out
19:29 but yeah, it seems it's not a real linux, and it says it "won't work with server software" but doesn't elaborate on what that means exactly
19:30 but i bet i could run my vim natively on it
19:31 Griatch Blau: looks like caller.location.at_say gave the traceback, so the object's location is None?
19:31 Neutron Is it out on Insider yet?
19:32 whitenoise yep
19:33 evdemo [Public] BlauFeuer: OOh... I am in None!  I think I hid here.
19:34 [Public] BlauFeuer: I forgot about that - hid there yesterday.
19:35 [Public] BlauFeuer goes back out to Limbo where he finds azrael.
19:51 Neutron joined #evennia
19:58 whitenoise jimmy neutron
20:10 evdemo [Public] BlauFeuer: The %r%r in the Limbo desc should be \n\n ?
20:12 Griatch Saw that, it should be |/|/ since %r is no longer supported.
20:13 evdemo [Public] BlauFeuer: I can't see what you wrote, but it was interpreted as a blank line. I edited the desc attribute. Looks good now.
20:14 Griatch It should be a line break, a | and then a / together
20:14 %r was an old-old way to write that
20:17 evdemo [Public] BlauFeuer: I'll give it a try.
20:18 [Public] BlauFeuer: It looks like @set just escapes |\
20:18 [Public] BlauFeuer: But \n still works.
20:20 whitenoise |/|/|/|/|/|/|/|/|/|/|/
20:20 evdemo [Public] BlauFeuer: Yes, that just gets interpreted in here as a bunch of blank lines.
20:20 whitenoise that's awesome
20:21 i will absolutely refrain from abusing that
20:43 Neutron |/ is ooooodd :D
20:45 evdemo [Public] BlauFeuer: There's only one of you, right?
20:47 Griatch Heh, Blau can't see the | + /, Neutron was commenting that it was odd. ;)
20:47 (but it's one of him too by all means)
20:47 evdemo [Public] BlauFeuer: If I @set here/desc = |/, it is escaped when written in.
20:48 Griatch @set is a little special. If you use it in a say, what happens?
20:49 evdemo [Public] BlauFeuer: Like: @set here/desc="Welcome to the |gEvennia|n ( demo! ... |\|\The |gtutorial|n is ..."
20:49 [Public] BlauFeuer: So I ended up having to use \n\n instead.
20:50 Griatch You are using | + / and not | + \ I take it
20:51 evdemo [Public] BlauFeuer: @set here/desc="Welcome to the |gEvennia|n ( demo! ... |\|\The |gtutorial|n is a small single-player quest.... |\|\ Be aware that this demo will reset ..."
20:51 [Public] BlauFeuer: That gets escaped when written into the attribute.
20:53 Griatch Just tried it locally, seems to work fine here ...
20:53 Are you sure you are not using backwards slashes when it should forward slashes?
20:53 evdemo [Public] BlauFeuer: I'm using:  @set here/desc="Welcome to the |gEvennia|n ( demo! ... |\|\The |gtutorial|n is a small single-player quest.... |\|\ Be aware that this demo will reset ..."
20:53 Griatch That looks very much like | followed by a backwards slash.
20:54 evdemo [Public] BlauFeuer: But you said:  Griatch@#evennia: You are using | + / and not | + \ I take it
20:54 Griatch Yes, | + / is a pipe and a forward slash.
20:54 evdemo [Public] BlauFeuer: I am using the latter, not the former.  You said I was using the former, not the latter.
20:55 Griatch No I was wanting you to confirm that you were using the former and not the latter. :)
20:55 To quote myself. "It should be a line break, a | and then a / together"
20:56 evdemo [Public] BlauFeuer: Oh. I missed the question mark.  I'll try the forward slash.
20:57 [Public] BlauFeuer: That works fine. I suppose you can use |/ instead of %r in the build script.
20:57 [Public] BlauFeuer: But |\ seems more intuitive to me, because \n is the newline.
20:58 [Public] BlauFeuer: That's forever going to confuse me. :>
20:58 Griatch The \ is an escape character, we don't want that in the strings from normal players (@set is a builder command)
21:00 evdemo [Public] BlauFeuer: Well there you go. I'll just consult the @colors ansi reference and I'll be fine.
21:00 Neutron Do I need to do anything special with Apache when proxying so Evennia still sees the IPs of connected players?
21:01 Griatch Neutron: If you are foregoing Evennia's own webserver you are pretty much on your own ... haven't used an Apache replacement for years.
21:01 If you are just doing a proxy though, then you will need to look into our going-online wiki page.
21:01 Neutron The server I'm running Evennia on already uses Apache. I just want to be able to access Evennia on port 80.
21:02 Griatch[…]ki/Online%20Setup
21:02 evdemo [Public] BlauFeuer: I think that's possible if you allow use of port 80 by non-root processes.
21:03 Neutron I don't want Evennia itself running on port 80, since I already have Apache running.
21:04 Griatch You need to set up Apache to forward it to Evennia then somehow?
21:05 Neutron Well, I know how to do proxying with Apache, I'm just unsure if there's anything special I need to do so Evennia still sees the real IPs of connected players.
21:05 Griatch Not that I know of, it's more a matter of Apache forwarding that data than Evennia doing anything I think.
21:22 Neutron Alright. On another note, is it recommended to use batchcommands for building rather than building each individual room with @dig? I remember my builder saying something like that when reading the wiki.
21:23 evdemo [Public] BlauFeuer: It's certainly easier for larger scale building.
21:23 whitenoise it's easier for large scale building, and it also gives you a backup of the area that you can easily just run again to rebuild the area
21:23 otherwise you would need to do regular db backups
21:24 Griatch The advantage with batchcommand is scale, yes, and repeatability. See for example evennia/contrib/tutorial_world/build.ev to see an example of a conveniently distributed mini-world.
21:24 evdemo [Public] BlauFeuer: Mhmm, mini-world.
21:25 Griatch It's very mini. :)
21:27 Xantara Sup
21:29 Griatch Hi Xantara

← Previous day | Index | Server Index | Channel Index | Today | Atom Feed | Search | Google Search | Plain-Text | plain, newest first