fix log messages showing in the wrong order by remembering order of creation of messages
fixes issue 619master
parent
b0b65de65e
commit
b3fa424278
|
@ -1,13 +1,18 @@
|
|||
package magic.model;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MagicLogMessageBuilder {
|
||||
|
||||
private final MagicGame game;
|
||||
private final StringBuilder[] messageBuilders;
|
||||
private final List<MagicPlayer> order;
|
||||
|
||||
MagicLogMessageBuilder(final MagicGame game) {
|
||||
this.game=game;
|
||||
MagicLogMessageBuilder(final MagicGame aGame) {
|
||||
game = aGame;
|
||||
messageBuilders=new StringBuilder[]{new StringBuilder(),new StringBuilder()};
|
||||
order = new ArrayList<MagicPlayer>(2);
|
||||
}
|
||||
|
||||
void appendMessage(final MagicPlayer player,final String message) {
|
||||
|
@ -16,20 +21,26 @@ public class MagicLogMessageBuilder {
|
|||
messageBuilder.append(' ');
|
||||
}
|
||||
messageBuilder.append(message);
|
||||
|
||||
if (order.contains(player) == false) {
|
||||
order.add(player);
|
||||
}
|
||||
}
|
||||
|
||||
void logMessages() {
|
||||
for (final MagicPlayer player : game.getPlayers()) {
|
||||
for (final MagicPlayer player : order) {
|
||||
final StringBuilder messageBuilder=messageBuilders[player.getIndex()];
|
||||
if (messageBuilder.length()>0) {
|
||||
game.getLogBook().add(new MagicMessage(game,player,messageBuilder.toString()));
|
||||
messageBuilder.setLength(0);
|
||||
}
|
||||
}
|
||||
order.clear();
|
||||
}
|
||||
|
||||
void clearMessages() {
|
||||
messageBuilders[0].setLength(0);
|
||||
messageBuilders[1].setLength(0);
|
||||
order.clear();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue