!7 set flag JDA40. !include once #1026298 // DynTalkBot2 for JDA 4.0 standardBot1 RolesExporter { init { myName = "HyperCubes"; preprocessAtSelfToMyName = true; } sync S processSimplifiedLine(S s, O... _) { try answer super.processSimplifiedLine(s, _); if null (s = dropMyPrefixOrNull(s)) null; optPar long channelID; if "export" { uploadFileInChannel(channelID, toUtf8(jsonEncode_breakAtNLevels(3, makeData())), "members-and-roles-" + guild.getIdLong() + ".json.txt", null, null); null; } null; } Map makeData() { L allRoles = map(guild.getRoles(), r -> litorderedmap( "name" := r.getName(), "id" := r.getIdLong(), "permissions" := r.getPermissionsRaw())); L members = map(guild.getMembers(), m -> litorderedmap( "nickName" := m.getNickname(), "effectiveName" := m.getEffectiveName(), "userName" := m.getUser().getName(), "id" := m.getIdLong(), "isOwner" := trueOrNull(m.isOwner()), "roles" := map(m.getRoles(), r -> litorderedmap("name" := r.getName(), "id" := r.getIdLong())))); ret litorderedmap( dataType := "members and roles for guild", dateExported := dateWithSecondsGMT(), guild := litorderedmap( name := guild.getName(), id := guild.getIdLong()), +allRoles, +members); } }