33
44#include < string>
55
6+ #include < raknet/MessageIdentifiers.h>
67#include < raknet/RakNetTypes.h>
78#include < raknet/RakPeer.h>
89
@@ -28,10 +29,48 @@ class RakNetPacket {
2829 RakNet::Packet &packet_;
2930};
3031
32+ class MessageIdentifiers {};
33+ #define DEF_DEFAULT_MESSAGE_ID (name ) value(#name, DefaultMessageIDTypes::name)
34+
3135PYBIND11_MODULE (raknet_python, m) {
3236 py::register_exception<StartupError>(m," StartupError" , PyExc_RuntimeError);
3337 py::register_exception<ConnectionAttemptError>(m," ConnectionAttemptError" , PyExc_RuntimeError);
3438
39+ auto message_id = py::class_<MessageIdentifiers>(m," MessageIdentifiers" );
40+ py::enum_<DefaultMessageIDTypes>(message_id," DefaultMessageIDTypes" )
41+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTED_PING)
42+ .DEF_DEFAULT_MESSAGE_ID (ID_UNCONNECTED_PING)
43+ .DEF_DEFAULT_MESSAGE_ID (ID_UNCONNECTED_PING_OPEN_CONNECTIONS)
44+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTED_PONG)
45+ .DEF_DEFAULT_MESSAGE_ID (ID_DETECT_LOST_CONNECTIONS)
46+ .DEF_DEFAULT_MESSAGE_ID (ID_OPEN_CONNECTION_REQUEST_1)
47+ .DEF_DEFAULT_MESSAGE_ID (ID_OPEN_CONNECTION_REPLY_1)
48+ .DEF_DEFAULT_MESSAGE_ID (ID_OPEN_CONNECTION_REQUEST_2)
49+ .DEF_DEFAULT_MESSAGE_ID (ID_OPEN_CONNECTION_REPLY_2)
50+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTION_REQUEST)
51+ .DEF_DEFAULT_MESSAGE_ID (ID_REMOTE_SYSTEM_REQUIRES_PUBLIC_KEY)
52+ .DEF_DEFAULT_MESSAGE_ID (ID_OUR_SYSTEM_REQUIRES_SECURITY)
53+ .DEF_DEFAULT_MESSAGE_ID (ID_PUBLIC_KEY_MISMATCH)
54+ .DEF_DEFAULT_MESSAGE_ID (ID_OUT_OF_BAND_INTERNAL)
55+ .DEF_DEFAULT_MESSAGE_ID (ID_SND_RECEIPT_ACKED)
56+ .DEF_DEFAULT_MESSAGE_ID (ID_SND_RECEIPT_LOSS)
57+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTION_REQUEST_ACCEPTED)
58+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTION_ATTEMPT_FAILED)
59+ .DEF_DEFAULT_MESSAGE_ID (ID_ALREADY_CONNECTED)
60+ .DEF_DEFAULT_MESSAGE_ID (ID_NEW_INCOMING_CONNECTION)
61+ .DEF_DEFAULT_MESSAGE_ID (ID_NO_FREE_INCOMING_CONNECTIONS)
62+ .DEF_DEFAULT_MESSAGE_ID (ID_DISCONNECTION_NOTIFICATION)
63+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTION_LOST)
64+ .DEF_DEFAULT_MESSAGE_ID (ID_CONNECTION_BANNED)
65+ .DEF_DEFAULT_MESSAGE_ID (ID_INVALID_PASSWORD)
66+ .DEF_DEFAULT_MESSAGE_ID (ID_INCOMPATIBLE_PROTOCOL_VERSION)
67+ .DEF_DEFAULT_MESSAGE_ID (ID_IP_RECENTLY_CONNECTED)
68+ .DEF_DEFAULT_MESSAGE_ID (ID_TIMESTAMP)
69+ .DEF_DEFAULT_MESSAGE_ID (ID_UNCONNECTED_PONG)
70+ .DEF_DEFAULT_MESSAGE_ID (ID_ADVERTISE_SYSTEM)
71+ .DEF_DEFAULT_MESSAGE_ID (ID_DOWNLOAD_PROGRESS)
72+ .export_values ();
73+
3574 py::class_<RakNetPacket>(m," Packet" ).def_property_readonly (" data" , [](const RakNetPacket &self) {
3675return py::bytes (self.data (), self.length ());
3776 });