mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-14 13:24:43 +01:00
Implement welcome mail
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package emu.nebula;
|
package emu.nebula;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import emu.nebula.game.inventory.ItemParam;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -99,6 +101,7 @@ public class Config {
|
|||||||
public boolean skipIntro = false;
|
public boolean skipIntro = false;
|
||||||
public boolean unlockInstances = true;
|
public boolean unlockInstances = true;
|
||||||
public int dailyResetHour = 0;
|
public int dailyResetHour = 0;
|
||||||
|
public WelcomeMail welcomeMail = new WelcomeMail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -112,4 +115,24 @@ public class Config {
|
|||||||
public boolean packets = false;
|
public boolean packets = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public static class WelcomeMail {
|
||||||
|
public String title;
|
||||||
|
public String sender;
|
||||||
|
public String content;
|
||||||
|
public List<ItemParam> attachments;
|
||||||
|
|
||||||
|
public WelcomeMail() {
|
||||||
|
this.title = "Welcome to a Nebula server";
|
||||||
|
this.sender = "Server";
|
||||||
|
this.content = "Welcome to Nebula! Please take these items as a starter gift.";
|
||||||
|
this.attachments = List.of(
|
||||||
|
new ItemParam(86009, 1),
|
||||||
|
new ItemParam(86003, 1),
|
||||||
|
new ItemParam(1, 1_000_000),
|
||||||
|
new ItemParam(2, 30_000)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
import dev.morphia.annotations.Entity;
|
import dev.morphia.annotations.Entity;
|
||||||
import dev.morphia.annotations.Id;
|
import dev.morphia.annotations.Id;
|
||||||
|
|
||||||
import emu.nebula.Nebula;
|
import emu.nebula.Nebula;
|
||||||
import emu.nebula.database.GameDatabaseObject;
|
import emu.nebula.database.GameDatabaseObject;
|
||||||
import emu.nebula.game.player.Player;
|
import emu.nebula.game.player.Player;
|
||||||
@@ -70,8 +69,10 @@ public class Mailbox extends PlayerManager implements GameDatabaseObject, Iterab
|
|||||||
// Add to mail list
|
// Add to mail list
|
||||||
this.list.add(mail);
|
this.list.add(mail);
|
||||||
|
|
||||||
// Set state
|
// Set new state only if player has a session connected
|
||||||
this.newState = true;
|
if (this.getPlayer().hasSession()) {
|
||||||
|
this.newState = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Save to database
|
// Save to database
|
||||||
Nebula.getGameDatabase().update(this, getUid(), "lastMailId", this.getLastMailId());
|
Nebula.getGameDatabase().update(this, getUid(), "lastMailId", this.getLastMailId());
|
||||||
@@ -210,6 +211,19 @@ public class Mailbox extends PlayerManager implements GameDatabaseObject, Iterab
|
|||||||
// Success
|
// Success
|
||||||
return removed;
|
return removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendWelcomeMail() {
|
||||||
|
var welcomeMail = Nebula.getConfig().getServerOptions().welcomeMail;
|
||||||
|
if (welcomeMail == null) return;
|
||||||
|
|
||||||
|
var mail = new GameMail(welcomeMail.getTitle(), welcomeMail.getSender(), welcomeMail.getContent());
|
||||||
|
|
||||||
|
for (var param : welcomeMail.getAttachments()) {
|
||||||
|
mail.addAttachment(param.getId(), param.getCount());
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sendMail(mail);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Iterator<GameMail> iterator() {
|
public Iterator<GameMail> iterator() {
|
||||||
|
|||||||
@@ -95,7 +95,10 @@ public class PlayerModule extends GameContextModule {
|
|||||||
player.onLoad();
|
player.onLoad();
|
||||||
player.save();
|
player.save();
|
||||||
|
|
||||||
// Put in cache
|
// Send welcome mail
|
||||||
|
player.getMailbox().sendWelcomeMail();
|
||||||
|
|
||||||
|
// Put in player cache
|
||||||
this.addToCache(player);
|
this.addToCache(player);
|
||||||
|
|
||||||
// Set player for session
|
// Set player for session
|
||||||
|
|||||||
Reference in New Issue
Block a user