Skip to content

Commit 226553a

Browse files
Sessions will now be created for players when they log in.
1 parent 0b43780 commit 226553a

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

src/main/java/dansplugins/activitytracker/eventhandlers/JoinHandler.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package dansplugins.activitytracker.eventhandlers;
22

3+
import dansplugins.activitytracker.data.PersistentData;
4+
import dansplugins.activitytracker.factories.SessionFactory;
35
import dansplugins.activitytracker.managers.ActivityRecordManager;
6+
import dansplugins.activitytracker.objects.ActivityRecord;
7+
import dansplugins.activitytracker.objects.Session;
48
import org.bukkit.entity.Player;
59
import org.bukkit.event.EventHandler;
610
import org.bukkit.event.Listener;
@@ -11,7 +15,13 @@ public class JoinHandler implements Listener {
1115
@EventHandler()
1216
public void handle(PlayerJoinEvent event) {
1317
Player player = event.getPlayer();
14-
ActivityRecordManager.getInstance().assignActivityRecordToPlayerIfNecessary(player);
18+
boolean assignmentNeeded = ActivityRecordManager.getInstance().assignActivityRecordToPlayerIfNecessary(player);
19+
if (!assignmentNeeded) {
20+
ActivityRecord record = PersistentData.getInstance().getActivityRecord(player);
21+
Session newSession = SessionFactory.getInstance().createSession(player);
22+
record.getSessions().add(newSession); // TODO: replace with better method
23+
record.setMostRecentSession(newSession);
24+
}
1525
}
1626

1727
}

src/main/java/dansplugins/activitytracker/managers/ActivityRecordManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,17 @@ public static ActivityRecordManager getInstance() {
2121
}
2222

2323

24-
public void assignActivityRecordToPlayerIfNecessary(Player player) {
24+
public boolean assignActivityRecordToPlayerIfNecessary(Player player) {
2525
if (PersistentData.getInstance().getActivityRecord(player) != null) {
2626
// player has an activity record
27-
return;
27+
return false;
2828
}
2929

3030
// player doesn't have an activity record
3131

3232
ActivityRecord newRecord = ActivityRecordFactory.getInstance().createActivityRecord(player);
3333
PersistentData.getInstance().addRecord(newRecord);
3434
player.sendMessage(ChatColor.AQUA + "You've been assigned an activity record.");
35+
return true;
3536
}
3637
}

src/main/java/dansplugins/activitytracker/objects/ActivityRecord.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,18 @@ public ISession getMostRecentSession() {
3838
return mostRecentSession;
3939
}
4040

41+
@Override
42+
public void setMostRecentSession(Session newSession) {
43+
mostRecentSession = newSession;
44+
}
45+
4146
@Override
4247
public int getHoursSpent() {
4348
return hoursSpent;
4449
}
50+
51+
@Override
52+
public void setHoursSpent(int number) {
53+
hoursSpent = number;
54+
}
4555
}

src/main/java/dansplugins/activitytracker/objects/IActivityRecord.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ public interface IActivityRecord {
77
UUID getPlayerUUID();
88
ArrayList<ISession> getSessions();
99
ISession getMostRecentSession();
10+
void setMostRecentSession(Session newSession);
1011
int getHoursSpent();
12+
void setHoursSpent(int number);
1113
}

0 commit comments

Comments
 (0)