mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-12 12:24:35 +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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Prevent players from getting unavliable characters
|
||||||
|
if (!data.isAvailable()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// Create character
|
// Create character
|
||||||
var character = new GameCharacter(this.getPlayer(), data);
|
var character = new GameCharacter(this.getPlayer(), data);
|
||||||
|
|
||||||
@@ -131,11 +136,16 @@ public class CharacterStorage extends PlayerManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private GameDisc addDisc(DiscDef data) {
|
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())) {
|
if (this.hasDisc(data.getId())) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Prevent players from getting unavliable discs
|
||||||
|
if (!data.isAvailable()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// Create disc
|
// Create disc
|
||||||
var disc = new GameDisc(this.getPlayer(), data);
|
var disc = new GameDisc(this.getPlayer(), data);
|
||||||
|
|
||||||
|
|||||||
@@ -385,6 +385,8 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
|||||||
|
|
||||||
if (disc != null) {
|
if (disc != null) {
|
||||||
change.add(disc.toProto());
|
change.add(disc.toProto());
|
||||||
|
} else {
|
||||||
|
amount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case Char -> {
|
case Char -> {
|
||||||
@@ -396,6 +398,8 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
|||||||
|
|
||||||
if (character != null) {
|
if (character != null) {
|
||||||
change.add(character.toProto());
|
change.add(character.toProto());
|
||||||
|
} else {
|
||||||
|
amount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case Energy -> {
|
case Energy -> {
|
||||||
@@ -466,7 +470,7 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
|
|||||||
// Trigger quest + achievement
|
// Trigger quest + achievement
|
||||||
if (amount > 0) {
|
if (amount > 0) {
|
||||||
this.getPlayer().trigger(QuestCondition.ItemsAdd, amount, id);
|
this.getPlayer().trigger(QuestCondition.ItemsAdd, amount, id);
|
||||||
} else {
|
} else if (amount < 0) {
|
||||||
this.getPlayer().trigger(QuestCondition.ItemsDeplete, Math.abs(amount), id);
|
this.getPlayer().trigger(QuestCondition.ItemsDeplete, Math.abs(amount), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user