migrate old Repo
This commit is contained in:
commit
39755c7cdd
41 changed files with 4850 additions and 0 deletions
176
src/main/java/CORE/Core.java
Normal file
176
src/main/java/CORE/Core.java
Normal file
|
@ -0,0 +1,176 @@
|
|||
package CORE;
|
||||
|
||||
import Manager.ChatManager;
|
||||
import Manager.UserManager;
|
||||
import Modules.*;
|
||||
import Modules.Module;
|
||||
import Utility.User.MyUser;
|
||||
import Utility.jsonUtils;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
|
||||
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
|
||||
import org.telegram.telegrambots.meta.api.methods.updatingmessages.EditMessageText;
|
||||
import org.telegram.telegrambots.meta.api.objects.Update;
|
||||
import org.telegram.telegrambots.meta.api.objects.User;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Core extends TelegramLongPollingBot {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(Core.class);
|
||||
|
||||
public static final int MUTETIMER = 60; //MINUTES
|
||||
public static final long GUEST_TIME = 1000 * 60 * 60; // 1H
|
||||
public static final int SLOWMODETIMER = 35; //seconds
|
||||
|
||||
public static long ADMIN_CHAT_ID;
|
||||
public static JSONArray OPEN_CHATS;
|
||||
public static String GUEST_CHAT_JOIN_LINK ;
|
||||
public static String TEAM_NAME;
|
||||
public static boolean NO_BOT_RIGHTS;
|
||||
|
||||
private static String BOT_TOKEN;
|
||||
private static String BOT_USERNAME;
|
||||
|
||||
public static HashMap<Long, MyUser> userMap;
|
||||
|
||||
|
||||
private List<Module> modules;
|
||||
private Map<Long, MyUser> open_requests;
|
||||
private Set<Long> watchingChats;
|
||||
|
||||
public Core(){
|
||||
|
||||
log.info("load config");
|
||||
JSONObject config = (JSONObject) jsonUtils.loadJson("config.json").get(0);
|
||||
|
||||
ADMIN_CHAT_ID = (long) config.get("masterUserId");
|
||||
OPEN_CHATS = (JSONArray) config.get("openChats");
|
||||
GUEST_CHAT_JOIN_LINK = (String) config.get("guestChatJoinLink");
|
||||
TEAM_NAME = (String) config.get("teamname");
|
||||
NO_BOT_RIGHTS = (Boolean) config.get("no_bot_rights_option");
|
||||
BOT_TOKEN = (String) config.get("botToken");
|
||||
BOT_USERNAME = (String) config.get("botUserName");
|
||||
|
||||
userMap = new HashMap<>();
|
||||
open_requests = new HashMap<>();
|
||||
watchingChats = ChatManager.loadWatch();
|
||||
|
||||
UserManager.loadUserList();
|
||||
|
||||
log.info("init all modules");
|
||||
modules = new ArrayList<>();
|
||||
modules.add(new AdminMenue(this));
|
||||
modules.add(new BasicModule(this));
|
||||
modules.add(new ModCommands(this));
|
||||
modules.add(new SlowMode(this));
|
||||
modules.add(new UserMenue(this));
|
||||
modules.add(new Welcome(this));
|
||||
log.info("done");
|
||||
|
||||
}
|
||||
|
||||
/*----------Help Methods to send and edit messages----------*/
|
||||
|
||||
public void send_message(SendMessage message) {
|
||||
log.debug("Send message " + message);
|
||||
try {
|
||||
execute(message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void edit_message(EditMessageText message) {
|
||||
log.debug("Send edit message " + message);
|
||||
try {
|
||||
execute(message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void send_message_toadmins(SendMessage message) {
|
||||
log.debug("Send message to admins" + message);
|
||||
List<MyUser> admin_list = UserManager.buildAdminList();
|
||||
|
||||
for (MyUser admin : admin_list) {
|
||||
long admin_id = admin.getId();
|
||||
message.setChatId(admin_id);
|
||||
send_message(message);
|
||||
}
|
||||
}
|
||||
|
||||
/*------------------------- Other Mehtods ------------------------------------*/
|
||||
|
||||
public static String getUserAsMention(User user){
|
||||
|
||||
if (user instanceof MyUser)
|
||||
return ((MyUser)user).getUserName();
|
||||
|
||||
String userName;
|
||||
|
||||
if (user.getUserName() != null){
|
||||
userName = user.getUserName();
|
||||
} else if (user.getFirstName() != null){
|
||||
userName = user.getFirstName();
|
||||
} else if (user.getLastName() != null){
|
||||
userName = user.getLastName();
|
||||
} else {
|
||||
userName = "StealthUser";
|
||||
}
|
||||
|
||||
userName = "<a href=\"tg://user?id=" + user.getId() + "\">" + userName + "</a>";
|
||||
|
||||
return userName;
|
||||
}
|
||||
|
||||
public HashMap<Long, MyUser> getUserMap() {
|
||||
return userMap;
|
||||
}
|
||||
|
||||
public Map<Long, MyUser> getOpen_requests() {
|
||||
return open_requests;
|
||||
}
|
||||
|
||||
public Set<Long> getWatchingChats() {
|
||||
return watchingChats;
|
||||
}
|
||||
|
||||
public void saveWhatchingChats(){
|
||||
ChatManager.saveWatch(watchingChats);
|
||||
}
|
||||
|
||||
/*-------------------------------- BOT FUNCTIONS -------------------------------------------*/
|
||||
|
||||
@Override
|
||||
public void onUpdateReceived(Update update) {
|
||||
|
||||
log.trace("Got an Update: " + update.toString());
|
||||
|
||||
//Check if user is blocked
|
||||
if (update.hasMessage() && UserManager.checkBlacklist(update.getMessage().getFrom().getId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Module x : modules)
|
||||
x.execute(update);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBotUsername() {
|
||||
return BOT_USERNAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBotToken() {
|
||||
return BOT_TOKEN;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue