« first day (60 days earlier)      last day (3801 days later) » 
08:00 - 17:0017:00 - 23:00

17:00
No problem (yet), just a method of figuring out what the heck an user supplied to the system? :)
I imagine a mod that either consists of a single file (new assumption) or of an archive (zip/rar/jar)
We make sure we have a list of files (extracted from archive)
and we have a list of supported programming languages, and then we check what extension is used exclusively (if not exclusively, throw an exception?)
And then we know in what language the mod is written, and then we need separate strategies for handling the "file"
There has to be an 'entry point' to the mod though, doesn't it? One mod shouldn't be able to have two entry points (or should it?)
@SimonAndréForsberg That's a good point yes, and I'm still unsure how to deal with it, by convention might work best
I'm now more concerned to figure out in what language something is written in
Would Scala or Groovy also get packaged in a JAR?
Or well... they're still .class files I think
if a mod should only have one entry point, then there's not really a problem.
@skiwi I don't consider neither Scala or Groovy very relevant at this point in time.
@SimonAndréForsberg It's just to show that a JAR doesn't exclusively mean the source is Java
but on the other hand, a JAR contains .class files
Exactly. All JARs should be treated the same, no matter what they are.
17:07
On the other hand, a JAR is just an archive, nothing more (apart from manifest for example)
If someone packaged Lua files into a JAR, is it fine if we can run it?
It would be foolish to package Lua files into a JAR
A JAR without Java class files should not be submitted as a mod
@SimonAndréForsberg Some people... are idiots
We shouldn't support idiots as modders.
17:08
I'm wondering if we should specify the language of a mod, or if it should try to figure it out by itself?
step 1. make it work, any way it wants to work. step 2. refactor.
i.e. IMO it doesn't matter for now.
So we'll go with supplying the language as well
well @skiwi the lambda thing did fix the problem, thank you! the only event related import that the class has is javafx.event.ActionEvent, maybe the EventHandler is imported in the actual scene?
also I had to give the command to the stage before switching to that stage or it wouldn't work right
@bazola Not sure abut that, it sounds like you were using the wrong class though
I am not totally sure.. anyway now I am getting this exception, but all the threads are properly closing now
java.net.SocketException: Socket closed
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:150)
	at java.net.SocketInputStream.read(SocketInputStream.java:121)
	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.loadMore(UTF8StreamJsonParser.java:176)
	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd(UTF8StreamJsonParser.java:2606)
	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:645)
17:20
> The mod integration tests now delete their temp files.
@bazola When exactly do you get that exception?
as soon as I click the X to close the window
this is what I call when I click the X:
	public void closeGame() {
		try {
			this.in.close();
			this.out.close();
		} catch (Exception e) {
			System.out.println("Failed to break connection");
		}
		this.listenThread.interrupt();
		this.playThread.interrupt();
	}
@bazola That exception is expected.
You are closing a socket, but your other thread is still trying to read from the socket
17:24
You first need to interrupt that specific thread and then friendly close it
Interrupting the thread first sounds like a good idea though. Move the .interrupt calls to the top of the closeGame method @bazola
Not sure if it will work though. I think there will still be some exception.
trying to do this inside the controller is definitely not working, I have to assign it before switching to it:
		Node source = this.rootPane;
		Stage stage = (Stage)source.getScene().getWindow();
		stage.setOnCloseRequest(windowEvent -> {this.closeGame();});
> If this thread is blocked in an I/O operation upon an interruptible channel then the channel will be closed, the thread's interrupt status will be set, and the thread will receive a ClosedByInterruptException.
@bazola assign what before switching to what?
this works when I put it in the Launcher that ends up creating the actual Client:
				Scene scene = new Scene(root);
				Stage gameStage = new Stage();
				gameStage.setScene(scene);
				gameStage.setOnCloseRequest(windowEvent -> {controller.closeGame();});
				gameStage.show();
@bazola You can do just gameStage.setOnCloseRequest(windowEvent -> controller.closeGame()); here
17:32
putting the .interrupt calls at the top did not cure the exception
@skiwi that is what I am doing?
@bazola Well I more meant that you don't need the { ;} around it
ah okay I see now :)
@bazola let the exception be there for now, it doesn't do any harm, really
it is an expected exception
well I can live with that, but it does seem strange that an exception is guaranteed to happen when the program closes like that?
by doing this I did manage to make the exception stop though:
		this.listenThread.stop();
		this.playThread.stop();
