Compare commits
2 Commits
main
...
dev/reques
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94484593f1 | ||
|
|
de04c6b80a |
|
|
@ -13,6 +13,7 @@ import com.alttd.chat.nicknames.Nicknames;
|
|||
import com.alttd.chat.nicknames.NicknamesEvents;
|
||||
import com.alttd.chat.objects.channels.Channel;
|
||||
import com.alttd.chat.objects.channels.CustomChannel;
|
||||
import com.alttd.chat.requests.RequestHandler;
|
||||
import com.alttd.chat.util.ALogger;
|
||||
import com.alttd.chat.util.Utility;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -29,6 +30,7 @@ public class ChatPlugin extends JavaPlugin {
|
|||
|
||||
private ChatAPI chatAPI;
|
||||
private ChatHandler chatHandler;
|
||||
private RequestHandler requestHandler;
|
||||
|
||||
private String messageChannel;
|
||||
private ServerConfig serverConfig;
|
||||
|
|
@ -40,6 +42,8 @@ public class ChatPlugin extends JavaPlugin {
|
|||
chatAPI = new ChatImplementation();
|
||||
chatHandler = new ChatHandler();
|
||||
DatabaseConnection.initialize();
|
||||
requestHandler = new RequestHandler();
|
||||
requestHandler.loadRequests();
|
||||
serverConfig = new ServerConfig(Bukkit.getServerName());
|
||||
registerListener(new PlayerListener(serverConfig), new ChatListener(), new BookListener());
|
||||
if(serverConfig.GLOBALCHAT) {
|
||||
|
|
@ -105,6 +109,10 @@ public class ChatPlugin extends JavaPlugin {
|
|||
return chatHandler;
|
||||
}
|
||||
|
||||
public RequestHandler getRequestHandler() {
|
||||
return requestHandler;
|
||||
}
|
||||
|
||||
public boolean serverGlobalChatEnabled() {
|
||||
return serverConfig.GLOBALCHAT;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
package com.alttd.chat.requests;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class NickNameRequest extends Request {
|
||||
|
||||
public NickNameRequest(UUID requester, String request) {
|
||||
super(requester, request);
|
||||
|
||||
this.requestType = RequestType.NICKNAME;
|
||||
}
|
||||
|
||||
public NickNameRequest(UUID requester, String request, boolean completed, UUID completedBy, long dateRequested, long dateCompleted) {
|
||||
super(requester, request, completed, completedBy, dateRequested, dateCompleted);
|
||||
|
||||
this.requestType = RequestType.NICKNAME;
|
||||
}
|
||||
@Override
|
||||
public boolean processRequest(UUID processor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.alttd.chat.requests;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PrefixRequest extends Request{
|
||||
|
||||
public PrefixRequest(UUID requester, String request) {
|
||||
super(requester, request);
|
||||
|
||||
this.requestType = RequestType.PREFIX;
|
||||
}
|
||||
|
||||
public PrefixRequest(UUID requester, String request, boolean completed, UUID completedBy, long dateRequested, long dateCompleted) {
|
||||
super(requester, request, completed, completedBy, dateRequested, dateCompleted);
|
||||
|
||||
this.requestType = RequestType.NICKNAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean processRequest(UUID processor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
69
galaxy/src/main/java/com/alttd/chat/requests/Request.java
Normal file
69
galaxy/src/main/java/com/alttd/chat/requests/Request.java
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
package com.alttd.chat.requests;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public abstract class Request {
|
||||
|
||||
protected UUID requester;
|
||||
protected RequestType requestType;
|
||||
protected String serverName;
|
||||
protected String request;
|
||||
protected boolean completed;
|
||||
protected UUID completedBy;
|
||||
protected long dateRequested;
|
||||
protected long dateCompleted;
|
||||
|
||||
Request(UUID requester, String request) {
|
||||
this.requester = requester;
|
||||
this.request = request;
|
||||
this.serverName = Bukkit.getServerName();
|
||||
this.dateRequested = new Date().getTime();
|
||||
saveRequest();
|
||||
}
|
||||
|
||||
Request(UUID requester, String request, boolean completed, UUID completedBy, long dateRequested, long dateCompleted) {
|
||||
this.requester = requester;
|
||||
this.request = request;
|
||||
this.completed = completed;
|
||||
this.completedBy = completedBy;
|
||||
this.dateRequested = dateRequested;
|
||||
this.dateCompleted = dateCompleted;
|
||||
}
|
||||
|
||||
public static Request of(UUID requester, RequestType requestType, String request) {
|
||||
return switch (requestType) {
|
||||
case PREFIX -> new PrefixRequest(requester, request);
|
||||
case NICKNAME -> new NickNameRequest(requester, request);
|
||||
};
|
||||
}
|
||||
|
||||
public static Request load(UUID requester, RequestType requestType, String request, boolean completed, UUID completedBy, long dateRequested, long dateCompleted) {
|
||||
return switch (requestType) {
|
||||
case PREFIX -> new PrefixRequest(requester, request, completed, completedBy, dateRequested, dateCompleted);
|
||||
case NICKNAME -> new NickNameRequest(requester, request, completed, completedBy, dateRequested, dateCompleted);
|
||||
};
|
||||
}
|
||||
|
||||
public boolean processRequest(UUID completedBy) {
|
||||
completeRequest(completedBy);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isCompleted() {
|
||||
return completed;
|
||||
}
|
||||
|
||||
void completeRequest(UUID completedBy) {
|
||||
this.completed = true;
|
||||
this.completedBy = completedBy;
|
||||
this.dateCompleted = new Date().getTime();
|
||||
saveRequest();
|
||||
}
|
||||
|
||||
public void saveRequest() {
|
||||
// upsert into database
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package com.alttd.chat.requests;
|
||||
|
||||
import com.alttd.chat.config.Config;
|
||||
import com.alttd.chat.database.DatabaseConnection;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class RequestHandler {
|
||||
|
||||
private final List<Request> requests;
|
||||
|
||||
public RequestHandler() {
|
||||
requests = new ArrayList<>();
|
||||
}
|
||||
|
||||
public boolean addRequest(Request request) {
|
||||
return requests.add(request);
|
||||
}
|
||||
|
||||
public boolean removeRequest(Request request) {
|
||||
return requests.remove(request);
|
||||
}
|
||||
|
||||
public List<Request> getRequests() {
|
||||
return requests;
|
||||
}
|
||||
|
||||
public void loadRequests() {
|
||||
long time = new Date().getTime() - Config.NICK_WAIT_TIME;
|
||||
// Load all requests that have not been completed yet
|
||||
String query = "SELECT * FROM requests WHERE completed=false and (datechanged = 0 or datechanged > " + time + ")";
|
||||
|
||||
try {
|
||||
Connection connection = DatabaseConnection.getConnection();
|
||||
ResultSet resultSet = connection.prepareStatement(query).executeQuery();
|
||||
|
||||
while (resultSet.next()) {
|
||||
UUID requester = UUID.fromString(resultSet.getString("requester"));
|
||||
RequestType requestType = RequestType.valueOf(resultSet.getString("requesttype"));
|
||||
String requestString = resultSet.getString("request");
|
||||
boolean completed = resultSet.getBoolean("completed");
|
||||
UUID completedby = UUID.fromString(resultSet.getString("completedby"));
|
||||
long dateRequested = resultSet.getLong("daterequested");
|
||||
long dateCompleted = resultSet.getLong("datecompleted");
|
||||
|
||||
Request request = Request.load(requester, requestType, requestString, completed, completedby, dateRequested, dateCompleted);
|
||||
addRequest(request);
|
||||
}
|
||||
|
||||
} catch (SQLException exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.alttd.chat.requests;
|
||||
|
||||
public enum RequestType {
|
||||
|
||||
NICKNAME,
|
||||
PREFIX
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.alttd.chat.requests;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class RequestsGui implements InventoryHolder {
|
||||
|
||||
private final Inventory inventory;
|
||||
private final int inventorySize = 54;
|
||||
|
||||
RequestsGui() {
|
||||
inventory = Bukkit.createInventory(this, inventorySize, "A title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Inventory getInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user