Launcher/libLauncher/src/main/java/ru/gravit/launcher/ClientPermissions.java

77 lines
2.2 KiB
Java
Raw Normal View History

package ru.gravit.launcher;
import ru.gravit.launcher.serialize.HInput;
import ru.gravit.launcher.serialize.HOutput;
import java.io.IOException;
2018-10-01 13:08:16 +03:00
public class ClientPermissions {
public static final ClientPermissions DEFAULT = new ClientPermissions();
@LauncherAPI
2019-01-21 16:38:51 +03:00
public boolean canAdmin = false;
@LauncherAPI
2019-01-21 16:38:51 +03:00
public boolean canServer = false;
@LauncherAPI
public boolean canUSR1 = false;
@LauncherAPI
public boolean canUSR2 = false;
@LauncherAPI
public boolean canUSR3 = false;
@LauncherAPI
public boolean canBot = false;
2019-01-15 06:35:39 +03:00
public ClientPermissions(HInput input) throws IOException {
canAdmin = input.readBoolean();
canServer = input.readBoolean();
2019-01-21 16:38:51 +03:00
canUSR1 = input.readBoolean();
canUSR2 = input.readBoolean();
canUSR3 = input.readBoolean();
canBot = input.readBoolean();
}
2019-01-15 06:35:39 +03:00
2018-10-01 13:08:16 +03:00
public ClientPermissions() {
canAdmin = false;
canServer = false;
2019-01-21 16:38:51 +03:00
canUSR1 = false;
canUSR2 = false;
canUSR3 = false;
canBot = false;
2018-10-01 13:08:16 +03:00
}
2018-11-08 15:30:16 +03:00
public ClientPermissions(long data) {
2018-11-08 15:30:16 +03:00
canAdmin = (data & (1)) != 0;
canServer = (data & (1 << 1)) != 0;
2019-01-21 16:38:51 +03:00
canUSR1 = (data & (1 << 2)) != 0;
canUSR2 = (data & (1 << 3)) != 0;
canUSR3 = (data & (1 << 4)) != 0;
canBot = (data & (1 << 5)) != 0;
}
public long toLong()
{
long result = 0;
result |= canAdmin ? 0 : 1;
result |= canServer ? 0 : (1 << 1);
result |= canUSR1 ? 0 : (1 << 2);
result |= canUSR2 ? 0 : (1 << 3);
result |= canUSR3 ? 0 : (1 << 4);
result |= canBot ? 0 : (1 << 5);
return result;
}
2018-11-08 15:30:16 +03:00
public static ClientPermissions getSuperuserAccount() {
ClientPermissions perm = new ClientPermissions();
perm.canServer = true;
perm.canAdmin = true;
return perm;
}
2019-01-15 06:35:39 +03:00
public void write(HOutput output) throws IOException {
output.writeBoolean(canAdmin);
output.writeBoolean(canServer);
2019-01-21 16:38:51 +03:00
output.writeBoolean(canUSR1);
output.writeBoolean(canUSR2);
output.writeBoolean(canUSR3);
output.writeBoolean(canBot);
}
2018-10-01 13:08:16 +03:00
}