forked from SteamWar/SteamWar
Add CommonCore module
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2023 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.sql;
|
||||
|
||||
import de.steamwar.sql.internal.Field;
|
||||
import de.steamwar.sql.internal.SelectStatement;
|
||||
import de.steamwar.sql.internal.SqlTypeMapper;
|
||||
import de.steamwar.sql.internal.Table;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public enum UserPerm {
|
||||
PREFIX_NONE, // special value, not stored in database
|
||||
PREFIX_YOUTUBER,
|
||||
PREFIX_GUIDE,
|
||||
PREFIX_BUILDER,
|
||||
PREFIX_SUPPORTER,
|
||||
PREFIX_MODERATOR,
|
||||
PREFIX_DEVELOPER,
|
||||
PREFIX_ADMIN,
|
||||
|
||||
RESTRICTED_MODS,
|
||||
COLOR_CHAT,
|
||||
TEAM,
|
||||
TICKET_LOG,
|
||||
BUILD,
|
||||
CHECK,
|
||||
MODERATION,
|
||||
ADMINISTRATION;
|
||||
|
||||
public static final Map<UserPerm, Prefix> prefixes;
|
||||
public static final Prefix emptyPrefix;
|
||||
static {
|
||||
SqlTypeMapper.nameEnumMapper(UserPerm.class);
|
||||
Map<UserPerm, Prefix> p = new EnumMap<>(UserPerm.class);
|
||||
emptyPrefix = new Prefix("§7", "");
|
||||
p.put(PREFIX_NONE, emptyPrefix);
|
||||
p.put(PREFIX_YOUTUBER, new Prefix("§7", "YT"));
|
||||
p.put(PREFIX_GUIDE, new Prefix("§a", "Guide"));
|
||||
|
||||
p.put(PREFIX_SUPPORTER, new Prefix("§6", "Sup"));
|
||||
p.put(PREFIX_MODERATOR, new Prefix("§6", "Mod"));
|
||||
p.put(PREFIX_BUILDER, new Prefix("§e", "Arch"));
|
||||
p.put(PREFIX_DEVELOPER, new Prefix("§e", "Dev"));
|
||||
p.put(PREFIX_ADMIN, new Prefix("§e", "Admin"));
|
||||
prefixes = Collections.unmodifiableMap(p);
|
||||
}
|
||||
|
||||
private static final Table<UserPermTable> table = new Table<>(UserPermTable.class, "UserPerm");
|
||||
private static final SelectStatement<UserPermTable> getPerms = table.selectFields("user");
|
||||
|
||||
public static Set<UserPerm> getPerms(int user) {
|
||||
return getPerms.listSelect(user).stream().map(up -> up.perm).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public static class Prefix {
|
||||
private final String colorCode;
|
||||
private final String chatPrefix;
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
public static class UserPermTable {
|
||||
@Field(keys = {Table.PRIMARY})
|
||||
private final int user;
|
||||
@Field(keys = {Table.PRIMARY})
|
||||
private final UserPerm perm;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user