Yes, but stopping threads is not recommended.
@skiwi or I (or @Marc-Andre?) can have a look at it sometime though. Just create a github issue for it.
17:39
> Fixed issue of all threads not closing on exiting client
[Cardshifter/Cardshifter] build #223 for commit 1a2d774a on branch javafx passed
> caused by this method:
public void closeGame() {
this.listenThread.interrupt();
this.playThread.interrupt();

//Uncomment these lines to cure the exception
//this.listenThread.stop();
//this.playThread.stop();

try {
this.in.close();
this.out.close();
} catch (Exception e) {
System.out.println("Failed to break connection");
}
}
@Duga That was a very fast build, wow
I hope that clean building doesn't take too long for you guys with FindBugs added
Depends on how long 'too long' is
> Removed auto detection of mod language, added manual input for mod language.
@SimonAndréForsberg It takes about one minute on my PC, so I would say 5 minutes qualifies as too long
> May I recommend an enum for the mod languages?
17:46
my builds usually take just a few seconds, but maybe I don't have findbugs running properly?
> I don't think that would be the best solution, as mod languages might be saved as strings on disk/database, I imagine other people to only have a string available.
@bazola I don't think you build with the mvn command
Also depends on what we are talking about... I am talking about a project-wide clean and build
I'm not sure if I have FindBugs running or not, I was pretty sure I installed it
@SimonAndréForsberg About the enum thinigie
I don't really see an usecase for it
@skiwi I just spotted some code string duplication, that's all (for now)
@SimonAndréForsberg Well yes, but apart from the tests I do not see a need to hard-code the language in code
@skiwi Doesn't the actual mods need to specify it or something?
I don't think so
I imagine a server having a list of mods stored as disk locations and language attached to it
18:01
@SimonAndréForsberg it doesn't seem like the server is sending the ClientDisconnected message
@bazola I can't imagine why it wouldn't. Any details for how to reproduce that behavior?
[2014-10-01 13:00:14,426]  INFO   ClientIO [    Conn-3] (         ClientIO.java: 31) - Send to Player24: {"command":"resetActions"}
[2014-10-01 13:00:14,429]  INFO   ClientIO [    Conn-3] (         ClientIO.java: 31) - Send to Player24: {"command":"useable","id":1,"action":"End Turn","targetRequired":false,"targetId":0}
[2014-10-01 13:00:14,444]  INFO   ClientIO [    Conn-3] (         ClientIO.java: 31) - Send to Player24: {"command":"useable","id":5,"action":"Play","targetRequired":false,"targetId":0}
I can see the client disconnecting, but no message being sent to the other client
@bazola Might it to be because you close the socket and thus not receive data anymore?
there are two clients open
when I close one, the last message on the other one is the ResetAvailableActions message
@bazola You're right, problem found.
18:07
> Sending disconnected message also if there are 'no more bytes to read'
feel free to pull those changes @bazola (git pull origin client-server)
[Cardshifter/Cardshifter] bazola pushed 1 commit to javafx
> client now gets visual update when opponent leaves
> Added EventExecution interface, moved the event executing to the EventExecutor
one question is, should I be creating issues for problems I am about to solve? or does it not matter that all of those issues make it into the Done column?
@bazola I personally don't think it's any use in creating new issues just to solve them a few minutes later
[Cardshifter/Cardshifter] build #226 for commit 418773a7 on branch javafx passed
18:14
Although I have noticed @skiwi tends to do that for some reason I can't really understand...
I was thinking the same thing, just wanted to make sure
the only logical reason to do so would be to have a record in the Done column, but there is also a record in the commit history anyway
@SimonAndréForsberg I haven't been doing it much lately
about a minute between opening the issue and closing it :)
@SimonAndréForsberg That's just fast implementation!
Well, perhaps I make exceptions to my own rules, but I do not know on which grounds
2
19:16
> parameter on registering events for identification / easier debugging
[Cardshifter/Cardshifter] build #228 for commit dc60a50a on branch ais passed
@Duga That's the message I was waiting for!
> Added logging of all possible actions to AI
> Added Scheduler and Guava to Server
[Cardshifter/Cardshifter] build #229 for commit 48fc0da2 on branch ais passed
19:35
@SimonAndréForsberg Nice!
I want to start working on a Java mod
what is the best way to create a minimalistic testing mod? (I only care for now that it starts up)
@skiwi How minimalistic is 'minimalistic' ?
@SimonAndréForsberg As bare as it can be
new ECSGame(); <--- done!
It doesn't have any players or anything in the game, but it is a game. It doesn't support player turns or anything else, but it is a game!
@SimonAndréForsberg Ok cool, I do think I'll need to make a whole Maven module for that
Ah maybe you misunderstood me
I want to produce a JAR that contains the most minimalistic game
Again I ask: How minimalistic is minimalistic?
19:39
Same constraints
:)
I'll write something up for you real quick
My idea is to create a Maven dependency to that JAR, then attempt to move it into the test resources folder, and then the big work can start to try to make it runnable
	public static ECSGame bareGame() {
		ECSGame game = new ECSGame();

		PhaseController phaseController = new PhaseController();
		game.newEntity().addComponent(phaseController);

		for (int i = 1; i <= 2; i++) {
			PlayerComponent playerComponent = new PlayerComponent(i - 1, "Player" + i);
			Entity player = game.newEntity().addComponent(playerComponent);

			Phase playerPhase = new Phase(player, "Main");
			phaseController.addPhase(playerPhase);

			ActionComponent actions = new ActionComponent();
Note that PhrancisResources.HEALTH can be replaced by any enum that implements ECSResource
@SimonAndréForsberg Was just about to ask ;)
Only you give a method that returns an ECSGame, I think mods work with a class that implements an ECSGame?
It's perfectly playable in ConsoleControllerECS, although I doubt that the JavaFX client would support it
@skiwi No, mods should not implement ECSGame.
ECSGame should not be extended. (although I have apparently not marked it as final yet)
19:46
So what is the entry method of a mod?
You just create a new ECSGame() and add stuff to it
A mod should be like a Supplier<ECSGame>
it can use an API to create the objects, of course
So the PhrancisGame has a method createGame I see
cardshifter-testmod-java, here I come!
@SimonAndréForsberg Can I tell maven to download dependencies and only that?
I cannot compile currently because it cannot resolve dependencies, I cannot add dependencies as it cannot build, because it cannot compile.
@skiwi Wait, what?
Yeah... that's the price I pay for copy pasting code (your code here in chat)
20:00
I commented out the offending code now and it worked, but it's not ideal
It's ECSResource btw, not IResource
The END_TURN_ACTION also happens to be defined in PhrancisGame @SimonAndréForsberg
@skiwi that's what I said:
17 mins ago, by Simon André Forsberg
Note that PhrancisResources.HEALTH can be replaced by any enum that implements ECSResource
@skiwi just use any string you want, it doesn't matter here
@SimonAndréForsberg Ah you ninja edited it since I last read it ;)
Okay, I think I've got this
@skiwi I edited in just a few seconds
> Added the cardsfhiter-testmod-java module which is a very basic Java mod.
> Renamed the startGame method to createGame in the Mod interface.
Figuring out how to get that JAR into the test resources now...
@SimonAndréForsberg When in one of the children of a pom, you can do this:
<outputDirectory>${project.parent.build.directory}</outputDirectory>
Do you know if it is possible to go up to the parent, and then select another child, and then go down to build.directory?
@skiwi I have no idea
Argh, I spent several hours figuring out why one thing didn't work... turns out I didn't do it when I thought I did it.
@SimonAndréForsberg The most but one annoying issue!
Only bugs inside programming languages are worse.
I think I need to make cardshifter-core a parent pom or something, such that cardshifter-testmod-java can live under it
Don't know how exactly I go about that though
Is it possible to "replace" cardshifter-core with cardshifter-core-parent and under that place cardshifter-core and cardshifter-testmod-java?
20:48
> The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='com.cardshifter:cardshifter-testmod-java:0.3-SNAPSHOT'}' and 'Vertex{label='com.cardshifter:cardshifter-core:0.3-SNAPSHOT'}' introduces to cycle in the graph com.cardshifter:cardshifter-core:0.3-SNAPSHOT --> com.cardshifter:cardshifter-testmod-java:0.3-SNAPSHOT --> com.cardshifter:cardshifter-core:0.3-SNAPSHOT -> [Help 1]
I'll check later this week onto how to mess this up more.
It might work if the mod copies the jar to the parent project, and then the core references that location
21:17
posted on October 01, 2014

