@@ -21,7 +21,7 @@ public sealed unsafe class StringHandler : IDisposable
2121 private readonly LoginState _loginState ;
2222 private readonly Configuration _configuration ;
2323
24- private HandlerConfig _handlerConfig = HandlerConfig . None ;
24+ private NameHandlerConfig _nameHandlerConfig = NameHandlerConfig . None ;
2525
2626 public StringHandler ( LoginState loginState , Configuration configuration )
2727 {
@@ -74,10 +74,6 @@ private bool FormatStringDetour(TextModule* thisPtr, CStringPointer input, StdDe
7474 if ( ! _configuration . Enabled )
7575 goto originalFormatString ;
7676
77- var data = _handlerConfig ;
78- if ( ! data . Apply )
79- goto originalFormatString ;
80-
8177 var seString = input . AsReadOnlySeStringSpan ( ) ;
8278 if ( seString . IsEmpty || seString . IsTextOnly ( ) )
8379 goto originalFormatString ;
@@ -100,43 +96,51 @@ private bool FormatStringDetour(TextModule* thisPtr, CStringPointer input, StdDe
10096 var oldGender = genderParam . IntValue ;
10197 genderParam . IntValue = _configuration . GetGender ( ) ;
10298
103- var sb = SeStringBuilder . SharedPool . Get ( ) ;
104-
105- try
99+ var nameConfig = _nameHandlerConfig ;
100+ if ( _nameHandlerConfig . Apply )
106101 {
107- foreach ( var payload in seString )
102+ var sb = SeStringBuilder . SharedPool . Get ( ) ;
103+ try
108104 {
109- if ( data . ApplyFull && ShouldHandleStringPayload ( payload ) )
110- {
111- sb . Append ( data . NameFull ) ;
112- }
113- else if ( data . ApplyFirst && ShouldHandleSplitPayload ( payload , 1 ) )
114- {
115- sb . Append ( data . NameFirst ) ;
116- }
117- else if ( data . ApplyLast && ShouldHandleSplitPayload ( payload , 2 ) )
118- {
119- sb . Append ( data . NameLast ) ;
120- }
121- else
105+ foreach ( var payload in seString )
122106 {
123- sb . Append ( payload ) ;
107+ if ( nameConfig . ApplyFull && ShouldHandleStringPayload ( payload ) )
108+ {
109+ sb . Append ( nameConfig . NameFull ) ;
110+ }
111+ else if ( nameConfig . ApplyFirst && ShouldHandleSplitPayload ( payload , 1 ) )
112+ {
113+ sb . Append ( nameConfig . NameFirst ) ;
114+ }
115+ else if ( nameConfig . ApplyLast && ShouldHandleSplitPayload ( payload , 2 ) )
116+ {
117+ sb . Append ( nameConfig . NameLast ) ;
118+ }
119+ else
120+ {
121+ sb . Append ( payload ) ;
122+ }
124123 }
124+ fixed ( byte * newInput = sb . GetViewAsSpan ( ) )
125+ return _formatStringHook . Original ( thisPtr , newInput , localParameters , output ) ;
126+ }
127+ catch ( Exception ex )
128+ {
129+ DalamudApi . PluginLog . Error ( ex , "PrefPro Exception" ) ;
130+ }
131+ finally
132+ {
133+ SeStringBuilder . SharedPool . Return ( sb ) ;
134+ raceParam . IntValue = oldRace ;
135+ genderParam . IntValue = oldGender ;
125136 }
126-
127- fixed ( byte * newInput = sb . GetViewAsSpan ( ) )
128- return _formatStringHook . Original ( thisPtr , newInput , localParameters , output ) ;
129- }
130- catch ( Exception ex )
131- {
132- DalamudApi . PluginLog . Error ( ex , "PrefPro Exception" ) ;
133137 }
134- finally
138+ else
135139 {
136- SeStringBuilder . SharedPool . Return ( sb ) ;
137-
140+ var result = _formatStringHook . Original ( thisPtr , input , localParameters , output ) ;
138141 raceParam . IntValue = oldRace ;
139142 genderParam . IntValue = oldGender ;
143+ return result ;
140144 }
141145
142146 originalFormatString :
@@ -147,21 +151,21 @@ public void RefreshConfig()
147151 {
148152 if ( ! _loginState . LoggedIn || string . IsNullOrEmpty ( _configuration . Name ) )
149153 {
150- _handlerConfig = HandlerConfig . None ;
154+ _nameHandlerConfig = NameHandlerConfig . None ;
151155 }
152156 else
153157 {
154- _handlerConfig = CreateConfig ( _configuration , _loginState . PlayerName ) ;
158+ _nameHandlerConfig = CreateConfig ( _configuration , _loginState . PlayerName ) ;
155159 }
156160 }
157161
158- private static HandlerConfig CreateConfig ( Configuration config , string playerName )
162+ private static NameHandlerConfig CreateConfig ( Configuration config , string playerName )
159163 {
160- var data = new HandlerConfig ( ) ;
164+ var data = new NameHandlerConfig ( ) ;
161165
162166 if ( string . IsNullOrEmpty ( config . Name ) )
163167 {
164- return HandlerConfig . None ;
168+ return NameHandlerConfig . None ;
165169 }
166170
167171 if ( config . Name != playerName )
@@ -251,7 +255,7 @@ private static bool ShouldHandleSplitPayload(ReadOnlySePayloadSpan payload, int
251255 return false ;
252256 }
253257
254- public class HandlerConfig
258+ public class NameHandlerConfig
255259 {
256260 public bool Apply ;
257261 public bool ApplyFull ;
@@ -261,7 +265,7 @@ public class HandlerConfig
261265 public ReadOnlySePayload ? NameFirst ;
262266 public ReadOnlySePayload ? NameLast ;
263267
264- public static readonly HandlerConfig None = new ( )
268+ public static readonly NameHandlerConfig None = new ( )
265269 {
266270 Apply = false
267271 } ;
0 commit comments