backport
This commit is contained in:
parent
266fcf0473
commit
699ef4a2ce
|
|
@ -3,4 +3,4 @@
|
||||||
org.gradle.jvmargs=-Xmx3G
|
org.gradle.jvmargs=-Xmx3G
|
||||||
org.gradle.daemon=false
|
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 net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
import vip.fubuki.playersync.config.JdbcConfig;
|
import vip.fubuki.playersync.config.JdbcConfig;
|
||||||
import vip.fubuki.playersync.util.JDBCsetUp;
|
import vip.fubuki.playersync.util.JDBCsetUp;
|
||||||
|
import vip.fubuki.playersync.util.PSThreadPoolFactory;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
@Mod(PlayerSync.MODID)
|
@Mod(PlayerSync.MODID)
|
||||||
public class PlayerSync
|
public class PlayerSync
|
||||||
{
|
{
|
||||||
public static final String MODID = "playersync";
|
public static final String MODID = "playersync";
|
||||||
|
public static ExecutorService executorService = Executors.newCachedThreadPool(new PSThreadPoolFactory("PlayerSync"));
|
||||||
public PlayerSync()
|
public PlayerSync()
|
||||||
{
|
{
|
||||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||||
|
|
@ -27,20 +31,27 @@ public class PlayerSync
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) throws SQLException {
|
public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) {
|
||||||
if (event.getPlayer() instanceof ServerPlayerEntity) {
|
executorService.submit(() -> {
|
||||||
String player_uuid = event.getEntity().getUUID().toString();
|
try {
|
||||||
JDBCsetUp.QueryResult queryResult=JDBCsetUp.executeQuery("SELECT * FROM AstralSorcery WHERE player='" + player_uuid + "';");
|
if (event.getPlayer() instanceof ServerPlayerEntity) {
|
||||||
ResultSet resultSet=queryResult.getResultSet();
|
String player_uuid = event.getEntity().getUUID().toString();
|
||||||
if(!resultSet.next()){
|
JDBCsetUp.QueryResult queryResult=JDBCsetUp.executeQuery("SELECT * FROM AstralSorcery WHERE player='" + player_uuid + "';");
|
||||||
JDBCsetUp.executeUpdate("INSERT INTO AstralSorcery(player,tag) VALUES('"+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.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
|
import vip.fubuki.playersync.PlayerSync;
|
||||||
import vip.fubuki.playersync.util.JDBCsetUp;
|
import vip.fubuki.playersync.util.JDBCsetUp;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
|
|
@ -17,14 +18,16 @@ public class MixinPlayerProgress{
|
||||||
private CompoundNBT save(CompoundNBT tag) {
|
private CompoundNBT save(CompoundNBT tag) {
|
||||||
String nbt = tag.toString();
|
String nbt = tag.toString();
|
||||||
nbt.replace(",","|").replace("\"","^").replace("{","<").replace("}",">").replace("'","~");
|
nbt.replace(",","|").replace("\"","^").replace("{","<").replace("}",">").replace("'","~");
|
||||||
try {
|
PlayerSync.executorService.submit(() -> {
|
||||||
PreparedStatement preparedStatement= JDBCsetUp.getConnection().prepareStatement("UPDATE AstralSorcery SET tag=? WHERE player=?");
|
try {
|
||||||
preparedStatement.setString(2,tag.getString("UUID"));
|
PreparedStatement preparedStatement= JDBCsetUp.getConnection().prepareStatement("UPDATE AstralSorcery SET tag=? WHERE player=?");
|
||||||
preparedStatement.setString(1,nbt);
|
preparedStatement.setString(2,tag.getString("UUID"));
|
||||||
preparedStatement.executeUpdate();
|
preparedStatement.setString(1,nbt);
|
||||||
} catch (SQLException throwable) {
|
preparedStatement.executeUpdate();
|
||||||
throwable.printStackTrace();
|
} catch (SQLException e) {
|
||||||
}
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
return tag;
|
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