sql update

This commit is contained in:
RonanCraft 2022-04-18 18:00:40 -04:00
parent 133b27ed06
commit 1ddd053cbd
9 changed files with 173 additions and 17 deletions

53
RTPEachWorld/pom.xml Normal file
View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP-EachWorld</artifactId>
<packaging>jar</packaging>
<version>3.4.2-1</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<!-- Local Server Building -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<outputDirectory>../../Java/plugins</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<version>3.4.2-1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,86 @@
package me.superronancraft.rtpeachworld;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.database.Errors;
import me.SuperRonanCraft.BetterRTP.references.database.SQLite;
import org.bukkit.Bukkit;
import org.bukkit.World;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
public class DatabasePlayers extends SQLite {
public DatabasePlayers() {
super(DATABASE_TYPE.PLAYERS);
}
@Override
public List<String> getTables() {
List<String> list = new ArrayList<>();
for (World world : Bukkit.getWorlds())
list.add(world.getName());
return list;
}
public enum COLUMNS {
UUID("uuid", "varchar(32) PRIMARY KEY"),
//COOLDOWN DATA
JOINED("joined", "boolean"),
;
public final String name;
public final String type;
COLUMNS(String name, String type) {
this.name = name;
this.type = type;
}
}
/*public void setupData(PlayerData data) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getSQLConnection();
ps = conn.prepareStatement("SELECT * FROM " + getTables().get(0) + " WHERE " + COLUMNS.UUID.name + " = ?");
ps.setString(1, data.player.getUniqueId().toString());
rs = ps.executeQuery();
if (rs.next()) {
long count = rs.getLong(COLUMNS.COUNT.name);
long time = rs.getLong(COLUMNS.LAST_COOLDOWN_DATE.name);
data.setRtpCount(Math.toIntExact(count));
data.setGlobalCooldown(time);
}
} catch (SQLException ex) {
BetterRTP.getInstance().getLogger().log(Level.SEVERE, Errors.sqlConnectionExecute(), ex);
} finally {
close(ps, rs, conn);
}
}
//Set a player Cooldown
public void setData(PlayerData data) {
String pre = "INSERT OR REPLACE INTO ";
String sql = pre + getTables().get(0) + " ("
+ COLUMNS.UUID.name + ", "
+ COLUMNS.COUNT.name + ", "
+ COLUMNS.LAST_COOLDOWN_DATE.name + " "
//+ COLUMNS.USES.name + " "
+ ") VALUES(?, ?, ?)";
List<Object> params = new ArrayList<Object>() {{
add(data.player.getUniqueId().toString());
add(data.getRtpCount());
add(data.getGlobalCooldown());
//add(data.getUses());
}};
sqlUpdate(sql, params);
}*/
}

View File

@ -0,0 +1,4 @@
package me.superronancraft.rtpeachworld;
public class Main {
}

View File

@ -0,0 +1,12 @@
package me.superronancraft.rtpeachworld;
import org.bukkit.World;
import org.bukkit.entity.Player;
import java.util.HashMap;
public class PlayerData {
//HashMap<Player, HashMap<World, Boolean>>
}

View File

@ -171,7 +171,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
case "setup":
return worldPlayer.setup_type == RTP_SETUP_TYPE.LOCATION ? " &7(" + worldPlayer.setup_name + ")" : "";
case "cooldown":
return worldPlayer.getPlayer() != null ? PermissionNode.BYPASS_COOLDOWN.check(worldPlayer.getPlayer()) ? " &8(bypassing)" : "" : "&cN/A";
return worldPlayer.getPlayer() != null ? PermissionNode.BYPASS_COOLDOWN.check(worldPlayer.getPlayer()) ? " &8(bypassing)" : "" : " &cN/A";
}
return "";
}

View File

@ -14,9 +14,9 @@ import java.util.List;
import java.util.UUID;
import java.util.logging.Level;
public class DatabaseCooldownsWorlds extends SQLite {
public class DatabaseCooldowns extends SQLite {
public DatabaseCooldownsWorlds() {
public DatabaseCooldowns() {
super(DATABASE_TYPE.COOLDOWN);
}

View File

@ -7,13 +7,13 @@ import org.bukkit.Bukkit;
public class DatabaseHandler {
@Getter private final DatabasePlayers databasePlayers = new DatabasePlayers();
@Getter private final DatabaseCooldownsWorlds databaseCooldownsWorlds = new DatabaseCooldownsWorlds();
@Getter private final DatabaseCooldowns databaseCooldowns = new DatabaseCooldowns();
@Getter private final DatabaseQueue databaseQueue = new DatabaseQueue();
public void load() {
Bukkit.getScheduler().runTaskAsynchronously(BetterRTP.getInstance(), () -> {
databasePlayers.load();
databaseCooldownsWorlds.load();
databaseCooldowns.load();
databaseQueue.load();
});
}
@ -22,8 +22,8 @@ public class DatabaseHandler {
return BetterRTP.getInstance().getDatabaseHandler().getDatabasePlayers();
}
public static DatabaseCooldownsWorlds getWorldCooldowns() {
return BetterRTP.getInstance().getDatabaseHandler().getDatabaseCooldownsWorlds();
public static DatabaseCooldowns getCooldowns() {
return BetterRTP.getInstance().getDatabaseHandler().getDatabaseCooldowns();
}
public static DatabaseQueue getQueue() {

View File

@ -1,5 +1,6 @@
package me.SuperRonanCraft.BetterRTP.references.database;
import lombok.Getter;
import lombok.NonNull;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.Bukkit;
@ -14,7 +15,7 @@ import java.util.logging.Level;
public abstract class SQLite {
private static final String db_file_name = "database";
List<String> tables;
@Getter List<String> tables;
//private String host, database, username, password;
//private int port;
//boolean sqlEnabled;
@ -142,7 +143,7 @@ public abstract class SQLite {
case PLAYERS: return DatabasePlayers.COLUMNS.values();
case QUEUE: return DatabaseQueue.COLUMNS.values();
case COOLDOWN:
default: return DatabaseCooldownsWorlds.COLUMNS.values();
default: return DatabaseCooldowns.COLUMNS.values();
}
}
@ -151,7 +152,7 @@ public abstract class SQLite {
case PLAYERS: return ((DatabasePlayers.COLUMNS) column).name;
case QUEUE: return ((DatabaseQueue.COLUMNS) column).name;
case COOLDOWN:
default: return ((DatabaseCooldownsWorlds.COLUMNS) column).name;
default: return ((DatabaseCooldowns.COLUMNS) column).name;
}
}
@ -160,12 +161,12 @@ public abstract class SQLite {
case PLAYERS: return ((DatabasePlayers.COLUMNS) column).type;
case QUEUE: return ((DatabaseQueue.COLUMNS) column).type;
case COOLDOWN:
default: return ((DatabaseCooldownsWorlds.COLUMNS) column).type;
default: return ((DatabaseCooldowns.COLUMNS) column).type;
}
}
//Processing
boolean sqlUpdate(String statement, @NonNull List<Object> params) {
protected boolean sqlUpdate(String statement, @NonNull List<Object> params) {
Connection conn = null;
PreparedStatement ps = null;
boolean success = true;
@ -239,7 +240,7 @@ public abstract class SQLite {
}
}
void close(PreparedStatement ps, ResultSet rs, Connection conn) {
protected void close(PreparedStatement ps, ResultSet rs, Connection conn) {
try {
if (ps != null) ps.close();
if (conn != null) conn.close();

View File

@ -3,7 +3,7 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo;
import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldownsWorlds;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldowns;
import me.SuperRonanCraft.BetterRTP.references.database.DatabaseHandler;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
@ -43,7 +43,7 @@ public class CooldownHandler {
private void queueDownload() {
Bukkit.getScheduler().runTaskLaterAsynchronously(BetterRTP.getInstance(), () -> {
if (cooldownByWorld && !DatabaseHandler.getWorldCooldowns().isLoaded()) {
if (cooldownByWorld && !DatabaseHandler.getCooldowns().isLoaded()) {
queueDownload();
return;
}
@ -163,9 +163,9 @@ public class CooldownHandler {
}
@Nullable
private DatabaseCooldownsWorlds getDatabaseWorlds() {
private DatabaseCooldowns getDatabaseWorlds() {
if (cooldownByWorld)
return DatabaseHandler.getWorldCooldowns();
return DatabaseHandler.getCooldowns();
return null;
}