backport
This commit is contained in:
parent
266fcf0473
commit
699ef4a2ce
|
|
@ -3,4 +3,4 @@
|
|||
org.gradle.jvmargs=-Xmx3G
|
||||
org.gradle.daemon=false
|
||||
|
||||
mod_version=1.16.5-1.2.2
|
||||
mod_version=1.16.5-1.3.0
|
||||
|
|
@ -11,14 +11,18 @@ import net.minecraftforge.fml.config.ModConfig;
|
|||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import vip.fubuki.playersync.config.JdbcConfig;
|
||||
import vip.fubuki.playersync.util.JDBCsetUp;
|
||||
import vip.fubuki.playersync.util.PSThreadPoolFactory;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
@Mod(PlayerSync.MODID)
|
||||
public class PlayerSync
|
||||
{
|
||||
public static final String MODID = "playersync";
|
||||
public static ExecutorService executorService = Executors.newCachedThreadPool(new PSThreadPoolFactory("PlayerSync"));
|
||||
public PlayerSync()
|
||||
{
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
|
|
@ -27,20 +31,27 @@ public class PlayerSync
|
|||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) throws SQLException {
|
||||
if (event.getPlayer() instanceof ServerPlayerEntity) {
|
||||
String player_uuid = event.getEntity().getUUID().toString();
|
||||
JDBCsetUp.QueryResult queryResult=JDBCsetUp.executeQuery("SELECT * FROM AstralSorcery WHERE player='" + player_uuid + "';");
|
||||
ResultSet resultSet=queryResult.getResultSet();
|
||||
if(!resultSet.next()){
|
||||
JDBCsetUp.executeUpdate("INSERT INTO AstralSorcery(player,tag) VALUES('"+player_uuid+"','{}');");
|
||||
public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) {
|
||||
executorService.submit(() -> {
|
||||
try {
|
||||
if (event.getPlayer() instanceof ServerPlayerEntity) {
|
||||
String player_uuid = event.getEntity().getUUID().toString();
|
||||
JDBCsetUp.QueryResult queryResult=JDBCsetUp.executeQuery("SELECT * FROM AstralSorcery WHERE player='" + player_uuid + "';");
|
||||
ResultSet resultSet=queryResult.getResultSet();
|
||||
if(!resultSet.next()){
|
||||
JDBCsetUp.executeUpdate("INSERT INTO AstralSorcery(player,tag) VALUES('"+player_uuid+"','{}');");
|
||||
}
|
||||
JDBCsetUp.QueryResult queryResult1=JDBCsetUp.executeQuery("SELECT * FROM FTB WHERE player='" + player_uuid + "';");
|
||||
ResultSet resultSet1=queryResult1.getResultSet();
|
||||
if(!resultSet1.next()){
|
||||
JDBCsetUp.executeUpdate("INSERT INTO FTB(player,tag) VALUES('"+player_uuid+"','{}');");
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
JDBCsetUp.QueryResult queryResult1=JDBCsetUp.executeQuery("SELECT * FROM FTB WHERE player='" + player_uuid + "';");
|
||||
ResultSet resultSet1=queryResult1.getResultSet();
|
||||
if(!resultSet1.next()){
|
||||
JDBCsetUp.executeUpdate("INSERT INTO FTB(player,tag) VALUES('"+player_uuid+"','{}');");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import net.minecraft.nbt.CompoundNBT;
|
|||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||
import vip.fubuki.playersync.PlayerSync;
|
||||
import vip.fubuki.playersync.util.JDBCsetUp;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
|
@ -17,14 +18,16 @@ public class MixinPlayerProgress{
|
|||
private CompoundNBT save(CompoundNBT tag) {
|
||||
String nbt = tag.toString();
|
||||
nbt.replace(",","|").replace("\"","^").replace("{","<").replace("}",">").replace("'","~");
|
||||
try {
|
||||
PreparedStatement preparedStatement= JDBCsetUp.getConnection().prepareStatement("UPDATE AstralSorcery SET tag=? WHERE player=?");
|
||||
preparedStatement.setString(2,tag.getString("UUID"));
|
||||
preparedStatement.setString(1,nbt);
|
||||
preparedStatement.executeUpdate();
|
||||
} catch (SQLException throwable) {
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
PlayerSync.executorService.submit(() -> {
|
||||
try {
|
||||
PreparedStatement preparedStatement= JDBCsetUp.getConnection().prepareStatement("UPDATE AstralSorcery SET tag=? WHERE player=?");
|
||||
preparedStatement.setString(2,tag.getString("UUID"));
|
||||
preparedStatement.setString(1,nbt);
|
||||
preparedStatement.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package vip.fubuki.playersync.util;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class PSThreadPoolFactory implements ThreadFactory {
|
||||
private final AtomicInteger threadIdx = new AtomicInteger(0);
|
||||
|
||||
private final String threadNamePrefix;
|
||||
|
||||
public PSThreadPoolFactory(String Prefix) {
|
||||
threadNamePrefix = Prefix;
|
||||
}
|
||||
@Override
|
||||
public Thread newThread(@Nonnull Runnable runnable) {
|
||||
Thread thread = new Thread(runnable);
|
||||
thread.setName(threadNamePrefix + "-thread-" + threadIdx.getAndIncrement());
|
||||
return thread;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user