Skip to content
This repository was archived by the owner on Aug 26, 2024. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,9 @@ repositories {
}

dependencies {
compile 'org.hibernate:hibernate-core:5.4.21.Final'
compile 'org.hibernate:hibernate-c3p0:5.4.21.Final'
compile group: 'javax.persistence', name: 'javax.persistence-api', version: '2.2'
compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'
compile 'com.zaxxer:HikariCP:3.4.5'
compile 'redis.clients:jedis:3.2.0'
compile "com.influxdb:influxdb-client-java:1.13.0"
runtime 'mysql:mysql-connector-java:5.1.37'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'net.kyori:adventure-api:4.1.1'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package dev.imabad.mceventsuite.core.api.objects;

import javax.persistence.*;
import java.util.List;
import java.util.UUID;

@Entity
@Table(name = "booths")
public class EventBooth {

private String id;
Expand All @@ -16,8 +13,6 @@ public class EventBooth {
private String plotID;
private String status = "un-assigned";

protected EventBooth(){}

public EventBooth(String name, String boothType, EventPlayer owner, List<EventPlayer> members){
this.id = UUID.randomUUID().toString();
this.name = name;
Expand All @@ -26,11 +21,17 @@ public EventBooth(String name, String boothType, EventPlayer owner, List<EventPl
this.members = members;
}

public EventBooth(String id, String name, String boothType, EventPlayer owner, List<EventPlayer> members, String plotID, String status){
this(name, boothType, owner, members);
this.id = id;
this.plotID = plotID;
this.status = status;
}

public void setId(String id) {
this.id = id;
}

@Id
public String getId() {
return id;
}
Expand All @@ -51,7 +52,6 @@ public void setBoothType(String boothType) {
this.boothType = boothType;
}

@OneToOne(fetch = FetchType.EAGER)
public EventPlayer getOwner() {
return owner;
}
Expand All @@ -60,7 +60,6 @@ public void setOwner(EventPlayer owner) {
this.owner = owner;
}

@ManyToMany(fetch = FetchType.EAGER)
public List<EventPlayer> getMembers() {
return members;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package dev.imabad.mceventsuite.core.api.objects;

import javax.persistence.*;
import java.util.UUID;

@Entity
@Table(name = "booth_plots")
//TODO: Move into a separate module
public class EventBoothPlot {

private String id;
Expand All @@ -15,8 +13,6 @@ public class EventBoothPlot {
private String status = "empty";
private EventBooth booth;

protected EventBoothPlot(){}

public EventBoothPlot(String boothType, String posOne, String posTwo){
this.id = UUID.randomUUID().toString();
this.boothType = boothType;
Expand All @@ -28,7 +24,6 @@ public void setId(String id) {
this.id = id;
}

@Id
public String getId() {
return id;
}
Expand All @@ -41,7 +36,6 @@ public void setBoothType(String boothType) {
this.boothType = boothType;
}

@OneToOne(fetch = FetchType.EAGER)
public EventBooth getBooth() {
return booth;
}
Expand Down Expand Up @@ -82,6 +76,7 @@ public void setFrontPos(String frontPos) {
this.frontPos = frontPos;
}

//TODO: Come back and rewrite this to not be hard-coded
public int plotSize(){
switch(boothType){
case "small":
Expand Down
Original file line number Diff line number Diff line change
@@ -1,43 +1,29 @@
package dev.imabad.mceventsuite.core.api.objects;

import dev.imabad.mceventsuite.core.EventCore;
import dev.imabad.mceventsuite.core.api.actions.Action;
import dev.imabad.mceventsuite.core.modules.eventpass.db.EventPassPlayer;
import dev.imabad.mceventsuite.core.modules.mysql.MySQLModule;
import dev.imabad.mceventsuite.core.modules.mysql.PropertyMapConverter;
import dev.imabad.mceventsuite.core.modules.mysql.dao.RankDAO;
import dev.imabad.mceventsuite.core.util.PropertyMap;
import java.io.Serializable;
import jdk.nashorn.internal.runtime.Property;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;

@Entity
@Table(name = "players")
@DynamicUpdate
public class EventPlayer implements Serializable {
public class EventPlayer {

private static PropertyMap defaultProperties = new PropertyMap();

public static void addDefault(String name, Object defaultValue){
defaultProperties.put(name, defaultValue);
}

@org.hibernate.annotations.Type(type="uuid-char")
private UUID uuid;
private String lastUsername;
private EventRank rank;
private List<String> permissions;
private PropertyMap properties = defaultProperties;

protected EventPlayer(){}

protected EventPlayer(UUID uuid, String lastUsername, EventRank rank, List<String> permissions, PropertyMap properties) {
public EventPlayer(UUID uuid, String lastUsername, EventRank rank, List<String> permissions, PropertyMap properties) {
this.uuid = uuid;
this.lastUsername = lastUsername;
this.rank = rank;
Expand All @@ -48,13 +34,10 @@ protected EventPlayer(UUID uuid, String lastUsername, EventRank rank, List<Strin
public EventPlayer(UUID uuid, String username){
this.uuid = uuid;
this.lastUsername = username;
this.rank = EventCore.getInstance().getModuleRegistry().getModule(MySQLModule.class).getMySQLDatabase().getDAO(RankDAO.class).getLowestRank().get();
this.rank = EventCore.getInstance().getModuleRegistry().getModule(MySQLModule.class).getDAO(RankDAO.class).getLowestRank().get();
this.properties = defaultProperties;
}

@Id
@Column(name="uuid", unique = true, nullable = false)
@org.hibernate.annotations.Type(type="uuid-char")
public UUID getUUID() {
return uuid;
}
Expand All @@ -63,7 +46,6 @@ public void setUUID(UUID uuid) {
this.uuid = uuid;
}

@Column(name = "last_username")
public String getLastUsername() {
return lastUsername;
}
Expand All @@ -72,8 +54,6 @@ public void setLastUsername(String lastUsername) {
this.lastUsername = lastUsername;
}

@OneToOne
@JoinColumn(name="rank_id", referencedColumnName = "id")
public EventRank getRank() {
return rank;
}
Expand All @@ -82,7 +62,6 @@ public void setRank(EventRank rank) {
this.rank = rank;
}

@ElementCollection
public List<String> getPermissions() {
return permissions;
}
Expand Down Expand Up @@ -111,7 +90,7 @@ public boolean hasPermission(String permission){
hasPerm = playerHasPermission(permission);
}
if(!hasPerm && rank.isInheritsFromBelow()){
for(EventRank eventRank : EventCore.getInstance().getModuleRegistry().getModule(MySQLModule.class).getMySQLDatabase().getDAO(RankDAO.class).getRanks()){
for(EventRank eventRank : EventCore.getInstance().getModuleRegistry().getModule(MySQLModule.class).getDAO(RankDAO.class).getRanks().values()){
if(eventRank.getPower() <= rank.getPower() && eventRank.hasPermission(permission)){
return true;
}
Expand Down Expand Up @@ -139,12 +118,11 @@ public boolean playerHasPermission(String permission){
return containsPermission(permission);
}

//TODO: Modify this to allow for negated permissions
private boolean containsPermission(String permission){
return this.permissions != null && (this.permissions.contains(permission) || (!this.permissions.contains('-' + permission) && this.permissions.contains('+' + permission)));
}

@Column(name="properties")
@Convert(converter = PropertyMapConverter.class)
public PropertyMap getProperties() {
return properties;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package dev.imabad.mceventsuite.core.api.objects;


import javax.persistence.*;
import java.util.List;

@Entity
@Table(name = "ranks")
//TODO: Remove XP from here.
public class EventRank {

private int id;
Expand All @@ -18,7 +15,6 @@ public class EventRank {
private boolean inheritsFromBelow = true;
private int initialEventPassXP = 0;


public EventRank(int power, String name, String prefix, String suffix, List<String> permissions, boolean inheritsFromBelow) {
this.power = power;
this.name = name;
Expand All @@ -34,66 +30,53 @@ public EventRank(int power, String name, String prefix, String suffix, List<Stri
this(power, name, prefix, suffix, permissions, true);
}

public EventRank(int id, int power, String name, String prefix, String suffix, List<String> permissions, boolean inheritsFromBelow){
public EventRank(int id, int power, String name, String prefix, String suffix, List<String> permissions, boolean inheritsFromBelow, String chatColor){
this(power, name, prefix, suffix, permissions, inheritsFromBelow);
this.id = id;
this.chatColor = chatColor;
}

public EventRank() {
}

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true)
public int getId() {
return id;
}

@Column(name = "power")
public int getPower() {
return power;
}

@Column(name = "name")
public String getName() {
return name;
}

@Column(name = "prefix")
public String getPrefix() {
if(prefix == null){
return "";
}
return prefix;
}

@Column(name = "suffix")
public String getSuffix() {
if(suffix == null){
return "";
}
return suffix;
}

@ElementCollection(fetch = FetchType.EAGER)
public List<String> getPermissions() {
return permissions;
}

@Column(name = "inheritsFromBelow")
public boolean isInheritsFromBelow() {
return inheritsFromBelow;
}

@Column(name = "chatColor")
public String getChatColor() {
if(chatColor == null){
return "#fff";
}
return chatColor;
}

@Column(name = "initialXP")
public int getInitialEventPassXP() {
return initialEventPassXP;
}
Expand Down Expand Up @@ -134,6 +117,7 @@ public void setInitialEventPassXP(int initialEventPassXP) {
this.initialEventPassXP = initialEventPassXP;
}

//TODO: Modify this to allow for negated permissions
private boolean containsPermission(String permission){
return this.permissions.contains(permission) || (!this.permissions.contains('-' + permission) && this.permissions.contains('+' + permission));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
package dev.imabad.mceventsuite.core.api.objects;


import com.google.gson.Gson;
import dev.imabad.mceventsuite.core.util.GsonUtils;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "event_settings")
public class EventSetting {

private String name;
Expand All @@ -25,10 +16,13 @@ public EventSetting(String name, Object defaultValue, String group, String permi
this.permission = permission;
}

public EventSetting() {
public EventSetting(String group, String name, String value, String permission){
this.group = group;
this.name = name;
this.value = value;
this.permission = permission;
}

@Column(name = "group")
public String getGroup() {
return group;
}
Expand All @@ -37,8 +31,6 @@ public void setGroup(String group) {
this.group = group;
}

@Id
@Column(name = "name")
public String getName() {
return name;
}
Expand All @@ -47,8 +39,7 @@ public void setName(String name) {
this.name = name;
}

@Column(name = "value")
private String getValue() {
public String getValueJSON() {
return value;
}

Expand All @@ -60,7 +51,6 @@ public void setValue(Object value) {
this.value = GsonUtils.getGson().toJson(value);
}

@Column(name = "permission")
public String getPermission() {
return permission;
}
Expand Down
Loading