Product name: Betapace Active substance: Sotalol Is used to: Generic Betapace is a beta-blocker used to improve symptoms of arrhythmia, it affects heart and blood circulation (ventricular arrhythmias). Known As: Sotalar / Solet Manufacturer: Cipla / Samarth Where to buy: Click here Payment method: Visa / MasterCard / Wiretransfer / Amex Delivery Time: 5

posted on October 01, 2014

Product name: Imitrex Active component: Sumatriptan Used to: Generic Imitrex is used for the treatment of migraine headaches with or without auraeg, flashing lights, wavy lines, dark spots). Also Known As: Suminat Manufacturer: Sun Pharma To order: Go to store Payment method: Visa / MasterCard / Western Union / MoneyGram Delivery Time: 5-7 business days

posted on October 01, 2014

Product name: Zetia Active component: Ezetimibe Thumbnail sketch: Generic Zetia is used for treating high blood cholesterol along with a low-fat, low-cholesterol diet. It may be used alone or with other medicines. It is also used to treat high blood sitosterol and campesterol along with diet therapy. Similar Titles: Ezentia Manufacturer: Sun Pharma Purchase: Visi

posted on October 01, 2014

Product name: Omnicef Active substance: Cefdinir Is used for: Generic Omnicef is a member of the family of antibiotics known as cephalosporins. It is used to treat many different types of mild to moderate infections. Known As: Cefdiel / Adcef Manufacturer: Ranbaxy / Torrent Where to buy: Visit our store Payment method: Visa / MasterCard / MoneyGram / Wiretra

21:31
Massive spam! oh the humanity!
@SimonAndréForsberg we just got hit by the spam monster again
I thought I had secured the Q&A enough already, but apparently I missed some settings
It should be secured now. If it isn't, then there's something horribly wrong with it...
@skiwi the core shouldn't have a dependency on the testmod. At all.
22:01
The core needs a built test jar in the test resources for the integration tests
Now really going to bed
@skiwi Why does the integration tests need to be in the core? Shouldn't the mod be able to test itself?
If you need a jar for it, make a jar once and put it into the test/resources folder. Don't do it through Maven.
night @skiwi
08:00 - 17:0017:00 - 23:00

« first day (60 days earlier)      last day (3801 days later) »