diff --git a/bin/weekly_medals.pl b/bin/weekly_medals.pl index e4f5265c..e367675b 100644 --- a/bin/weekly_medals.pl +++ b/bin/weekly_medals.pl @@ -146,7 +146,9 @@ sub spies { sub add_medal { my ($empire_id, $medal_name) = @_; + printf "%s -> %s\n", $empire_id, $medal_name; my $empire = $db->resultset('Lacuna::DB::Result::Empire')->find($empire_id); + return 0 unless $empire; my $medal = $empire->add_medal($medal_name, 1); $winners->new({ empire_id => $empire->id, diff --git a/lib/Lacuna.pm b/lib/Lacuna.pm index d1aa5705..167270f8 100644 --- a/lib/Lacuna.pm +++ b/lib/Lacuna.pm @@ -7,7 +7,7 @@ use Config::JSON; useall __PACKAGE__; -our $VERSION = 3.0891; +our $VERSION = 3.0892; my $config = Config::JSON->new('/data/Lacuna-Server/etc/lacuna.conf'); my $db = Lacuna::DB->connect($config->get('db/dsn'),$config->get('db/username'),$config->get('db/password'), { mysql_enable_utf8 => 1}); diff --git a/lib/Lacuna/DB/Result/Building.pm b/lib/Lacuna/DB/Result/Building.pm index 148bdbb6..a88b5d44 100755 --- a/lib/Lacuna/DB/Result/Building.pm +++ b/lib/Lacuna/DB/Result/Building.pm @@ -1013,14 +1013,16 @@ sub reschedule_work { $self->work_ends($new_work_ends); $self->update; - my ($schedule) = Lacuna->db->resultset('Schedule')->search({ + my $schedules = Lacuna->db->resultset('Schedule')->search({ parent_table => 'Building', parent_id => $self->id, task => 'finish_work', }); - $schedule->delete if defined $schedule; + while (my $schedule = $schedules->next) { + $schedule->delete if defined $schedule; + } - Lacuna->db->resultset('Schedule')->create({ + my $new_sched = Lacuna->db->resultset('Lacuna::DB::Result::Schedule')->create({ delivery => $new_work_ends, parent_table => 'Building', parent_id => $self->id, diff --git a/lib/Lacuna/DB/Result/Spies.pm b/lib/Lacuna/DB/Result/Spies.pm index 791ac86a..3937c59a 100644 --- a/lib/Lacuna/DB/Result/Spies.pm +++ b/lib/Lacuna/DB/Result/Spies.pm @@ -1652,7 +1652,7 @@ sub steal_planet { ->search_any({body_id => $self->on_body_id}) ->update({empire_id => $self->empire_id, alliance_id => $self->empire->alliance_id}); - if ($self->on_body->empire_id < 1) { + if ($self->on_body->empire_id < 1 and $self->on_body->empire_id != -5) { $self->on_body->unhappy_date(DateTime->now); } $self->on_body->empire_id($self->empire_id); diff --git a/var/www/public/changes.txt b/var/www/public/changes.txt index f9bea260..91c0aa4f 100644 --- a/var/www/public/changes.txt +++ b/var/www/public/changes.txt @@ -1,3 +1,6 @@ +3.0892: + - Fix: Fix schedule to remove past jobs when rescheduling. + 3.0891: - Mod: Clarified max building level for university in return message. - Mod: Gas Giants produce more energy, and consume less energy.