master
linbin 2024-05-06 00:54:55 +08:00
parent 64f3e55fe5
commit 2559af5a10
5 changed files with 71 additions and 38 deletions

View File

@ -1,11 +1,11 @@
#选择: jfire2029
选择: 17605002499 # 17750208698,17605002499,jfire2029,jfire2028,jfire2020
选择: jfire2029 # 17750208698,17605002499,jfire2029,jfire2028,jfire2020
#选择: 17750208698
#选择: jfire2028
# 一次只能填写一个功能可以填写的功能有BOSS套装,解锁全部NPC,解锁全部地图,解锁全部卡片,token
#升级到60,巅峰100级,熔铸雕像,打印仓库0,删除傀儡角色,打印信息,完成全部赛季任务,领取祝福
#完成今日任务,打印角色,强化身上装备到10,升级算力等级,投影箱子开启
功能: 投影箱子开启
功能: 完成今日任务
执行方案: 黑煞之心力-能量吸取,黑煞之心力-重型弹药,美杜莎长枪,小骑士套装
投影箱子开启:
地图: 废旧城堡
@ -39,11 +39,11 @@
羽毛:
熔铸雕像:
位置:
选择: 装备
背包序号: 1
选择: 背包
背包序号: 6
装备位置: 项链 # 可以填写 武器,盔甲,头盔,鞋子,项链,戒指
词条序号: 3
目标词条: 技能冷却 # 将这个位置上的装备的词条更换到目标词条,使用熔铸点数。
目标词条: 技能冷却+30 # 将这个位置上的装备的词条更换到目标词条,使用熔铸点数。
卡片合成:
装备: 美杜莎面罩 # 填写装备的名称
武器:

11
pom.xml
View File

@ -16,9 +16,14 @@
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.42.0.0</version>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java6</artifactId>
<version>2.3.13</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>

View File

@ -12,6 +12,7 @@ import com.jfirer.jsql.SessionfactoryConfig;
import com.jfirer.jsql.model.Model;
import com.jfirer.jsql.model.Param;
import com.jfirer.jsql.session.SqlSession;
import com.zaxxer.hikari.HikariDataSource;
import lombok.Data;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@ -23,7 +24,6 @@ import org.example.entity.User;
import org.example.param.*;
import org.jetbrains.annotations.NotNull;
import org.slf4j.MDC;
import org.sqlite.SQLiteDataSource;
import java.io.File;
import java.io.FileInputStream;
@ -549,8 +549,6 @@ public class App
public void finishDailyTask()
{
CharacterData character = createCharacter();
changeCharacter(character);
FetchGameDataDTO fetchGameDataDTO = fetchGameData();
long count = Stream.of(fetchGameDataDTO.getGameData().getDailyTask().getGemTaskPos1(), fetchGameDataDTO.getGameData().getDailyTask().getGemTaskPos2(), fetchGameDataDTO.getGameData().getDailyTask().getGemTaskPos3()).filter(Objects::nonNull).count();
int left = (int) (3 - count);
@ -2573,32 +2571,23 @@ public class App
for (User user : list)
{
String channelId = String.valueOf(user.getChannel());
if (StringUtil.isNotBlank(user.getDesc()))
if (StringUtil.isNotBlank(user.getDetail()))
{
String content = user.getDesc();
String content = user.getDetail();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M月d日HH:mm:ss");
String substring = content.substring(content.indexOf("解封时间为:") + "解封时间为:".length());
TemporalAccessor temporalAccessor = formatter.parse(substring);
int month = temporalAccessor.get(ChronoField.MONTH_OF_YEAR);
int day = temporalAccessor.get(ChronoField.DAY_OF_MONTH);
LocalDate localDate = LocalDate.of(LocalDate.now().getYear(), month, day);
LocalDate availableTime = LocalDate.of(LocalDate.now().getYear(), month, day);
//封号时间还没有到,忽略
if (LocalDate.now().isBefore(localDate))
if (LocalDate.now().isBefore(availableTime))
{
continue;
}
userOp.updateDesc(null, user.getUsername());
}
String chanel = null;
switch (channelId)
{
case "1" -> chanel = taptap;
case "2" -> chanel = haoyoukuaibao;
case "3" -> chanel = hezi4399;
case "4" -> chanel = ios;
case "5" -> chanel = bilibili;
case "6" -> chanel = vivo;
}
String chanel = getChannel(channelId);
App app = new App(chanel);
LoginDTO loginDTO = app.fetchToken(user.getUsername(), user.getPassword());
if (loginDTO.getError() != null)
@ -2614,6 +2603,38 @@ public class App
}
return;
}
if (config.get("功能").equals("完成今日任务"))
{
try (SqlSession session = sessionFactory.openSession())
{
List<User> list = session.findList(Model.selectAll(User.class).where(Param.isNull(User::getDetail)));
for (User user : list)
{
MDC.put("user", user.getUsername());
String channel = getChannel(String.valueOf(user.getChannel()));
App app = new App(channel);
app.login(user.getToken(), user.getCharacterName());
app.finishDailyTask();
}
}
System.exit(0);
}
if (config.get("功能").equals("投影箱子开启"))
{
try (SqlSession session = sessionFactory.openSession())
{
List<User> list = session.findList(Model.selectAll(User.class).where(Param.isNull(User::getDetail)));
for (User user : list)
{
MDC.put("user", user.getUsername());
String channel = getChannel(String.valueOf(user.getChannel()));
App app = new App(channel);
app.login(user.getToken(), user.getCharacterName());
app.openChipBox(11);
}
}
System.exit(0);
}
String name = (String) config.get("选择");
User user;
try (SqlSession session = sessionFactory.openSession())
@ -2706,22 +2727,29 @@ public class App
public static SessionFactory getConfigFile() throws IOException, URISyntaxException
{
File file = new File(App.class.getProtectionDomain().getCodeSource().getLocation().toURI());
File sqliteFile;
if (file.isDirectory())
{
sqliteFile = new File(new File(App.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParentFile().getParentFile(), "yuanqi.sqlite");
}
else
{
sqliteFile = new File(new File(App.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParentFile(), "yuanqi.sqlite");
}
SQLiteDataSource dataSource = new SQLiteDataSource();
dataSource.setUrl("jdbc:sqlite:" + sqliteFile.getAbsolutePath());
HikariDataSource dataSource = new HikariDataSource();
dataSource.setUsername("root");
dataSource.setPassword("xidn983kdhjf");
dataSource.setJdbcUrl("jdbc:mysql://yynas.cn:43897/yuanqi_config?useUnicode=true&characterEncoding=utf8&useSSL=false&&allowPublicKeyRetrieval=true");
SessionfactoryConfig sessionfactoryConfig = new SessionfactoryConfig();
sessionfactoryConfig.setDataSource(dataSource);
// sessionfactoryConfig.addSqlExecutor(new SqlLog());
SessionFactory sessionFactory = sessionfactoryConfig.build();
return sessionFactory;
}
public static String getChannel(String channelId)
{
String chanel = null;
switch (channelId)
{
case "1" -> chanel = taptap;
case "2" -> chanel = haoyoukuaibao;
case "3" -> chanel = hezi4399;
case "4" -> chanel = ios;
case "5" -> chanel = bilibili;
case "6" -> chanel = vivo;
}
return chanel;
}
}

View File

@ -11,6 +11,6 @@ public class User
private String password;
private String token;
private int channel;
private String desc;
private String detail;
private String characterName;
}

Binary file not shown.