-
Notifications
You must be signed in to change notification settings - Fork 10
Addons
Il est en effet possible, et très simple de développer des addons pour ModularVoiceChat!
Un addon ModularVoiceChat est avant-tout un mod Forge à part entière. En effet, vous intéragirez avec le mod, et le vocal via des events! Il est donc nécessaire d'être un minimum expérimenté dans la création de mods, et familiarisé avec le système d'evènement de forge.
Pour ce faire, il va vous falloir éditer votre build.gradle afin d'y ajouter les éléments suivants:
repositories{
maven{
name = "CurseForge"
url = "https://minecraft.curseforge.com/api/maven/"
}
}
dependencies {
compile 'modularvoicechat:ModularVoiceChat:VERSION'
//For example: compile 'modularvoicechat:ModularVoiceChat:BETA:1.2'
// replace "-" by ":"
// Remplacez les "-" par des ":", par exemple ModularVoiceChat-BETA-1.2 devient ModularVoiceChat:BETA:1.2
}Afin de modifier et ajouter des fonctionnalités au vocal, vous devez utiliser des events. A ce titre, il y en a des divers et variés pour chaque étape du transfert de voix, afin de vous laisser le plus libre dans la customisation!
Pour chaque event, la catégorie sera divisée en deux parties. Celle contenant les variables (que l'on peut get, et set via des getters et des setters), et les méthodes, que l'on peut utiliser pour différentes choses.
Cet event vous permet ni plus ni moins de modifier la distance à laquelle un joueur peut être entendu. En effet, il est appelé lors du test de distance si le mode choisi est distanced.
-
EntityPlayerspeaker: Le joueur qui parle -
EntityPlayerhearer: Le joueur qui va (selon la distance donnée) entendre (ou pas lol) -
intdistance: simplement la distance à laquelle le joueur peut être entendu.
Grâce à cet event, qui est appelé lors du lancement du serveur vocal, vous pouvez définir un IVoiceDispatcher custom. Prenez exemple sur les classes DistanceBasedVoiceDispatcher et GlobalVoiceDispatcher.
-
VoiceServerserver: Le serveur qui se lance -
IVoiceDispatcherdispatcher: Le voicedispatcher
Cet event est appelé quand la voix d'un joueur est répartie entre tous les autres. Il va vous permettre d'envoyer la voix de ce dernier aux joueurs de votre choix. En annulant cet event, vous annulez la répartition par défaut, il faudra donc créer la votre via les différentes méthodes disponibles. Cet évènement est annulable.
Il est très déconseillé d'annuler cet évent au risque de rendre votre addon incompatible avec beaucoup d'autres. Ne l'annulez que si vous souhaitez refaire entièrement le dispatch des voix.
-
EntityPlayerspeaker: Le joueur qui parle -
VoiceServervoiceServer: Le serveur vocal sur lequel est diffusé la voix. -
VoicePropertiesvoiceProperties: Les propriétées que vous voulez appliquées au packet audio.
-
EntityPlayerdispatchTo: Permet d'envoyer la voix en question au joueur donné. -
EntityPlayer, intdispatchTo: Permet d'envoyer la voix en question au joueur donné, avec un volume (sur 100) donné. -
EntityPlayer, int, VoicePropertiesdispatchTo: Permet d'envoyer la voix en question au joueur donné, ave un volume (sur 100) donné, et une VoiceProperties (voir explication plus bas) custom. -
voiddispatchToAll: Permet d'envoyer la voix à tous les joueurs. -
intdispatchToAll: Permet d'envoyer la voix à tous les joueurs, avec un volume (sur 100) donné. -
int, VoicePropertiesdispatchToAll: Permet d'envoyer la voix à tous les joueurs, avec un volume (sur 100) donné, et une VoiceProperties (voir explication plus bas) custom.
Cet event est appelé juste avant que le joueur ne commence à parler. L'évènement ne peut pas être annulé.
Cet event est appelé juste après que le joueur ai cessé de parler. L'évènement ne peut pas être annulé.
Cet event est appelé juste avant qu'un packet audio soit envoyé au serveur. Vous pouvez l'utiliser pour appliquer des modifications à l'audio. (Cela nécessite des connaissances en manipulation d'audio.) L'évènement peut être annulé.
-
byte[]recordedSamples: Les données audio qui vont être envoyées au serveur sous forme d'un tableau de byte.
Cet event est appelé juste avant que la voix d'un joueur soit lue. Vous pouvez l'utiliser pour appliquer des modifications à l'audio. (Cela nécessite des connaissances en manipulation d'audio.) Vous pouvez aussi modifier le volume auquel l'audio sera joué. L'évènement peut être annulé.
-
byte[]recordedSamples: Les données audio qui vont être envoyées au serveur sous forme d'un tableau de byte. -
intvolume: Le volume (sur 100) auquel sera joué l'audio reçu. -
VoicePropertiesproperties: les propriétées assignées à l'audio lors du VoiceDispatchEvent.
Cet objet qui est envoyé en accompagnement de chaque audio du serveur au client, permet via le VoiceDispatchEvent de définir des propriétées qui pourront être lues dans le VoicePlayEvent, permettant ainsi d'appliquer des modifications en conséquence.
VoiceProperties peut contenir des booleans, ainsi que des entiers.
Vous pouvez créer un objet VoiceProperties grâce à VoiceProperties.builder().with("keyInt", 1).with("keyBoolean", true).build();
Vous pouvez aussi éditer un objet VoiceProperties grâce au diverses options contenues dans la classe.