Merge remote-tracking branch 'origin/master'

This commit is contained in:
Ka0rX 2022-11-10 16:15:54 +01:00
commit c03400228f
6 changed files with 95 additions and 143 deletions

6
.gitignore vendored
View File

@ -1,10 +1,12 @@
bin/
.m2/
target/
.settings/
.idea/
.classpath
.project
dependency-reduced-pom.xml
.flattened-pom.xml
MMOCore.eml
MMOCore.iml
dependency-reduced-pom.xml
/MMOCore-API/MMOCore-API.iml
/MMOCore-Dist/MMOCore-Dist.iml

View File

@ -1,11 +0,0 @@
image: maven:3-openjdk-16-slim
build:
stage: build
script:
- mvn clean package
deploy:
stage: deploy
script:
- mvn deploy

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
<platformType>MCP</platformType>
<platformType>BUKKIT</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -6,118 +6,112 @@ import java.util.Objects;
import java.util.UUID;
public class Booster {
private final UUID uuid = UUID.randomUUID();
private final long date = System.currentTimeMillis();
private final Profession profession;
private final double extra;
private final String author;
private final UUID uuid = UUID.randomUUID();
private final long date = System.currentTimeMillis();
private final Profession profession;
private final double extra;
private final String author;
/**
* Length is not final because boosters can stacks. This allows to reduce
* the amount of boosters displayed in the main player menu
*
* See {@link BoosterManager#register(Booster)}
*/
private long length;
/**
* Length is not final because boosters can stacks. This allows to reduce
* the amount of boosters displayed in the main player menu
* <p>
* See {@link BoosterManager#register(Booster)}
*/
private long length;
/**
* @param extra
* 1 for +100% experience, 3 for 300% etc.
* @param length
* Booster length in milliseconds
*/
public Booster(double extra, long length) {
this(null, null, extra, length);
}
/**
* @param extra 1 for +100% experience, 3 for 300% etc.
* @param length Booster length in seconds
*/
public Booster(double extra, long length) {
this(null, null, extra, length);
}
/**
* Main class experience booster
*
* @param author The booster creator
* @param extra 1 for +100% experience, 3 for 300% etc.
* @param length Booster length in milliseconds
*/
public Booster(String author, double extra, long length) {
this(author, null, extra, length);
}
/**
* Main class experience booster
*
* @param author The booster creator
* @param extra 1 for +100% experience, 3 for 300% etc.
* @param length Booster length in seconds
*/
public Booster(String author, double extra, long length) {
this(author, null, extra, length);
}
/**
* Profession experience booster
*
* @param author
* The booster creator
* @param profession
* Either null for main level boosters or a specific profession
* @param extra
* 1 for +100% experience, 3 for 300% etc.
* @param length
* Booster length in milliseconds
*/
public Booster(String author, Profession profession, double extra, long length) {
this.author = author;
this.length = length * 1000;
this.profession = profession;
this.extra = extra;
}
/**
* Profession experience booster
*
* @param author The booster creator
* @param profession Either null for main level boosters or a specific profession
* @param extra 1 for +100% experience, 3 for 300% etc.
* @param length Booster length in seconds
*/
public Booster(String author, Profession profession, double extra, long length) {
this.author = author;
this.length = length * 1000;
this.profession = profession;
this.extra = extra;
}
public UUID getUniqueId() {
return uuid;
}
public UUID getUniqueId() {
return uuid;
}
public double getExtra() {
return extra;
}
public double getExtra() {
return extra;
}
public boolean hasAuthor() {
return author != null;
}
public boolean hasAuthor() {
return author != null;
}
public String getAuthor() {
return author;
}
public String getAuthor() {
return author;
}
public long getCreationDate() {
return date;
}
public long getCreationDate() {
return date;
}
public boolean hasProfession() {
return profession != null;
}
public boolean hasProfession() {
return profession != null;
}
public Profession getProfession() {
return profession;
}
public Profession getProfession() {
return profession;
}
public boolean isTimedOut() {
return date + length < System.currentTimeMillis();
}
public boolean isTimedOut() {
return date + length < System.currentTimeMillis();
}
public long getLeft() {
return Math.max(0, date + length - System.currentTimeMillis());
}
public long getLeft() {
return Math.max(0, date + length - System.currentTimeMillis());
}
public long getLength() {
return length;
}
public long getLength() {
return length;
}
public void addLength(long length) {
this.length += length;
}
public void addLength(long length) {
this.length += length;
}
public boolean canStackWith(Booster booster) {
return extra == booster.extra && Objects.equals(profession, booster.profession);
}
public boolean canStackWith(Booster booster) {
return extra == booster.extra && Objects.equals(profession, booster.profession);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Booster booster = (Booster) o;
return Objects.equals(uuid, booster.uuid);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Booster booster = (Booster) o;
return Objects.equals(uuid, booster.uuid);
}
@Override
public int hashCode() {
return Objects.hash(uuid);
}
@Override
public int hashCode() {
return Objects.hash(uuid);
}
}

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -153,7 +153,7 @@ party:
# Exp won't be split if players are too far apart.
#
# Set to 0 to disable
max-exp-split-range: 50
max-exp-split-range: 48
# When enabled, being in a party also splits profession exp
profession-exp-split: false