mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-12 20:34:36 +01:00
Prevent players from giving themselves unavailable characters/discs
This commit is contained in:
@@ -67,6 +67,11 @@ public class CharacterStorage extends PlayerManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Prevent players from getting unavliable characters
|
||||
if (!data.isAvailable()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Create character
|
||||
var character = new GameCharacter(this.getPlayer(), data);
|
||||
|
||||
@@ -131,11 +136,16 @@ public class CharacterStorage extends PlayerManager {
|
||||
}
|
||||
|
||||
private GameDisc addDisc(DiscDef data) {
|
||||
// Sanity check to make sure we dont have this character already
|
||||
// Sanity check to make sure we dont have this disc already
|
||||
if (this.hasDisc(data.getId())) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Prevent players from getting unavliable discs
|
||||
if (!data.isAvailable()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Create disc
|
||||
var disc = new GameDisc(this.getPlayer(), data);
|
||||
|
||||
|
||||
@@ -385,6 +385,8 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
||||
|
||||
if (disc != null) {
|
||||
change.add(disc.toProto());
|
||||
} else {
|
||||
amount = 0;
|
||||
}
|
||||
}
|
||||
case Char -> {
|
||||
@@ -396,6 +398,8 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
||||
|
||||
if (character != null) {
|
||||
change.add(character.toProto());
|
||||
} else {
|
||||
amount = 0;
|
||||
}
|
||||
}
|
||||
case Energy -> {
|
||||
@@ -466,7 +470,7 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
||||
// Trigger quest + achievement
|
||||
if (amount > 0) {
|
||||
this.getPlayer().trigger(QuestCondition.ItemsAdd, amount, id);
|
||||
} else {
|
||||
} else if (amount < 0) {
|
||||
this.getPlayer().trigger(QuestCondition.ItemsDeplete, Math.abs(amount), id);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user