ZontreckWebsite/lib/Packets.dart

166 lines
3 KiB
Dart

import 'dart:convert';
import 'Settings.dart';
abstract class IPacket {
String encode();
HTTPMethod method();
String getType();
}
class S2CSimpleReplyPacket implements IPacket {
final bool done;
S2CSimpleReplyPacket({required this.done});
static S2CSimpleReplyPacket decode(String params) {
var map = json.decode(params);
return S2CSimpleReplyPacket(done: map['done'] as bool);
}
@override
String encode() {
return json.encode({"done": done});
}
@override
HTTPMethod method() {
return HTTPMethod.Get;
}
@override
String getType() {
return "S2CSimpleReply";
}
}
class C2SPerformSetupPacket implements IPacket {
final String PSK;
final String ClientPSK;
final String host;
final String user;
final String pass;
final String db;
C2SPerformSetupPacket(
{required this.PSK,
required this.ClientPSK,
required this.host,
required this.user,
required this.pass,
required this.db});
@override
String encode() {
return json.encode({
"psk": PSK,
"client": ClientPSK,
"host": host,
"user": user,
"pass": pass,
"db": db,
"type": getType()
});
}
static C2SPerformSetupPacket decode(String params) {
var map = json.decode(params);
return C2SPerformSetupPacket(
PSK: map['psk'] as String,
ClientPSK: map['client'] as String,
host: map['host'] as String,
user: map['user'] as String,
pass: map['pass'] as String,
db: map['db'] as String);
}
@override
HTTPMethod method() {
return HTTPMethod.Post;
}
@override
String getType() {
return "C2SPerformSetup";
}
}
class S2CPongPacket implements IPacket {
final String PSK;
final bool authorized;
S2CPongPacket({required this.PSK, required this.authorized});
@override
String encode() {
return json
.encode({"psk": PSK, "autorized": authorized, "type": getType()});
}
@override
String getType() {
return "S2CPong";
}
@override
HTTPMethod method() {
return HTTPMethod.Get;
}
static S2CPongPacket decode(String params) {
var map = json.decode(params);
return S2CPongPacket(
PSK: map['psk'] as String, authorized: map['authorized'] as bool);
}
}
class NullPacket implements IPacket {
NullPacket();
@override
String encode() {
return json.encode({});
}
static NullPacket decode(String params) {
return NullPacket();
}
@override
String getType() {
return "NullPacket";
}
@override
HTTPMethod method() {
return HTTPMethod.Get;
}
}
class C2SPingPacket implements IPacket {
final String client;
C2SPingPacket({required this.client});
@override
HTTPMethod method() {
return HTTPMethod.Post;
}
@override
String getType() {
return "C2SPing";
}
static C2SPingPacket decode(String params) {
var map = json.decode(params);
return C2SPingPacket(client: map['client'] as String);
}
@override
String encode() {
return json.encode({"client": client});
}
}