This commit is contained in:
jeffcheasey88 2023-04-27 10:59:32 +02:00
parent 901c6f1512
commit 1059864aa5
3 changed files with 19 additions and 28 deletions

View file

@ -65,15 +65,16 @@ public class Main{
"Access-Control-Allow-Methods: *", "Access-Control-Allow-Headers: *");
}
});
initRoutes(router, config);
// RouteExtracter extracter = new RouteExtracter(router);
// extracter.extract();
startWebServer(config, router, initRoutes(router, config));
startWebServer(config, router);
}
private static List<Locker<?>> initRoutes(Router router, Configuration config){
List<Locker<?>> list = new ArrayList<>();
private static void initRoutes(Router router, Configuration config){
router.register(new ChapterElement(router.getDataBase()));
router.register(new ChapterList(router.getDataBase()));
router.register(new PuzzleElement(router.getDataBase()));
@ -85,14 +86,12 @@ public class Main{
router.register(new BadgeDetails(router.getDataBase()));
Locker<Group> groupLock = new Locker<>();
list.add(groupLock);
router.register(new GroupCreate(router.getDataBase(), groupLock, config.getGroupJoinMinutes()));
DynamicLeaderboard dlb = new DynamicLeaderboard(router.getDataBase());
router.register(dlb);
Locker<Completion> leaderboard = dlb.getLocker();
list.add(leaderboard);
router.register(new PuzzleResponse(router.getDataBase(), config.getUsersFiles(), leaderboard));
router.register(new GroupList(router.getDataBase()));
@ -101,11 +100,9 @@ public class Main{
// Bot bot = new Bot(config, router.getDataBase(), groupLock);
// bot.start();
return list;
}
private static void startWebServer(Configuration config, Router router, List<Locker<?>> lockers) throws IOException {
private static void startWebServer(Configuration config, Router router) throws IOException {
if (config.useSsl()) { // Not needed with the use of a proxy
SSLServerSocket server = null;
try {
@ -117,7 +114,7 @@ public class Main{
while (!server.isClosed()) {
Socket socket = server.accept();
Client client = new Client(socket, router, lockers);
Client client = new Client(socket, router);
client.start();
}
} catch (Exception e) {
@ -131,7 +128,7 @@ public class Main{
try (ServerSocket server = new ServerSocket(config.getTcpPort())) {
while (!server.isClosed()) {
Socket socket = server.accept();
Client client = new Client(socket, router, lockers);
Client client = new Client(socket, router);
client.start();
}
} catch (Exception e) {

View file

@ -2,7 +2,6 @@ package be.jeffcheasey88.peeratcode.framework;
import java.net.Socket;
import java.util.Arrays;
import java.util.List;
import org.jose4j.jwa.AlgorithmConstraints.ConstraintType;
import org.jose4j.jws.AlgorithmIdentifiers;
@ -15,13 +14,11 @@ public class Client extends Thread{
private HttpReader reader;
private HttpWriter writer;
private Router router;
private List<Locker<?>> lockers;
public Client(Socket socket, Router router, List<Locker<?>> lockers) throws Exception{
public Client(Socket socket, Router router) throws Exception{
this.reader = new HttpReader(socket);
this.writer = new HttpWriter(socket);
this.router = router;
this.lockers = lockers;
}
@Override
@ -38,13 +35,6 @@ public class Client extends Thread{
}catch(Exception e){
e.printStackTrace();
}
if(user != null){
if(user.getKey() != null){
for(Locker<?> locker : this.lockers){
locker.remove(user.getKey());
}
}
}
}
private User isLogin(HttpReader reader) throws Exception{

View file

@ -32,14 +32,18 @@ public class DynamicLeaderboard extends Leaderboard{
Key key = new Key();
locker.init(key);
while(!reader.isClosed()){
locker.getValue(key);
if(matcher.group(1) != null){
groupsLeaderboard(Integer.parseInt(matcher.group(1)), writer);
}else{
playersLeaderboard(writer);
try {
while(!reader.isClosed()){
locker.getValue(key);
if(matcher.group(1) != null){
groupsLeaderboard(Integer.parseInt(matcher.group(1)), writer);
}else{
playersLeaderboard(writer);
}
locker.lock(key);
}
locker.lock(key);
}catch(Exception e){
e.printStackTrace();
}
locker.remove(key);
}